AWS Lambda - на каком языке пишете?
От: Ватакуси Россия  
Дата: 07.06.21 08:48
Оценка:
Я обычно на питоне, край на NodeJS, а тут столкнулся с проектом, где это всё на .NET Core + EF. Причём задача там в 99% одна и та же, выбрать из базы нечто и отдать json в веб-морду.
Сразу полезли проблемы:
a) Лямбды умирают после некоего времени (не раскрываемого AWS)
б) Запуск лямбды и получение данных занимает 4-12 секунд.
в) AWS RDS Proxy (для доступа в Постгрес) недоступна из-да неподдерживаемой версии и механизма auth

Народ первым делом советует 1) сменить язык (на питон или яву-скрипт) 2) Подключить RDS Proxy (тут с этим сложности см. выше) и постоянно обращаться к лаямбде (каждые 5-10 минут), чтобы она не убивалась.

Насколько 1) поможет? Может лучше EF выкинуть к чертям?
Вообще, на каких языках вы пишете лямбды (или в Azure — функции).
Все буде Україна!
Re: AWS Lambda - на каком языке пишете?
От: Слава  
Дата: 07.06.21 10:47
Оценка: 16 (2)
Здравствуйте, Ватакуси, Вы писали:

В>Насколько 1) поможет? Может лучше EF выкинуть к чертям?

Неплохая идея.

В>Вообще, на каких языках вы пишете лямбды (или в Azure — функции).


1) Для постоянной нагрузки лямбды не предназначены, это дорого. Основная функция лямбд — это сделать так, чтобы разработчик мог разрабатывать, не привлекая ансамбль из сисадминов и девопсов. Если вам нужна постоянная нагрузка, то есть Fargate Autoscale и Application Load Balancer / API Gateway.
2) Я пишу на C# Core. Запуск лямбды занимает меньше времени, чем 4-12 секунд, но если наворачивать туда 100500 сервисов в DI, то можно и дольше запускать. А вы не наворачивайте.
3) Сейчас я проверил "холодный запуск", у меня оно заняло 1296мс, последующие ответы занимают 366мс, и надо учесть, что мой сервис обращается к стороннему сервису, то есть здесь и запрос, и ответ. В моём проекте есть и EF Core, и linq2db.
4) Вроде бы у лямбд теперь имеется некий lifecycle management, я туда не лез, но насколько я понимаю, это как раз то самое управление засыпанием-пробуждением.
5) При сборке лямбды на линуксе можно сделать ready-to-run, то есть сделать из IL настоящий машинный код на стадии сборки, а не в момент запуска. Это должно ускорить работу. Насколько я понимаю, этого можно достичь и без линукса на собственном десктопе, через через AWS CodePipeline.
6) У людей, которые на Rust пишут, лямбда отрабатывает меньше чем за 100мс.

Теперь по вашим вопросам. Я не знаю, какая у вас версия Постгреса, возможно шибко новая. А зачем вам такая новая версия? Может вы более старой обойдётесь? То же касается и "механизма auth". А вообще для serverless лучше использовать AWS Aurora.
Re: AWS Lambda - на каком языке пишете?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 07.06.21 10:56
Оценка:
Здравствуйте, Ватакуси, Вы писали:

В>Вообще, на каких языках вы пишете лямбды (или в Azure — функции).


Обычно на Python или JS. Довольно хорошо выходит на Go, но это если что-то более фундаментальное и я не очень уверен что такое в Лямбде вообще стоит размещать.

Ради эксперимента я как-то затолкал в Лямбду приложение на Clojure, эксперимент удался, но для прода я бы ни кому так не посоветовал делать
Re[2]: AWS Lambda - на каком языке пишете?
От: Je suis Mamut  
Дата: 07.06.21 11:21
Оценка:
С>2) Я пишу на C# Core.
и это все(все пункты, не только 2) удаленно? как вообще удаленно люди попадают туда, где все это используется, если не секрет?
С>6) У людей, которые на Rust пишут, лямбда отрабатывает меньше чем за 100мс.
о, спасибо, интересно
Re[2]: AWS Lambda - на каком языке пишете?
От: Sharov Россия  
Дата: 19.06.21 00:00
Оценка:
Здравствуйте, Слава, Вы писали:

С>4) Вроде бы у лямбд теперь имеется некий lifecycle management, я туда не лез, но насколько я понимаю, это как раз то самое управление засыпанием-пробуждением.


Антиресно, уж больно на облачный WWF похож.
Кодом людям нужно помогать!
Re[3]: AWS Lambda - на каком языке пишете?
От: Слава  
Дата: 26.06.21 17:18
Оценка: 12 (2)
Здравствуйте, Je suis Mamut, Вы писали:

С>>2) Я пишу на C# Core.

JSM>и это все(все пункты, не только 2) удаленно? как вообще удаленно люди попадают туда, где все это используется, если не секрет?

Извиняюсь за поздний ответ.

Да, всё удалённо.

У нас нечто вроде программистской артели. Заказчики — американцы, сфера деятельности — выдача ипотеки. Как я попал — да просто через знакомых. Сперва вместе работали. потом я человека пригласил в другую организацию, где я сам работал, а туда меня позвал ещё один знакомый, потом он меня пригласил в новый проект и такое вот перекрёстное опыление.

У Яндекса вроде сейчас есть аналоги, яндексоиды вообще откровенно копируют AWS.
Re[3]: AWS Lambda - на каком языке пишете?
От: Слава  
Дата: 26.06.21 17:19
Оценка: 6 (1)
Здравствуйте, Sharov, Вы писали:

S>Антиресно, уж больно на облачный WWF похож.


К WWF ближе AWS Step Functions, а это просто похоже на управление процессами внутри IIS.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.