Pull to refresh

Comments 7

Вопросы:
— как дебажить
— есть ли сквозная трассировка
— как оркестрировать сложные системы (>20 AWS Lambda/Az Functions)
— как прикрутить кастомную аутентификацию
Попробую поотвечать. Сильно не бейте.

>> как дебажить
Смотря что вкладывать в это понятие. Логи можно собирать в тот же S3, например. Или в ELK-кластер. Это если хочется логов. Также есть сбор метрик через CloudWatch.

>> есть ли сквозная трассировка
Внутри одной лямбды есть встроенный трассер. Вот пример для Java (https://docs.aws.amazon.com/lambda/latest/dg/java-tracing.html)
Сквозную трассировку вызова я бы собирал в ту же Кибану. Но тут возникает вопрос — что входит в один вызов? Говоря на высоком уровне, не погружаясь в реализацию, я бы сказал, что инстансы должны уметь выкидывать информацию о своём состоянии и своей работе вовне. И они умеют это делать.

>> как оркестрировать сложные системы (>20 AWS Lambda/Az Functions)
aws.amazon.com/ru/getting-started/tutorials/create-a-serverless-workflow-step-functions-lambda — Amazon предоставляет механизм Step Functions. Кажется, это то, что Вы ищете.

>> как прикрутить кастомную аутентификацию
К чему? Аутентификацию кого и чего? Не совсем понятно.
>> есть ли сквозная трассировка
Хотелось бы между лямбдами, чтобы один запрос из вне проходил под общим айдишником, по которому можно было бы в логах проследить всю историю выполнения.
Но это можно сделать и руками, не беда.

>> как оркестрировать сложные системы
На сколько я вижу, Step Functions конфигурируется с помощью собственного языка и UI. Конфигурация в UI не вариант, т.к. не автоматизируется (к CI/CD не прикрутить).
Т.е. нужно изучать еще один язык для того, чтобы описывать процессы в Step Functions.

>> как прикрутить кастомную аутентификацию
Аутентификацию юзера перед лямбдой.
Например, можно ли использовать аутентификацию по JWT токену, выпущенному внутрикорпоративным OAuth сервисом, в лямбдах?

В целом, мои вопросы вызваны попыткой понять, какие есть минусы у Serverless подхода. Про плюсы все говорят, а вот недостатки приходится выяснять на собственной шкуре.
>> Хотелось бы между лямбдами, чтобы один запрос из вне проходил под общим айдишником
Лямбда отвечает строго на один запрос. Если хочется создать пайплайн, то надо просто это учитывать и создавать некий ID запроса. Изначально лямбды под это просто не отточены. Это просто дешёвый запуск маленького сервиса.

>> На сколько я вижу, Step Functions конфигурируется с помощью собственного языка и UI
Да ну нет.
«You can access and use Step Functions using the console, the AWS SDKs, or an HTTP API»
Мой опыт работы с AWS говорит о том, что там почти любой сервис (если не совсем любой) управляется через API.

>> Например, можно ли использовать аутентификацию по JWT токену, выпущенному внутрикорпоративным OAuth сервисом, в лямбдах?
Поскольку запускаемый сервис написан на каком-то выбранном языке, то он умеет всё то же, что и обычный скрипт, запускаемый на Serverful (если можно так выразиться :) ) окружении.

Идея тут достаточно простая — в Serverless удобно и выгодно запускать маленькие сервисы, описываемые не огромным количеством кода.

В минусы я точно могу занести Vendor lock. Если Serverless и начинает появляться на других платформах, то я очень сомневаюсь, что на него можно гладко переехать.

UFO just landed and posted this here
Когда-нибудь абстрагирование от абстрагированного заведет нас в Dependency hell.
Это предлагается каждую точку АПИ на докер посадить?
Sign up to leave a comment.