Хоча розробка внутрішніх контейнерних середовищ розпочалася в середині 2010-х років, самі контейнери для розробників набули популярності за останній рік. Microsoft просунула цю концепцію у 2022 році, представивши Dev Container Spec, а Docker наслідував цей приклад, випустивши бета-версію своєї функції Dev Environments.
Що відбуватиметься з контейнерами для розробників у майбутньому, все ще залишається предметом відкритої дискусії, але очевидно, що вони продовжують тенденцію розвитку в середовищі хмарної розробки.
Контейнери для розробників – це середовища кодування, інкапсульовані всередині контейнерів, які забезпечують безперебійну розробку, тестування і спільний доступ. Розробники можуть створити робочий простір, почати кодувати, редагувати свої файли Docker, перезапустити робочі простори та почати все заново.
Підприємства звертаються до Dev Container Spec, щоб відновити контроль над джерелами над своїми середовищами розробки. Специфікація розширює використання репозиторіїв керування вихідним кодом за межі простого зберігання вихідного коду – все, що потрібно для середовища збирання, перевіряється. Репозиторій надає не лише вихідний код проєкту, але й оголошення середовища, dotfiles, розширення IDE, сценарії збирання тощо.
Оновити версію Java чи встановити останню версію Copilot? Змініть Dockerfile і створіть PR. Потрібно переконатися, що кожен має спеціальний dotfile? Додайте його до гілки та створіть PR.
Проте контейнери для розробників мають деякі недоліки, які варто відзначити, повідомляє Cloud Native Now.
По-перше, вони підтримують лише Docker. Багатьом підприємствам, які вважають за краще використовувати Kubernetes або віртуальні машини (ВМ), а не Docker, не пощастило.
Крім того, немає чіткого шляху за межі Docker для контейнерів для розробників. Підприємства неохоче надають розробникам можливість запроваджувати специфікації привілеїв, можливостей і монтувань у Kubernetes.
Ви також не можете створювати власні інструменти навколо контейнерів розробника за допомогою традиційного CLI Dev Container, оскільки він не призначений для абстракції чи розширення.
Однак на цьому етапі плюси переважують недоліки. Для ширшого використання потрібна підтримка на всіх контейнерних платформах, принаймні абстрактно. Це можуть бути спеціальні інструменти компанії або програми з відкритим кодом.
Coder, наприклад, представив власну реалізацію з відкритим вихідним кодом під назвою envbuilder, яка підтримує низку контейнерних платформ, включно з Kubernetes, Docker та OpenShift.
Ось шість причин, чому варто розглянути контейнери для розробників:
- Проста адаптація. Щоб розпочати роботу, розробник має лише встановити IDE та Docker, а потім клонувати репо контейнера dev. Для запису файлу Docker немає жодних ускладнень із використанням пропрієтарних форматів. Великі підприємства, які розгортають контейнерне середовище для розробників, можуть використовувати наявний досвід написання файлів Docker.
- CDE стають популярними. Організації прагнуть надати розробникам більше контролю над своїм середовищем. У минулому, коли розробники хотіли впровадити нове програмне забезпечення або змінити версію протягом повільного циклу, їм доводилося підштовхувати до цього центральну операційну групу. Тепер, із контейнерами для розробників, ця петля зворотного зв’язку змінюється. Розробники можуть просто редагувати свої файли Docker, і конвеєр збирання контейнера закінчується в тій самій конфігурації.
- Зменшення обмежень ресурсів. Деякі організації використовують великі програми, які займають багато пам’яті та які важко запускати на ноутбуках. Контейнери для розробників, що працюють у CDE, стають новим стандартом для віддаленої роботи.
- Стандартизованість. З контейнерами для розробників кожен член команди має однаковий код, версії та конфігурацію. Контейнери для розробників – це хороший спосіб стандартизувати роботу всередині середовища.
- Безпека. За допомогою контейнерів для розробників легше розгортати виправлення та гарантувати, що всі розробники оновлюються. Вони можуть зберігати свої оновлення та стан шляхом перебудови.
- Покращення продуктивності розробника. Як і з іншими декларативними технологіями, розробникам не потрібно витрачати цикли на тонкі відмінності у своєму середовищі.
Контейнери для розробників – це захоплива технологія, яка тільки розвивається. Вони прості в експлуатації, дають розробникам більше контролю та забезпечують розвиток організацій.
Також читайте на ProIT, як оптимізувати процес контейнеризації застосунків Java.
Підписуйтеся на ProIT у Telegram, щоб не пропустити жодної публікації!