Термин
Контейнеризация
Упаковка приложения вместе со всем, что нужно для его работы, в изолированный контейнер, который одинаково работает на ноутбуке разработчика, сервере и в облаке. Упрощает развёртывание и масштабирование программ.
Обновлено
Что это значит
Контейнеризация - упаковка приложения со всем, что нужно для его работы, то есть библиотеками, настройками и зависимостями, в изолированный контейнер. Контейнер ведёт себя одинаково на ноутбуке разработчика, тестовом сервере и в продакшене в облаке, что снимает известную проблему «у меня всё работает».
В отличие от виртуальной машины контейнер не содержит всю операционную систему, а использует ядро хоста. Поэтому он легче, запускается за секунды, и на одном сервере их может работать гораздо больше. Самый известный инструмент - Docker, популяризировавший формат образов контейнеров.
Контейнеризацию часто связывают с архитектурой микросервисов, где приложение разделено на небольшие самостоятельные части. Каждая работает в своём контейнере, её можно независимо разворачивать и масштабировать, а для управления множеством контейнеров служат оркестраторы вроде Kubernetes.
Как это работает на практике
Для команды разработки контейнеры упрощают развёртывание. Образ приложения собирается автоматически в процессе CI/CD, тестируется, и тот же образ разворачивается в продакшене. Различия между средами исчезают, а откат на предыдущую версию занимает минуты.
Для компании, заказывающей разработку, контейнеризация полезна при смене подрядчика или хостинга. Приложение в стандартных контейнерах проще перенести к другому облачному провайдеру, чем систему, установленную вручную на конкретном сервере.
Контейнеры хорошо вписываются в культуру DevOps, где разработка и эксплуатация работают вместе. Инфраструктура описана в файлах, которые версионируются вместе с кодом, поэтому видно, кто что изменил, а среду можно в любой момент создать заново.
На что обратить внимание
Контейнеры не безопасны автоматически. Образы часто содержат устаревшие библиотеки с известными уязвимостями, а пароли доступа нельзя вшивать прямо в образ. Нужны регулярное сканирование образов, обновления и хранение секретов вне кода.
Для небольшого приложения контейнеризация с оркестрацией может оказаться избыточно сложной и дорогой в поддержке. Простому сайту или внутреннему инструменту часто лучше подойдёт управляемая платформа или serverless-решение, где о серверах и контейнерах заботится провайдер.
Нужно объяснить термин на вашей конкретной ситуации? Консультации от 55 € / час без НДС, в зависимости от темы и сложности.