Что такое контейнер?
Контейнер — изолированная среда, в которой приложение запускается вместе со своими зависимостями, но использует ядро операционной системы хоста. Внутри контейнера программа «видит» только собственные файлы и процессы.
Контейнеры дают предсказуемость: набор библиотек фиксирован внутри образа, поэтому приложение ведёт себя одинаково везде. Один сервер при этом может держать десятки контейнеров, не мешающих друг другу.
Важное свойство — эфемерность. Контейнер рассчитан на то, чтобы его в любой момент остановили и запустили заново, поэтому данные хранят не внутри него, а во внешних томах и базах.
Контейнер и виртуальная машина
Виртуальная машина эмулирует целый компьютер и содержит собственную операционную систему — отсюда гигабайты образа и запуск за минуты. Контейнер использует ядро хоста и включает только приложение с зависимостями: десятки мегабайт и запуск за секунды. ВМ изолирует сильнее, контейнер — легче и быстрее.
Связанные термины
Docker — инструмент, который упаковывает приложение вместе со всем окружением — кодом, зависимостями, настройками — в контейнер. Такой контейнер запускается одинаково на компьютере разработчика, на тестовом стенде и на сервере.
KubernetesKubernetes — система оркестрации контейнеров: она сама запускает нужное количество контейнеров на группе серверов, перезапускает упавшие, распределяет нагрузку и выкатывает обновления без остановки сервиса.
DevOpsDevOps — подход к разработке, в котором создание программы и её эксплуатация объединены в один процесс: та же команда отвечает и за код, и за то, как он собирается, разворачивается и работает на серверах. Цель — выпускать изменения часто, быстро и безопасно.
MicroservicesМикросервисы — архитектурный подход, при котором приложение состоит из нескольких небольших самостоятельных сервисов. Каждый отвечает за свою область — оплату, каталог, уведомления, — разворачивается отдельно и общается с остальными через API.
Cloud ComputingОблачные технологии — аренда вычислительных ресурсов у провайдера вместо покупки собственных серверов. Компания берёт нужные мощности, базы и сервисы по требованию и платит только за фактическое потребление.