Подразделениям ИТ больших компаний, особенно из финансовой и банковской сферы, нередко приходится решать задачу многократного разворачивания аппаратно-программных сред для функционального и нагрузочного тестирования, а также для разработки новых приложений. В общем случае такие среды требуются на непродолжительное время (от нескольких часов до десятков дней), однако создавать их приходится довольно часто — иногда среда «живет» несколько часов и используется для тестирования каких-либо изменений в прикладном ПО.

Сама по себе работа по созданию среды оказывается достаточно ресурсоемкой, требует выделения и настройки сложной физической и виртуальной инфраструктуры, что чревато появлением ошибок и ведет к неэффективному использованию корпоративной ИТ-инфраструктуры. В результате до 80–90% жизненного цикла тестового окружения приходится на непроизводительные работы по настройке. Решать проблемы создания тестовых сред можно путем комплексной автоматизации — в частности, на базе технологий OpenStack, а точнее открытого дистрибутива Mirantis OpenStack, в состав которого входит модуль управления приложениями Murano.

В общих чертах решение по автоматизации управления приложениями выглядит как запуск частного облака PaaS/SaaS на базе модуля Murano OpenStack, создание и последующая поддержка каталога приложений, доступного для просмотра по категориям, например: «Application Servers», «Load Balancers», «Big Data» и т. п. Данное решение позволяет исключить реформирование уже имеющейся инфраструктуры, и если у заказчика, например, уже есть действующее облачное решение на базе VMware, то оно может быть безболезненно включено в новую конфигурацию. Ранее сделанные инвестиции в технологии виртуализации и управления можно использовать вплоть до окончания корпоративных лицензионных соглашений (обычно два-три года) — этого времени достаточно для того, чтобы протестировать новую технологию на реальных сценариях и перевести полезную нагрузку (виртуальные машины) под управление гипервизора KVM (Kernel-based Virtual Machine).

Преимуществами схемы постепенного перехода на платформу (см. рисунок), полностью свободную от каких-либо лицензионных выплат, независимую от производителя и готовую к построению достаточно сложной инфраструктуры, являются экономия и повышение эффективности использования оборудования. Не секрет, что в некоторых компаниях производятся закупка оборудования и разворачивание инфраструктуры «на перспективу», это связано, как правило, с особенностями взаимодействия подразделений ИТ и отделов, занимающихся разработкой, отладкой и запуском приложений. Первые обычно перестраховываются в оценке сроков работ по развертыванию тестовых сред, а вторые стараются обезопасить себя от возможных накладок, связанных с неготовностью инфраструктуры. В результате бизнес получает массу оборудования, стоящего «под парами».

Murano OpenStack в облачной инфраструктуре
Murano OpenStack в облачной инфраструктуре

 

После развертывания частного облака на базе Murano OpenStack пользователям, разработчикам и администраторам будут предоставлены следующие возможности.

Ведение каталога приложений. Элементами каталога приложений являются «атомарные» приложения: сервер баз данных, сервер приложений или произвольное приложение. Между элементами каталога могут быть установлены зависимости: например, если приложению понадобится сервер баз данных, то во время разворачивания приложения пользователь сможет выбрать, какая именно СУБД из каталога (MySQL, PostgreSQL и др.) будет использоваться. Это позволяет декомпозировать составные приложения, стандартизировать компоненты и многократно использовать уже имеющееся системное и прикладное ПО, оперативно собирая новые приложения из стандартных компонентов.

Автоматическое развертывание приложений по требованию. Приложения из каталога приложений могут быть быстро развернуты в облаке, а сам процесс — инициироваться пользователем без участия администратора либо запускаться автоматически. Например, развертывание тестовой среды проверки приложения после ночной сборки может осуществляться автоматически по расписанию. Выделение необходимой виртуальной инфраструктуры (серверов, систем хранения, сетевого оборудования) также будет проведено автоматически.

Управление вручную. Пользователь может при необходимости самостоятельно запросить ресурсы и получить их в виде виртуальных машин, обладающих всеми необходимыми для выполнения приложения ресурсами (пространство для хранения данных, процессоры, сетевые подключения, предустановленные приложения из каталога и т. п.).

Доступ к ресурсам. Доступ к ресурсам осуществляется через сеть с помощью стандартных механизмов (REST API) и протоколов (HTTP/HTTPS, JSON), с использованием различных платформ и клиентов («толстый/тонкий» клиент, утилиты командной строки).

Создание пулов ресурсов. Аппаратные ресурсы объединяются в пулы для обслуживания большого числа индивидуальных пользователей или их групп. Физические и виртуальные ресурсы динамически распределяются в соответствии с запросами пользователя, у которого должно возникнуть ощущение, что имеющиеся в его распоряжении ресурсы безграничны и их можно использовать в любых количествах и в любое время. При этом он, как правило, не контролирует точное расположение выделенных ему ресурсов, однако может указать требуемое расположение на более высоком уровне абстрагирования: страна, регион, ЦОД, «класс обслуживания».

Измеримость. Для управления ресурсами, в том числе в целях оптимизации их использования, применяются средства измерения, соответствующие типу службы (объемы сохраненных данных, время работы процессора, потребление памяти, полоса пропускания, число учетных записей пользователей и т. п.). Использование ресурсов можно контролировать путем создания отчетов, обеспечивающих прозрачность задействованной службы как для поставщика, так и для потребителя.

***

Murano OpenStack позволяет управлять не только обычными приложениями, в частности, разворачивая их на виртуальные или физические машины, но и приложениями из контейнеров Docker, содержащих все системное окружение, необходимое для выполнения приложения. Кроме того, благодаря интеграции с Kubernetes, открытой системой управления кластером изолированных контейнеров, в ближайшее время Murano сможет управлять кластером из серверов Docker. При этом Murano может интегрироваться и с популярной системой управления Cloud Foundry, предназначенной для разработки, развертывания и обеспечения работы приложений в частных или публичных облаках. Код Cloud Foundry был открыт компанией VMware в 2011 году и перешел под крыло Linux Foundation, что позволило создать независимую от производителей среду управления, в поддержке которой принимают участие EMC, HP, IBM, Intel, Pivotal, SAP и VMware.

Валерий Безруков, Юрий Конов, Илья Стечкин ({vbezrukov, ykonov, istechkin}@mirantis.com) — директор по развитию бизнеса, менеджер, архитектор облачных инфраструктур, компания Mirantis (Москва).