Комментарии 12
Мое понимание такое, что Лямбда хорошо подходит для каких-то простых вещей, например быть прокладкой между сервисами AWS либо служить в качестве простого REST API. Строить сложную логику вокруг Лямбды — это в разы сложнее, чем реализовать то же самое на Докере/Кубере.
Плюс Докер вы можете спокойно запустить на лэптопе. Сделать то же самое с Лямбдой вы просто не сможете.
Есть множество способов, позволяющий отлаживать лямбду с окружением (база и api gateway, например) локально. И в чем vendor lock, если лямбда — это просто приложение на одном из распространённых языков? Тот же dotnet запросто вам один и тот же код завернет и как архив для лямбды, и как docker image.
У лямбды ограничение на доступные ресурсы. Если ваша сложная логика помещается в эти ограничения, то лямбда отличный выбор. Если нет — то еще и не факт, что вам Docker поможет, контейнеры по террабайту и жрущие десятки ядер и гигабайт памяти — не то чтоб ОК.
Vendor lock-in — это когда у вас все прекрасно работает, а потом вам вдруг говорит директор, что Амазон — стало слишком дорого, и надо валить на on-premise. И тогда вы с острой болью понимаете, что такое vendor lock-in. С Кубернетес это было бы в сотню раз легче.
Если вы закатываете раутинг внутрь приложения, то и для лямбды у вас будет просто proxy-API GW, а раутинг будет внутри вашего кода, так же как и в докере. Это очень просто поддерживается.
Если же у вас раутинг снаружи, то конфигурировать раутинг внутри отдельного докер-контейнера на мой взгляд не проще, чем у API GW.
И это же касается vendor-lock. Если вы все делаете с оглядкой на мультикауд, то вашему коду будет все равно, на какой платформе крутиться. Если же нет, то переезд с хоста в докер будет для вас такой же проблемой. Это вопрос оптимизации и оценки рисков.
Плюс Докер вы можете спокойно запустить на лэптопе.
Угу, конечно. Особенно под Windows Home.
VirtualBox в помощь
Это уже не "спокойно запустить", извините.
Windows Home для разработки — это несерьезно
Другие вам скажут что использовать какой бы то ни было Windows для разработки — это несерьёзно. И будут субъективны, как и вы. По факту: IDE работают, компиляторы/интерпретаторы языков работают, всевозможные системы контроля версий работают. В чём заключается несерьёзность?
Но мое субъективное мнение, что в большинстве случаев эти вещи все же либо необходимы, либо являются большим плюсом для разработки.
Как стать DevOps инженером за полгода или даже быстрее. Часть 4. Пакетирование программ