На примере ароматной пиццы: зачем приложения «упаковывают» в контейнеры
🍕Представьте вашу любимую пиццу, которая пока томится в коробке. Вы открываете коробку, а там –соус, специи, салфетки и пластиковые приборы: все, что поможет вам вкусно поесть. При этом такую коробку легко перевозить и есть, где угодно.
С точки зрения контейнеризации, приложение – та самая пицца. Его помещают в «коробку» со всем, что обеспечит корректную работу на любом компьютере или сервере. Контейнеры помогают запускать приложения без оглядки на операционную систему и совместимость с другими видами программного обеспечения.
⭐️ Современные приложения требуют постоянных обновлений. При этом изменение кода в одной из его частей может «уронить» его целиком. Поэтому часто даже не само приложения, а его части разбивают на контейнеры: в одном, например, хранится фронтенд (страницы и кнопки, которые видит пользователь), в другом – бэкенд («мозг» сайта, обрабатывающий заказы), а в третьем – база данных со списком товаров и историей покупок.
На практике многие компании «упаковывают» в контейнеры даже отдельные задачи приложения – авторизацию пользователей, проведение оплаты, доставку товара. Это называется микросервисной архитектурой: она делает приложение более гибким и устойчивым к сбоям. Например, сервис оплаты приложения можно обновить внутри его контейнера, и это не никак не повлияет на работу сервиса доставки, который размещен в другом контейнере этого же приложения.
💻Самые популярные в мире инструменты для работы с контейнерами – Docker и Kubernetes. Оба относятся к свободному ПО, созданному на основе открытого исходного кода. При этом Kubernetes специализируется на оркестрации – управлении группами контейнеров (сотнями и даже тысячами). Но Kubernetes отвечает только за управление, а еще контейнеры нужно мониторить, обеспечивать для них инструменты автоматического масштабирования, а также настраивать их взаимодействие с остальной инфраструктурой.
У «Группы Астра» есть свое решение по контейнеризации «Боцман» — облачная платформа контейнеризации для управления сразу несколькими кластерами (или мультикластерами) Kubernetes. Она позволяет запускать контейнеры и при этом снижать требования к обслуживанию.
❤️ Ваша
$ASTR