Скорее всего, вы уже слышали о комплексе технологических проектов под названием OpenStack. О нем говорят практически на каждом мероприятии, так или иначе, связанном со средой облачных решений. По своей сути OpenStack является операционной платформой для управления проектами большого масштаба. Комплекс включает в себя несколько модулей, каждый из которых имеет открытый код и отвечает за выполнение определенного набора операций.
Причина широкой популярности платформы кроется в обширной спонсорской поддержке со стороны компаний-лидеров индустрии облачных сервисов и хранилищ, а также в богатой функциональности. OpenStack помогает создавать инфраструктурные продукты как для частного, так и для публичного использования. Применяемые при этом технологии имеют комплекс программных средств для идентификации виртуальных машин. Платформа не зависит от гипервизора и предлагает своим пользователям блочное хранилище, менеджер аутентификации, сетевой контроллер.
Модули комплекса
Все проекты OpenStack распространяются на одной лицензии ― Apache. Существует 7 основных модулей.
- Compute (кодовое название ― Nova) для вычислений.
- Identity Management (или Keystone) для управления идентификацией.
- Block Storage (он же Cinder) для блочного хранения.
- User Interface Dashboard (или Horizon) ― пользовательская панель.
- Networking (кодовое имя ― Neutron или Quantum) для управления локальной сетью.
- Object Storage (иначе Swift) ― хранилище.
- Image Service (кодовое название ―Glance) для поддержки образов ВМ.
Каждый из проектов имеет свои особенности, технологические возможности, соответствующие конкретному предназначению модуля.
Nova (OpenStack Compute)
Этот модуль отвечает за облачные вычисления, является основой сервисов инфраструктуры. Написан проект на Python. С помощью Nova осуществляется виртуализация ресурсов жесткого диска, сетевого адаптера, процессора и т.п. С помощью данного проекта осуществляется автоматизация их работы, а также управление, которое включает следующие функции.
- Запуск компонента.
- Приостановка его работы.
- Выключение.
- Перезагрузка.
- Изменение размеров.
Процесс инициализации каждой виртуальной машины осуществляется довольно быстро за счет кэширования образов на узлах модуля OpenStack.
Keystone (OpenStack Identity Management)
Данный проект предназначен для управления каталогом всех сервисов платформы и ее пользователей. Эта информация хранится в едином реестре, за счет которого реализуется централизованная аутентификация. Пользователи могут запрашивать доступ к нужным сервисам с использованием панели инструментов или программных запросов.
Модуль обеспечивает различные варианты прохождения аутентификации как с применением простого логина и пароля, так и с задействованием многофакторных комбинаций. Keystone помогает администраторам регулировать применяемую по отношению к пользователям и сервисам политику аутентификации. С помощью данного модуля можно генерировать пользовательские кабинеты, проекты, подключать их к управляющим домена, а также распределять роли и определять доступные полномочия.
Cinder (OpenStack Block Storage)
Этот проект нацелен на эффективное управление блочным хранилищем с применением экземпляров Nova. Модуль задействует возможности Linux-сервера. Есть расширения и для других платформ, например, для NetApp и Ceph. Инструментальная панель дает возможность пользователям создавать блочные устройства, для которых критична производительность. В дальнейшем их можно в любой момент присоединить к серверам или отключить от них. Cinder предлагает возможность создания снэпшотов, за счет которых создается backup-копия томов, что обеспечивает комфортную и продуктивную работу с проектом.
Neutron или Quantum (OpenStack Networking)
Данный модуль предназначен прежде всего для присвоения IP-адресов виртуальным машинам, сетям и подсетям. Проект поддерживает протокол DHCP
, IPv6
, VLAN
, что позволяет без труда определять компоненты и их топологию, а также вычленять подсети и маршрутизаторы.
Swift (OpenStack Object Storage)
Модуль образует распределенное хранилище с задействованием устройств хранения, серверов. В случае выхода из строя одного из компонентов внутри кластера Swift восполнит недостающий контент. Архитектура удобна тем, что обеспечивает легкое горизонтальное масштабирование за счет возможности присоединения новых блоков хранения. При этом можно сэкономить бюджет, отказавшись от приобретения дорогостоящего оборудования в угоду обычным жестким дискам и серверам.
Рассчитан Swift преимущественно на статичную информацию, типа архивов, образов виртуальных машин и так далее. Вся информация копируется и распределяется между системами хранения, что делает работу системы стабильной и надежной.
Glance (OpenStack Image Service)
Этот сервис необходим для создания backup-копий и снэпшотов, создания образов виртуальных машин с их последующей инициализацией, регистрацией и запуском. Этот же модуль способствует оперативному развертыванию новых серверов. Для этого Glance-образы часто используются как шаблоны.
Применение OpenStack
Платформу можно считать вполне рабочим инструментом для решения некоторых задач. Например, вам хочется развернуть свой облачный сервис, переехав с Azure, Google Cloud или Amazon. Тогда OpenStack предоставит все необходимое для этого. Подойдет технологический комплекс и для реализации нового стартапа в сфере облачных технологий. Платформа позволит вам развивать и расширять свой продукт при условии, что у вас в команде есть толковые программисты. Ну и третий сценарий, в котором OpenStack является хорошим инструментом ― вам нужна облачная среда для развертывания и тестирования новых приложений. И здесь данная платформа станет хорошим решением ваших задач.