Контейнерная инфраструктура и микросервисы

Микросервисная архитектура

Микросервисная архитектура – разновидность архитектуры приложений, которая представляет собой альтернативу монолитной архитектуре.

В монолитной архитектуре сервис – это комплексная система, состоящая из тесно взаимосвязанных компонентов, которые обмениваются данными по «тяжеловесным» протоколам – как открытым (например, SOAP, XML-RPC), так и проприетарным.

В микросервисной архитектуре сервис включает в себя небольшие и слабо связанные между собой модули – микросервисы, которые взаимодействуют по «экономичным» сетевым протоколам (в стиле REST и с использованием, например, JSON, Protocol Buffers, Thrift).

Особенности микросервисной архитектуры:

  • модули можно легко заменять в любое время;
  • каждый модуль предназначается для выполнения конкретной функции;
  • модули могут быть реализованы с помощью различных языков программирования и фреймворков;
  • модули находятся в одноранговой зависимости друг от друга.

Контейнерная инфраструктура

Микросервисы чаще всего выполняются в контейнерных средах. При этом каждый из них обычно изолируется в отдельном контейнере или небольшой группе контейнеров. Эти контейнеры доступны по сети другим микросервисам и пользователям.

Контейнеризация (или виртуализация на уровне операционной системы) – это метод виртуализации, позволяющий ядру операционной системы поддерживать не один, а несколько экземпляров пространства пользователя. Эти экземпляры называют контейнерами. С точки зрения выполняемых процессов контейнеры идентичны отдельным экземплярам операционной системы. Программы из разных контейнеров не могут воздействовать друг на друга. Сами контейнеры хранятся в хостовой операционной системе.

В рамках контейнеризации могут создаваться как почти полноценные экземпляры операционных систем, так и решения, которые обеспечивают изоляцию отдельных сервисов с минимальным операционным окружением. Ко второй группе относится решение Docker.

Docker-контейнеры

Что такое Docker? Это свободное программное обеспечение, которое служит для автоматического развертывания приложений и управления ими в контейнерных средах. Иными словами, это контейнеризатор приложений.

Ключевая особенность Docker заключается в том, что он позволяет «упаковать» приложение или самодостаточный компонент приложения со всем его окружением и всеми зависимостями в контейнер. Этот контейнер можно затем развернуть в любой операционной системе Linux, поддерживающей контрольные группы в ядре. Такие контейнеры называются docker-контейнерами.

Важно отметить, что работоспособность компонента почти полностью обеспечивает разработчик, поскольку именно он «упаковывает» в контейнер все необходимые зависимости и библиотеки. Разработчик должен позаботиться о том, чтобы компонент или приложение в контейнере вели себя так, как задумано.

Помимо этого, Docker позволяет следить за тем, как контейнеры хранятся и где они эксплуатируются.

Развертывание сервисов с помощью Docker

Docker позволяет «свернуть» в контейнер отдельный модуль какой-либо системы или несколько таких модулей. В дальнейшем их можно оперативно развернуть в любом сегменте инфраструктуры.

В отличие от дистрибутивов программного обеспечения, контейнеры Docker не требуют дополнительно устанавливать связанные библиотеки и модули.

Если для виртуализации вычислительных мощностей необходим гипервизор, то docker-контейнеры можно развернуть практически в любой среде Linux. Кроме того, совместное применение подобных контейнеров на одном хосте требует меньше вычислительных ресурсов, чем две отдельные виртуальные машины.

Таким образом, контейнеризация – наиболее перспективный способ поставки (развертывания) компонентов сложных программных комплексов.

Читайте еще по теме

Портал документации Компании Индид

Теперь техническая документация программного обеспечения Компании Индид находится в одном месте — на портале https://docs.indeed-company.ru/. У документации каждого продукта свой сайт: Indeed Access Manager — централизованное управление доступом […]

Подробнее

Обновление Indeed Privileged Access Manager (Indeed PAM): версия 2.10

Компания Индид представляет версию 2.10 продукта Indeed Privileged Access Manager (Indeed PAM). Теперь Indeed PAM помимо Active Directory и FreeIPA поддерживает службы каталогов OpenLDAP и ALD PRO. В […]

Подробнее

Как работает PAM-система управления привилегированным доступом

PAM-система собирает данные привилегированных учетных записей (учетные записи системных администраторов) в Active Directory и на серверах с ОС Microsoft Windows, Linux/Unix. Это позволяет исключить наличие неучтенных привилегированных учетных […]

Подробнее

Что такое РАМ-система

Privileged Access Management (PAM) — это система, предназначенная для управления и контроля учетных записей привилегированных пользователей IT-подразделений разных категорий (штатных и внештатных сотрудников, внешних исполнителей) к критически важным […]

Подробнее

Обновление Indeed Privileged Access Manager (Indeed PAM) – версия 2.8

Компания Индид представляет новую версию Indeed Privileged Access Manager — Indeed PAM 2.8 Переход на .net 6 Indeed PAM 2.8 теперь работает на .net 6, последней версии платформы […]

Подробнее