В профессиональной среде довольно популярно мнение, что молодым компаниям стоит избегать контейнерной инфраструктуры. Его придерживаются даже бывшие разработчики Kubernetes. Но, разумеется, с ним согласны не все. Мы в T1 Cloud пишем про облачные технологии и решили обсудить разные точки зрения.
Аргументы против
Чтобы запустить MVP или протестировать идею, стартапам достаточно арендовать виртуальные машины у сервис-провайдера или настроить пару серверов в локальном дата-центре. Им нет смысла строить архитектуру на Kubernetes по типу корпораций из big tech. В этом убеждены многие предприниматели, разработчики, системные администраторы и другие специалисты. Например, Кристофер Тоцци, облачный аналитик и по совместительству автор книги «For Fun and Profit: A History of the Free and Open Source Software Revolution», считает, что эффект от внедрения K8s не стоит усилий, требуемых для настройки окружения.
Контейнеры усложняют архитектуру продукта и увеличивают нагрузку на разработчиков. В таких условиях рано или поздно придется формировать отдельную команду для поддержки бэкенда. Эта задача будет отнимать ресурсы, необходимые для развития функциональности ключевого продукта, оттягивать его запуск. Но время не тот ресурс, которым стартап может жертвовать, с учетом того, что до пятого года жизни дотягивает не больше 50% бизнесов.
Другой аргумент связан с производительностью Kubernetes. Он подходит для высоконагруженных приложений, поэтому его выбирают команды, пытающиеся заложить потенциал масштабирования на будущее. Один из участников форума Hacker News назвал такой подход What-If Engineering, когда разработчики заранее решают проблемы, которых может и не быть.
В тематическом треде один инженер рассказал, что работал на проекте, где использовали скрипты Ansible для управления инфраструктурой — на это уходило порядка $100 тыс. ежегодно. Когда подход пересмотрели, ценник сразу сократился на 85%. Даже один из бывших мейнтейнеров Kubernetes в своем блоге отметил, что проект должен расти параллельно с нагрузкой. И к контейнерам стоит переходить, когда команда обзавелась достаточной пользовательской базой.
Еще один нюанс, связанный с построением архитектуры на K8s, — это большое количество дистрибутивов. Все они построены на одной базовой платформе, но инструменты различаются. В то же время они содержат множество компонентов — аддонов, кублетов, контроллеров, планировщиков и API-сервисов. Если по какой-то причине компания переходит с одного решения на другое, инженерам придется изучать новый инструментарий. В то же время оркестровка требует ручного контроля — у стартапа на это нет ни ресурсов, ни времени.
Альтернативный взгляд на вещи
Разумеется, далеко не все согласны с утверждением, что молодым компаниям не нужно «погружаться» в K8s. По мнению одного из резидентов Hacker News, все зависит от экспертизы команды. Инженерам стоит работать со стеком, который хорошо им знаком. Если это Kubernetes, Firecracker или Nomad, то почему бы не внедрить контейнеры с первых дней.
Среди участников сообщества также можно встретить специалистов, которые считают, что Kubernetes, наоборот, упрощает обслуживание IT-инфраструктуры. Так как писать скрипты на Terraform сложнее, чем работать с файлами манифестов в K8s. В качестве примера пользователь HN привел компанию, где он трудоустроен. В экосистеме есть приложение, представляющее собой набор PHP-файлов и таблиц crontab, развернутых на нескольких серверах. Приходится мириться со многими неудобствами и общими библиотеками. Другое приложение развернуто на контейнерах в облаке — тут обновление занимает гораздо меньше времени.
Главная проблема, с которой сталкиваются стартапы на ранних этапах, — это усложнение архитектуры баз данных, брокеров сообщений, микросервисов и других компонентов. Однако подобная «солянка» будет вызывать трудности на любом этапе разработки. С Kubernetes не должно быть сложностей, если грамотно подойти к развертке инфраструктуры. В теории запустить и обслуживать компактную среду может даже команда без опыта работы с контейнерами.
Первое время они действительно были чем-то сложно управляемым, но сегодня облачные провайдеры и сторонние поставщики предлагают инструменты, которые снижают порог входа для работы с K8s.
На что обратить внимание
Если просуммировать мнения, то к Kubernetes — это просто инструмент. Есть сценарии, когда стартапу лучше отказаться от контейнерной среды. В другом случае она может ускорить развитие проекта.
Если стартапу достаточно одного сервера, то K8s будет лишним, так как он повышает когнитивную нагрузку на разработчиков. Впрочем, контейнеры также плохо приспособлены для вычислений на базе GPU — в частности, аналитики данных и машинного обучения.
Разумеется, от этого правила можно отойти, если команда хорошо знакома с технологическим стеком и понимает, как извлечь из контейнерного окружения максимум.
На первый взгляд, большое количество дистрибутивов Kubernetes усложняет инфраструктуру. С другой стороны, облачные провайдеры предлагают инструментарий, упрощающий оркестровку за счет абстракций и методологий Infrastructure as Code.
О чем еще мы пишем в нашем блоге на Хабре:
Комментарии (8)
Knightt
18.10.2022 12:33+8стартапу нужно как можно скорее запилить MVP, чтоб проверить бизнес идею.
все что мешает этой цели - не нужно использовать. Поэтому какие инструменты использовать, а какие нет - зависит от компетенций команды
ibKpoxa
18.10.2022 15:03- Какой дистрибутив лучше взять для изучения?
- Тот, который есть у знакомого гуру.
Стоит ли использовать контейнеры и кубер?
Да, если это умеет ваша команда.
jurikolo
18.10.2022 15:07Хотелось бы почитать больше аргументов за и против, иначе всё действительно скатывается в простой посыл - с чем команда умеет работать, такие инструменты и надо выбирать. И дело не только в Кубере, команда может банально не уметь в контейнеры. Накатили jBoss application server, залили через ГУЙ артефакты и готово. Другое дело, что надо думать и о среднесрочной перспективе с автоматизациями. Тут-то Кубер и может быть одним из инструментов. Особенно, если взять облако и не тратить силы на поддержку.
Rumantic
А ссылочек в тексте не смогли побольше сделать? Хотел почитать, а тут буквально прет SEO-шмео текст, даже жутко становится.
KatbertW
а мне наоборот нравится количество ссылок, можно пойти в первоисточник почитать. Но не совсем понял при чем тут SEO
Rumantic
Имеем текст, куча ссылок. Интересующиеся кликают и переходят на сайты и да, очень интересно почитать источники. Поисковик видит, что по ссылкам нажимают и дает страничке хорошую оценку. Только наверху текста есть парочка ссылок на сайт компании и поисковик заодно и им дает хорошую оценку. Поэтому могу сделать вывод, что текст делался с очень корыстной целью, а не для интереса читателя.
Возможно, я так рассуждаю потому что знаком с SEO-технологиями и всякими поведенческими факторами и это знание вносит такую долю предвзятости.
tvr
Да не, не может быть такого чтобы текст в корпоративный блог делался в корыстных целях, это у вас паранойя разыгралась./s
Rumantic
Естественно, что корпораты пишут для выгоды своей, но надо же знать меру и не так явно впаривать.