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 можна розглядати як якийсь мозок, автоматично розподіляє ресурси і дані для додатків.



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, часто використовувані в інтернеті речей та аналітики великих даних. Це дозволяє підприємствам отримати просте і готове рішення для додатків великих даних.

Приклад: оркестрация контейнерів

даному прикладі для оркестрации контейнерів використовувалися сервери ProLiant DL380 Gen 9 наступної конфігурації:



Логічна архітектура DS/OS з Marathon виглядає так:



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

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

$ dcos install package –yes marathon-lb

Тепер можна використовувати кластерну середу DC/OS з marathon-lb в DC/OS Public Agent. Додатки Marathon, налаштовані на балансування навантаження, будуть бачити відповідні адреси і порти. Користувальницький інтерфейс Marathon виглядає наступним чином:



DC/OS підтримує як нативні контейнери Linux, так і контейнери Docker. Мова специфікації програм Marathon при цьому один і той же.

Наступний приклад на Python показує конфігурування програми Marathon для Web-сервера всередині нативного контейнера Linux. Цей додаток обслуговує Corporate Cafeteria Menu з Load Balancer VIP. Використовується балансувальник Marathon Load Balancer. Як показано нижче, визначення програми Marathon – це простий файл simple.json.



Додаток можна запустити з Marathon UI або з DC/OS CLI командою:

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


Так виглядає 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:



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



Тепер протестуємо Java-додаток, використовуючи Docker. Після запуску 1000 примірників у Corporate Web Menu створимо друге додаток Marathon. Воно використовує образ Docker, який інсталює Java Runtime Environment. Цей додаток буде запускати Apache, FTP Server. Визначення додатки Marathon для Java-додатки в контейнері Docker виглядає так:



Запустимо додаток командою DC/OS CLI:

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

Після запуску одного примірника Java-додатки для Docker отримаємо в Marathon UI:


Масштабується його до 250 примірників:



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



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



Container Orchestration: результати
Отже, в даному прикладі в кластері DC/OS з використанням двох різних технологій контейнерів було запущено велике число примірників додатків. Це робиться за лічені хвилини, а масштабування додатків – справа кількох секунд.



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





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

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

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

Контейнери сьогодні нерідко розглядають як альтернативу віртуалізації. В апаратної віртуалізації базовий шар – гіпервізор. Він завантажується на сервері і забезпечує взаємодію між апаратними засобами і віртуальними машинами. Щоб надати ресурси віртуальним машинам, забезпечується їх віртуалізація на сервері. Віртуальні машини запускають свою власну копію операційної системи і додатків на виртуализированном обладнанні.

ВМ вимагають значних системних ресурсів. Кожна віртуальна машина містить не просто копію ОС, а віртуальну копію всіх необхідних апаратних засобів. А це вимагає ресурсів ЦП і ПАМ'ЯТІ. Контейнера для виконання конкретного додатка досить операційної системи, що підтримують програм і бібліотек. На практиці це означає, що сервер зможе підтримувати в два-три рази більше додатків, ніж у випадку ВМ. А ви вже використовуєте контейнери в своєму ЦОД?
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.