|
Контейнерная инфраструктура и микросервисы
Автор Mariya Kotlyarova на 06 сентября 2023 11:32 AM |
|
Микросервисная архитектураМикросервисная архитектура – разновидность архитектуры приложений, которая представляет собой альтернативу монолитной архитектуре. В монолитной архитектуре сервис – это комплексная система, состоящая из тесно взаимосвязанных компонентов, которые обмениваются данными по «тяжеловесным» протоколам – как открытым (например, SOAP, XML-RPC), так и проприетарным. В микросервисной архитектуре сервис включает в себя небольшие и слабо связанные между собой модули – микросервисы, которые взаимодействуют по «экономичным» сетевым протоколам (в стиле REST и с использованием, например, JSON, Protocol Buffers, Thrift). Особенности микросервисной архитектуры:
Контейнерная инфраструктураМикросервисы чаще всего выполняются в контейнерных средах. При этом каждый из них обычно изолируется в отдельном контейнере или небольшой группе контейнеров. Эти контейнеры доступны по сети другим микросервисам и пользователям. Контейнеризация (или виртуализация на уровне операционной системы) – это метод виртуализации, позволяющий ядру операционной системы поддерживать не один, а несколько экземпляров пространства пользователя. Эти экземпляры называют контейнерами. С точки зрения выполняемых процессов контейнеры идентичны отдельным экземплярам операционной системы. Программы из разных контейнеров не могут воздействовать друг на друга. Сами контейнеры хранятся в хостовой операционной системе. В рамках контейнеризации могут создаваться как почти полноценные экземпляры операционных систем, так и решения, которые обеспечивают изоляцию отдельных сервисов с минимальным операционным окружением. Ко второй группе относится решение Docker. Docker-контейнерыЧто такое Docker? Это свободное программное обеспечение, которое служит для автоматического развертывания приложений и управления ими в контейнерных средах. Иными словами, это контейнеризатор приложений. Ключевая особенность Docker заключается в том, что он позволяет «упаковать» приложение или самодостаточный компонент приложения со всем его окружением и всеми зависимостями в контейнер. Этот контейнер можно затем развернуть в любой операционной системе Linux, поддерживающей контрольные группы в ядре. Такие контейнеры называются docker-контейнерами. Важно отметить, что работоспособность компонента почти полностью обеспечивает разработчик, поскольку именно он «упаковывает» в контейнер все необходимые зависимости и библиотеки. Разработчик должен позаботиться о том, чтобы компонент или приложение в контейнере вели себя так, как задумано. Помимо этого, Docker позволяет следить за тем, как контейнеры хранятся и где они эксплуатируются. Развертывание сервисов с помощью DockerDocker позволяет «свернуть» в контейнер отдельный модуль какой-либо системы или несколько таких модулей. В дальнейшем их можно оперативно развернуть в любом сегменте инфраструктуры. В отличие от дистрибутивов программного обеспечения, контейнеры Docker не требуют дополнительно устанавливать связанные библиотеки и модули. Если для виртуализации вычислительных мощностей необходим гипервизор, то docker-контейнеры можно развернуть практически в любой среде Linux. Кроме того, совместное применение подобных контейнеров на одном хосте требует меньше вычислительных ресурсов, чем две отдельные виртуальные машины. Таким образом, контейнеризация – наиболее перспективный способ поставки (развертывания) компонентов сложных программных комплексов. ![]() Сообщение Контейнерная инфраструктура и микросервисы появились сначала на Блог Компании Индид. | |
