Контейнерная инфраструктура и микросервисы
Микросервисная архитектура
Микросервисная архитектура – разновидность архитектуры приложений, которая представляет собой альтернативу монолитной архитектуре.
В монолитной архитектуре сервис – это комплексная система, состоящая из тесно взаимосвязанных компонентов, которые обмениваются данными по «тяжеловесным» протоколам – как открытым (например, 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, последней версии платформы […]