Как работают платформы контейнеризации:
устройство и ключевые компоненты

В статье Виртуальные машины vs. контейнеры: сравнение технологий и рекомендации по выбору мы разобрали основные отличия между виртуальными машинами и контейнерами. В статье про устройство платформ виртуализации более подробно поговорили о том, как устроены платформы виртуализации, из каких компонентов они состоят и какова роль этих компонентов. Настало время разобраться с тем, как устроены платформы контейнеризации.
Введение
Современная разработка программного обеспечения всё больше уходит от монолитных приложений к распределенным архитектурам. Главными драйверами этой эволюции стали микросервисы, контейнеризация и системы оркестрации. Разберемся, что означает каждый из этих терминов, как они взаимодействуют между собой и какие преимущества дают бизнесу.
Микросервисы
Большинство современных приложений создаются на основе микросервисов: такой подход к архитектуре подразумевает разделение приложения на множество небольших самостоятельных сервисов. Каждый сервис выполняет одну конкретную задачу и взаимодействует с другими сервисами через REST API или другие легковесные протоколы (например, gRPC или AMQP). В отличие от монолитной архитектуры, где всё приложение работает как единое целое, микросервисы позволяют разрабатывать, тестировать и масштабировать компоненты по отдельности. Такой архитектурный подход обеспечивает ряд преимуществ по сравнению с монолитной архитектурой:
-
Проще поддерживать и обновлять небольшие компоненты отдельно.
Команды могут работать над разными сервисами параллельно, не мешая друг другу. Обновления и исправления можно выпускать быстрее, так как изменения в одном сервисе не требуют переделки всего приложения. -
Можно масштабировать отдельно нужные части системы.
Например, если один компонент испытывает высокую нагрузку, можно увеличить ресурсы только для него, а не для всего приложения. -
Легче внедрять новые технологии и инструменты.
Разные микросервисы могут быть написаны на разных языках (Java, Python, Go и т. д.) и использовать разные базы данных. Это позволяет выбирать оптимальные инструменты для каждой задачи. -
Устойчивость к сбоям.
Если один микросервис выйдет из строя, это не обязательно приведет к падению всей системы. Остальные компоненты могут продолжать работу. -
Легкость модернизации.
Старые сервисы можно постепенно заменять новыми без полного переписывания кода.
Контейнеры
Контейнер – это «упаковка» для микросервиса, изолированная среда, в которой сервис и всё окружение (библиотеки, файлы и т. п.) могут запускаться всегда одинаково, где бы ни был запущен контейнер, – от ноутбука с Linux, Windows или macOS до облака. При этом контейнеры используют ядро хостовой операционной системы без полной виртуализации оборудования, что делает их легковесными и дает экономию ресурсов по сравнению с традиционными виртуальными машинами. Благодаря такой архитектуре можно запускать множество контейнеров на одной машине без существенных накладных расходов. Контейнеры создаются на основе образов – шаблонов, в которых описано, какие файлы, библиотеки и настройки нужны для работы сервиса.
Самый известный инструмент работы с контейнерами – Docker. Именно повторяемость, когда сервис запускается одинаково на любом компьютере или сервере, а также изоляция, при которой контейнеры «не мешают» друг другу, и низкие требования к ресурсам сделали контейнеры популярным решением.
Оркестраторы
Когда микросервисов много, управлять контейнерами вручную становится затруднительно. Здесь на помощь приходят оркестраторы – системы автоматизации развертывания, масштабирования, балансировки и мониторинга контейнеров. Самый популярный оркестратор – Kubernetes. Эта система обеспечивает запуск контейнеров, их мониторинг, автоматический запуск после сбоев и масштабирование сервисов в зависимости от нагрузки.
На основе Kubernetes создано несколько коммерческих платформ, например, OpenShift, Rancher и Tanzu, также появляется всё больше российских решений: Deckhouse от компании Флант, Basis Digital Energy от компании Базис, Nova Container Platform от компании Orion soft, Штурвал от компании Лаборатория Числитель, Боцман от ГК Астра и др.
Для надежной эксплуатации контейнерных приложений необходим комплексный подход к резервному копированию, который включает в себя сохранение как конфигурационных объектов, так и данных постоянных томов. Система резервного копирования Кибер Бэкап обеспечивает комплексную защиту и быструю возможность восстановления сервисов после сбоев или ошибок. Это критически важно для обеспечения непрерывности бизнеса и минимизации простоев. Подробнее о возможностях Кибер Бэкапа для защиты контейнерных сред см. в обзоре решения.
Взаимосвязь микросервисов, контейнеров и оркестраторов
- Микросервисы позволяют строить гибкие и масштабируемые приложения из независимых компонентов.
- Контейнеры решают задачу упаковки, изоляции и переносимости микросервисов.
- Оркестраторы контейнеров управляют масштабированием, обновлением и поддержкой сотен и тысяч контейнеров, реализующих микросервисы, автоматизируя эксплуатацию сложных ИТ-систем.
Взаимодействие этих технологий обеспечивает организациям высокую скорость вывода новых продуктов, отказоустойчивость и масштабируемость.
Примеры использования микросервисов
Интернет-банкинг
- Сервис авторизации отвечает за авторизацию клиента банка.
- Сервис переводов выполняет операции перевода средств между счетами.
- Сервис рассылки уведомлений формирует и рассылает SMS, почтовые сообщения и push-уведомления.
Все сервисы работают в своих контейнерах, а оркестратор гарантирует бесперебойную работу каждой части.
Интернет-магазин
- Сервис пользователей отвечает за регистрацию и авторизацию.
- Сервис товаров хранит каталог товаров.
- Сервис заказов обрабатывает покупки.
Сервисы работают в отдельных контейнерах и обмениваются данными через API.
Откуда в компании могут появиться контейнеры
Выше мы обсудили, что контейнеры становятся единицей развертывания и управления при переходе компаний на разработку микросервисных решений. Но это не единственный источник появления контейнеров. Около 25% российских бизнес-приложений уже поставляются в виде контейнеров. Упомянем только некоторые из них: корпоративная почта Mailion, корпоративный мессенджер eXpress, платформы low-code для автоматизации бизнес-процессов ELMA365 и SimpleOne, ЭДО-система Directum и решения от компании Диасофт. Таким образом, даже если ваша компания не создает собственные решения, вероятность появления в вашей ИТ-инфраструктуре контейнеров и, как следствие, необходимость в управлении ими достаточно высока. В настоящее время около 80% крупных российских компаний уже используют контейнеры.
Заключение
Совместное использование таких технологий, как микросервисы, контейнеры и оркестраторы, – это современный подход к разработке и развертыванию приложений. Такой подход упрощает развитие, обновление и поддержку сервисов, а также помогает быстро реагировать на изменения требований рынка.
