Как стать автором
Обновить

Как стать DevOps инженером за полгода или даже быстрее. Часть 4. Пакетирование программ

Время на прочтение8 мин
Количество просмотров17K
Всего голосов 14: ↑12 и ↓2+17
Комментарии12

Комментарии 12

Почему вы не упомянули про жесткий vendor lock-in Лямбды и практически отсутствие такового у Докера? Или хотя бы упомянули бы, что в других публичных облаках тоже есть свои аналоги Лямбды.

Мое понимание такое, что Лямбда хорошо подходит для каких-то простых вещей, например быть прокладкой между сервисами AWS либо служить в качестве простого REST API. Строить сложную логику вокруг Лямбды — это в разы сложнее, чем реализовать то же самое на Докере/Кубере.

Плюс Докер вы можете спокойно запустить на лэптопе. Сделать то же самое с Лямбдой вы просто не сможете.

Есть множество способов, позволяющий отлаживать лямбду с окружением (база и api gateway, например) локально. И в чем vendor lock, если лямбда — это просто приложение на одном из распространённых языков? Тот же dotnet запросто вам один и тот же код завернет и как архив для лямбды, и как docker image.
У лямбды ограничение на доступные ресурсы. Если ваша сложная логика помещается в эти ограничения, то лямбда отличный выбор. Если нет — то еще и не факт, что вам Docker поможет, контейнеры по террабайту и жрущие десятки ядер и гигабайт памяти — не то чтоб ОК.

Сложная логика — это не про ресурсы, это, например, API Gateway с парой сотен роутов. Сделать такое на Лямбде — это значит быть самому себе врагом. Поддерживать такое решение, то есть поддерживать тестовые окружения, плюс локальные для разработчиков, плюс отлавливать баги, будет очень сложно. С Докером девелопер сможет разрабатывать у себя на ноуте в оффлайне.

Vendor lock-in — это когда у вас все прекрасно работает, а потом вам вдруг говорит директор, что Амазон — стало слишком дорого, и надо валить на on-premise. И тогда вы с острой болью понимаете, что такое vendor lock-in. С Кубернетес это было бы в сотню раз легче.

Если вы закатываете раутинг внутрь приложения, то и для лямбды у вас будет просто proxy-API GW, а раутинг будет внутри вашего кода, так же как и в докере. Это очень просто поддерживается.
Если же у вас раутинг снаружи, то конфигурировать раутинг внутри отдельного докер-контейнера на мой взгляд не проще, чем у API GW.
И это же касается vendor-lock. Если вы все делаете с оглядкой на мультикауд, то вашему коду будет все равно, на какой платформе крутиться. Если же нет, то переезд с хоста в докер будет для вас такой же проблемой. Это вопрос оптимизации и оценки рисков.

Плюс Докер вы можете спокойно запустить на лэптопе.

Угу, конечно. Особенно под Windows Home.

VirtualBox в помощь, но вообще Windows Home для разработки — это несерьезно.
VirtualBox в помощь

Это уже не "спокойно запустить", извините.


Windows Home для разработки — это несерьезно

Другие вам скажут что использовать какой бы то ни было Windows для разработки — это несерьёзно. И будут субъективны, как и вы. По факту: IDE работают, компиляторы/интерпретаторы языков работают, всевозможные системы контроля версий работают. В чём заключается несерьёзность?

Главным образом из-за отсутствия нормальной виртуализации и Докера, ну и плюс невозможность войти в домен. Если вы не используете ни виртуализацию, ни Докер, ни Линукс, а ваша машина исключительно домашняя, то какие вопросы — для вас Windows Home идеально подходит.

Но мое субъективное мнение, что в большинстве случаев эти вещи все же либо необходимы, либо являются большим плюсом для разработки.
AWS Fargate действительно хорошее решение для быстрого старта и обслуживания. Но контейнеры на базе EC2 — это все еще более гибкое решение, как в плане цены так и возможных конфигураций. Все зависит от бизнес-требований.
Когда ждать 5 часть?
В течении этой или следующей недели.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий