HPE инвестирует в контейнеры

Сегодня многие технологические компании обращают пристальное внимание на технологию контейнеров. В их числе — Google, IBM, Microsoft и конечно HPE. Контейнеры позволяют «упаковать» в один физический сервер намного больше приложений, чем это позволяют сделать виртуальные машины. Контейнерные технологии не новы, например, многие знают о них по разработкам компании Parallels, но они играют все более важную роль в центрах обработки данных и облаках. О них и пойдет речь.

image
Немножко не те контейнеры, о которых речь, но надо же привлечь внимание:)

Как и многие компании мира высоких технологий, компания Hewlett Packard Enterprise занимается венчурными инвестициями. Один из недавних примеров — инвестиции в разработчика лидирующих на рынке программно-определяемых объектных хранилищ Scality. Другой пример инвестиций в передовые технологии — поддержка стартапа Mesosphere, разработчика так называемой DC/OS.

Что такое DC/OS и чем она хороша?


Операционная система DC/OS (Data Center Operating System), известная ранее как DCOS, недавно перешла в разряд Open Source. Компания-разработчик Mesosphere из Сан-Франциско решила открыть исходный код ее ядра.

Mesosphere разработала коммерческую версию DCOS пару лет назад. Основанная на ядре Apache Mesos, DC/OS упрощает управление разнородными нагрузками на таких платформах как Hadoop, Spark, Kafka и Docker. К настоящему времени Mesosphere DC/OS стала коллективным проектом, в котором участвуют более 50 компаний, включая Autodesk, Canonical, Cisco, Citrix, EMC, HPE, Joyent, Microsoft, NetApp и Verizon.

Контейнеры и микросервисы стали завоевывать популярность в связи с разработкой и развертыванием распределенных приложений. Как оказалось, контейнеризация дает целый ряд преимуществ. Приложения в контейнерах получили название нативных облачных приложений.

Чем же хороша в этом плане DC/OS? Хотя контейнеры позволяют достичь хорошей масштабируемости, у них есть недостаток — сложно добиться тесной интеграции с существующими приложениями, такими как базы данных, хранилища данных и платформы для больших данных. DC/OS как раз и разработана для того, чтобы можно было управлять приложениями разного типа в одной среде. Она устраняет разрыв между традиционными бизнес-приложениями и современными облачными приложениями, обеспечивает оркестрацию.

Например, в DC/OS можно работать с горизонтально-масштабируемыми Web-приложениями в контейнерах, взаимодействующих с кластерами Apache Hadoop или Cassandra, использовать Marathon для оркестрации контейнерных приложений и Chronos — для планирования длительных задач. Такая унифицированная среда позволяет наряду с традиционными выполнять масштабируемые контейнерные приложения. Это главная особенность DC/OS.

Хотя для создания и развертывания контейнеров традиционно используется Docker, нужен дополнительный уровень для оркестрации контейнерных приложений. Такими решениями для управления контейнерами на более высоком уровне являются Docker Swarm и Kubernetes. ПО Docker Swarm разрабатывается и поддерживается компанией Docker, а Kubernetes — результат перевода в Open Source подмножества разработанного Google инструмента управления ЦОД под названием Borg. Интересно, что DC/OS может управлять как средами Docker Swarm, так и Kubernetes.

Операционная система DC/OS охватывает все серверы в ЦОД или в облаке и реализует мощный уровень абстрагирования ресурсов. Лежащее в основе DC/OS ядро Apache Mesos для распределенных систем включает в себя планировщик, создающий пул ресурсов, автоматически распределяющий их и планирующий задания согласно запросам и политикам.

По сути, ЦОД работает как один большой компьютер. Технологию Mesosphere можно рассматривать как некий мозг, автоматически распределяющий ресурсы и данные для приложений.

2ba2799aa33321afa93ec37b4377f87d.png

DC/OS предоставляет гибкие возможности развертывания приложений, сервисов и инфраструктуры больших данных, использующих общие ресурсы. В такой масштабируемой среде можно выполнять разные приложения и нагрузки — от PaaS до приложений больших данных и СУБД. Работает DC/OS в любой современной среде Linux, в частном и публичном облаке, в виртуальных машинах, на «голом железе» x86, обеспечивая эффективное использование ресурсов.

Отраслевая поддержка


В прошлом году для продвижения нативных облачных приложений под руководством Google был сформирован консорциум Cloud Native Computing Foundation (CNCF). Его членами стали Joyent, CoreOS, IBM, VMWare, Cisco, Weaveworks и др. Консорциумом CNCF управляет Linux Foundation. Mesosphere — один из основателей этого консорциума.

Отдельного консорциума по DC/OS компания Mesosphere не создавала, но она поддерживает сообщество разработчиков соответствующего ПО. Если консорциум CNCF в большей степени ассоциируется с Kubernetes, то на повестке дня сообщества, возглавляемого Mesosphere и Microsoft, — вопросы развития и продвижения DC/OS. Эксперты считают, что со временем DC/OS может стать реальной альтернативой Kubernetes.

HPE и Microsoft — ключевые инвесторы Mesosphere. Их инвестиции составили 73,5 млн. долларов, причем ведущая роль принадлежит Hewlett Packard Enterprise. Технология DC/OS будет играть важную роль в гибридных облаках Microsoft и может быть задействована в будущей платформе для частного облака Microsoft Azure Stack. Благодаря сервису Azure Container Service в публичном облаке и DC/OS в частном облаке Microsoft сможет предложить корпоративным заказчикам возможности гибридного облака. В корпоративных ЦОД возможности DC/OS могут также использовать другие технологии, такие как HDInsight в Windows Server.

Разработки Mesosphere нашли отражение в Microsoft Azure Container Service (ACS). Azure Container Service значительно ускоряет разработку ПО. Корпорация Microsoft сделала доступным свой сервис оркестрации контейнеров одновременно с анонсом Mesosphere DC/OS. ACS — это сервис CaaS («контейнеры как сервис»), конкурирующий с Google Container Engine и Amazon EC2 Container Service. Однако ни Amazon, ни Microsoft не являются членами Cloud Native Computing Foundation. В Amazon CaaS применяется проприетарный механизм оркестрации, а Azure Container Service поддерживает Docker Swarm и DC/OS. Kubernetes они не используют.

Компания Verizon применяет Mesosphere DC/OS для управления своими дата-центрами, а Apple, Twitter и Airbnb используют эту технологию для работы с большими объемами данных. Например, Apple задействовала ее в своем виртуальном ассистенте Siri.   

Несомненно, DC/OS должна сыграть важную роль в управлении корпоративными облачными дата-центрами. Именно этим объясняются инвестиции HPE. Будучи задействованной в таких продуктах как HP Helion и Microsoft Azure Stack, она должна помочь корпоративным заказчикам перейти к облачной модели, сохраняя свои инвестиции в ЦОД.

Развертывая Apache Spark, Kafka, Cassandra и Zeppelin в DC/OS, можно получить оптимизированную среду для масштабной обработки данных, ресурсы которой одновременно доступны для других нагрузок, например, для Web-серверов или Java-приложений.

DC/OS на серверах HPE ProLiant и Cloudline


Что же дает развертывание DC/OS на серверах HPE ProLiant и Cloudline? Преимуществ немало:

Масштабируемость, гибкость и автоматизация. Планировщик DC/OS позволяет создавать пул распределенных нагрузок (сервисов DC/OS). Задачи развертывания сервисов, их масштабирования и управления ими сводятся к простым командам, значительно упрощается обеспечение безопасности и непрерывности бизнеса. Серверы HPE ProLiant имеют гибкую архитектуру и расширяемую подсистему ввода-вывода, поэтому они хорошо подходят для такой среды. Гипермасштабируемые серверы семейства HPE Cloudline разработаны специально для провайдеров. Они предусматривают быстрое развертывание, гибкость эксплуатации и имеют низкие показатели TCO.

Ускоренное получение результатов от новых сервисов. DC/OS позволяет предприятиям легко развертывать и масштабировать сервисы (причем в этом может участвовать несколько команд), применять инструменты интеграции типа Jenkins, использовать репозитории объектов и средства контроля кода.

Гибкое управление инфраструктурой. Серверы ProLiant поддерживают такие инструменты управления и обновления ПО как HPE OneView и Smart Update, встроенное удаленное управление и мониторинг средствами HPE iLO. Серверы Cloudline рассчитаны на открытые инструменты управления и стандартные интерфейсы, легко вписываются в неоднородную среду с платформами разных вендоров. HPE — один из основателей открытой спецификации Redfish для программно-определяемых ЦОД. Этот стандарт в значительной степени базируется на реализации RESTful API для HPE iLO. Redfish API можно использовать при работе с серверами HPE ProLiant и Cloudline.

Перемещение, интеграция и доставка приложений между разными средами. HPE придерживается открытых стандартов, архитектур на базе API и Open Source, включая Cloud Foundry, DC/OS и OpenStack. Какой бы ни была облачная среда — частной, публичной или гибридной, для нее доступна обширная экосистема аппаратного, программного обеспечения и услуг.

Быстрый анализ разнородных данных. DC/OS поддерживает такие сервисы как Kafka, Spark и Cassandra, часто используемые в интернете вещей и аналитике больших данных. Это позволяет предприятиям получить простое и готовое решение для приложений больших данных.

Пример: оркестрация контейнеров


82a705ed46b91e5b469e9c01f39cd45c.png


В данном примере для оркестрации контейнеров использовались серверы ProLiant DL380 Gen 9 следующей конфигурации:

f8ab8d330ecbae838b50397612806e77.png

Логическая архитектура DS/OS с Marathon выглядит так:

97b94c5f1b5d337eeffe9790af109ada.png

Marathon — планировщик ресурсов в кластере. Он обеспечивает высокую масштабируемость приложений и сервисов в среде DC/OS. Marathon работает поверх DC/OS, где есть собственный планировщик для запуска/останова задач или сервисов приложений. В данном случае Marathon выполняет функции более высокого уровня — осуществляет мониторинг и оркестрацию.

DC/OS поставляется с отказоустойчивой службой Marathon для приложений с продолжительным временем работы. В данном примере именно она используется для оркестрации контейнеров — Container Orchestration. Служба marathon-lb обеспечивает балансирование нагрузки для приложений Marathon. Запускается она так:

$ dcos package install –yes marathon-lb


Теперь можно использовать кластерную среду DC/OS с marathon-lb в DC/OS Public Agent. Приложения Marathon, настроенные на балансирование нагрузки, будут видеть соответствующие адреса и порты. Пользовательский интерфейс Marathon выглядит следующим образом:

49717adb7658b35768296cb83ee60fbb.png

DC/OS поддерживает как нативные контейнеры Linux, так и контейнеры Docker. Язык спецификации приложений Marathon при этом один и тот же.

Следующий пример на Python показывает конфигурирование приложения Marathon для Web-сервера внутри нативного контейнера Linux. Данное приложение обслуживает Corporate Cafeteria Menu из Load Balancer VIP. Используется балансировщик Marathon Load Balancer. Как показано ниже, определение приложения Marathon — это простой файл simple.json.

b0596202d9908a98c892955f6fe2dff2.png

Приложение можно запустить из Marathon UI или из DC/OS CLI командой:

$ dcos marathon app add 0c-python-corpmenu-lb.json


2e881bc51f49d110a9fb55797d298e0a.png
Так выглядит Container Orchestration Marathon UI с приложением Web Menu. Определение приложения Corporate Menu содержит инструкции для подключения данного приложения к балансировщику Load Balancer и указывает, какой порт TCP открыт для Web Service.

Теперь протестируем приложение, обращающееся к Load Balancer VIP через заданный сервисный порт (10001). Для выполнения Load Balancer используется DC/OS Public Agent по адресу 10.250.40.138. Балансировщик нагрузки Marathon показывает следующий пользовательский интерфейс Container Orchestration приложения Web Menu:

656201bd3fc8a38e45382c576fde99da.png

Теперь можно масштабировать приложение до 1000 экземпляров. Marathon будет запускать их, отслеживая выполнение каждого и показывая статус в UI. Экземпляры распределяются по всем доступным агентам DC/OS Agent. Нагрузка на кластер DC/OS увеличивается:

4d7f2a5ebc19a49662e0575b73c025cf.png

Теперь протестируем Java-приложение, используя Docker. После запуска 1000 экземпляров в Corporate Web Menu создадим второе приложение Marathon. Оно использует образ Docker, который инсталлирует Java Runtime Environment. Данное приложение будет запускать Apache FTP Server. Определение приложения Marathon для Java-приложения в контейнере Docker выглядит так:

e3f7e58e3044f3f00de2b120a586bde2.png

Запустим приложение командой DC/OS CLI:

$ dcos marathon app add 10b-apacheftp-java-docker.json


После запуска одного экземпляра Java-приложения для Docker получим в Marathon UI:

c12aa9e2fdbd1144ae20b5e23e27b53a.png
Масштабируем его до 250 экземпляров:

a969eb6954d052d644d23b65c65a1d3c.png

В отличие от примера с Web-сервером, балансировщик Load Balancer для данного приложения не используется. В данном случае в качестве инструмента Service Discovery применяется Mesos-DNS в составе DC/OS. Для определения IP-порта задействован Marathon UI. Для одного экземпляра Java-приложения Marathon UI показывает следующую информацию:

9c48ee5b06387f0d0211c3b8a0eadd6e.png

Теперь используем FTP-клиента для тестирования одного из 250 экземпляров Java-приложения:

1c589c0694a0258dcf269d844d6f7888.png

Container Orchestration: результаты


Итак, в данном примере в кластере DC/OS с использованием двух разных технологий контейнеров было запущено большое число экземпляров приложений. Это делается за считанные минуты, а масштабирование приложений — дело нескольких секунд.

69dfef84a25537c4a161e5a2e290e15e.png

Кроме того, достигается высокий коэффициент использования кластера DC/OS, улучшается показатель ROI.

46753e29cef2895b5226a3b3daf5f241.png

859d72eab207abf26cad58d05cd9ce27.png

Контейнерное будущее — сегодня


Итак, подведем итоги. Datacenter Operating System (DC/OS) — открытая платформа для выполнения приложений корпоративного класса, основанная на ядре Apache Mesos. Использование DC/OS корпоративными заказчиками и облачными провайдерами с серверами серии HPE ProLiant и Cloudline позволяет создать гипермасштабируемую среду с СПО. Предприятия получают возможности гибкого развертывания распределенных приложений на надежных системах HPE. DC/OS помогает справиться с растущей сложностью абстрагированной (виртуализованной, контейниризованной и проч.) инфраструктуры ИТ, может оркестрировать любые типы ресурсов в ЦОД, включая физические и виртуальные серверы.

Контейнеры выполняются на одном уровне с физическими серверами. Отсутствие виртуализованного оборудования и использование реального оборудования и драйверов позволяют получить непревзойденную производительность. А каждый контейнер может масштабироваться до ресурсов всего физического сервера.

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

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

ВМ требуют значительных системных ресурсов. Каждая виртуальная машина содержит не просто копию ОС, а виртуальную копию всех необходимых аппаратных средств. А это требует ресурсов ЦП и ОЗУ. Контейнеру для выполнения конкретного приложения достаточно операционной системы, поддерживающих программ и библиотек. На практике это означает, что сервер сможет поддерживать в два-три раза больше приложений, чем в случае ВМ. А вы уже используете контейнеры в своем ЦОД?

© Habrahabr.ru