Получи случайную криптовалюту за регистрацию!

Благодаря контейнеризации, в мире разработки уже случились две | xpinjection

Благодаря контейнеризации, в мире разработки уже случились две революции. Первая, и самая важная революция, была связана с запуском в контейнерах компонентов продакшен систем. Фактически, сейчас это уже стандарт де факто. Вторая революция прошла в области CI/CD, когда задачи пайплайнов начали выполняться в контейнерах. Это существенно упростило настройку самих CI/CD систем и позволило окончательно перейти на декларативный легковесный стиль описания пайплайнов. Данная революция все ещё в активной стадии.

И вот уже больше года как стартовала третья революция. Это революция локальных сред разработки под кодовым названием devcontainers. Ведь для работы над любым проектом нужно устанавливать компоненты технологического стека, делать локальные настройки и применять накопленные в проекте костыли. Обычно это не очень быстрая и не очень приятная работа. Долгое время проблему пытались решить с помощью различных инструментов виртуализации, но решения получались тяжеловесными и сложно поддерживаемыми.

Представляете, как было бы круто просто запустить контейнер, где все уже настроено для разработки конкретного проекта и направить на него свою локальную IDE! Одна команда для старта контейнера и вы начинаете работать. Простой онбординг без долгих и нудных инструкций или консультации коллег. А самое приятное, что хранится и версионируется это все вместе с кодом.

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

Тема прямо очень горячая и активно развивается. Особенно в мире микросервисов, которые могут разрабатываться на совершенно разных технологических стеках. На InfoQ недавно вышла неплохая вводная статья, которая поможет понять что к чему.

Главный вопрос сейчас - это поддержка на уровне IDE. Ведь фактически нужно, чтобы IDE могла присоединиться к контейнеру и перенаправлять все активности туда. VS Code давно имеет такую поддержку через специальный плагин. Вот детальная инструкция по подключению и настройке. Intellij IDEA имеет фичи по запуску ядра IDE на удалённом сервере для облегчения локальной среды (поддерживаются JetBraine Space, SSH и Gitpod). Интеграция с Gitpod ближе всего к теме, но слишком тяжеловесна для изначальной задачи и требует установки Gotpod. Вопрос поддержки devcontainers уже давно поднят сообществом, разработчики JetBrains даже обещали что-то выпустить до конца года. А пока я настраиваю VS Code как альтернативную IDE для быстрого онбординга в другие технологические стеки (JS, Python, Go, Elixir). Главное не привыкнуть и не остаться в VS Code окончательно. :)

#idea #containers #docker