Хмара OpenStack: міфи і реальність

Проект OpenStack виник з ініціативи двох виробників і об'єднав їх продукти — об'єктне сховище Rackspace і систему управління гіпервізорами NASA. «OpenStack покликаний допомогти організаціям надавати хмарні обчислювальні ресурси, запущені на стандартному обладнанні», — заявляють вендори. У даному матеріалі ми спробуємо розібратися, чи так це насправді.

OpenStack сьогодні

Перший реліз OpenStack вийшов в жовтні 2010 р. Так компанія Rackspace стала одним з найближчих конкурентів іншого хмарного провайдера IaaS — Amazon Web Services (AWS), який в той час сильно втрачав свої позиції. По суті, OpenStack — копія AWS: багато сервіси і процеси в цих платформах однакові і навіть сумісні між собою.

IaaS: OpenStack vs. Amazon Web Services


OpenStack складається з декількох модулів, які взаємодіють між собою через каталог сервісів. Сьогодні платформа включає:
  • засіб управління гіпервізорами (Nova)
  • об'єктне сховище (Swift)
  • сховище образів віртуальних машин (Glance)
  • веб-інтерфейс управління (Horizon)
  • каталог користувачів та сервісів (Keychain)
  • засіб управління мережевою інфраструктурою (Neutron)
  • блочне сховище (Cinder)
  • оркестратор хмарних додатків (Heat)
  • інструмент обліку витрачених ресурсів (Ceilometer)
  • засіб надання БД як послуги.
У найближчому майбутньому планується реалізувати такі можливості, як надання фізичної обладнання за запитом, а також розгортання кластерів Hadoop.

Про міфи

Є OpenStack технологією майбутнього, мейнстрімом? Як знати. Можливо, це такий же невідомий поки Клондайк, як Linux початку 90-х рр., коли мало хто про нього знав і зовсім небагато бачили. OpenStack володіє великим потенціалом, але на сьогодні важко назвати його готовим продуктом. І ось чому.

Функціонал рішення постійно трансформується, доповнюється і документація не завжди встигає за цими змінами. Найчастіше в новому релізі з'являються можливості, які не відображені в інструкції до продукту.

Пошук несправностей сильно утруднений, так як зазвичай у відповідь на будь-які помилки OpenStack видає кілька кілобайт стектрейсов. Доводиться витрачати чимало часу і зусиль тільки для того, щоб визначити причину збою.

Впровадження OpenStack вимагає серйозної роботи програмістів. Якщо ви збираєтеся продавати хмарні послуги на основі даного продукту (нехай навіть в рамках однієї компанії), наявного в ньому функціоналу буде явно недостатньо. Наприклад, ви не зможете обмежити мережевий трафік однієї віртуальної машини так, щоб вона не заважала іншим. Базові можливості OpenStack не дозволяють плавно регулювати споживані ресурси і навіть мігрувати віртуальну машину на інший хост. Засобів моніторингу доступності теж немає. Нарешті, хороший приклад готовності OpenStack як продукту — процедура додавання і видалення вузлів з гіпервізорами. Додаються вони певною процедурою, а ось для видалення compute-ноди немає спеціальної команди. Доводиться йти в спеціальну таблицю MySQL і робити це вручну:

mysql> delete from compute_nodes where hypervisor_hostname='nova4';
Query OK, 1 row affected (0.00 sec)
mysql> delete from services where host='nova4';
Query OK, 1 row affected (0.00 sec)
mysql>

Безоплатно, тобто даром? Скачати OpenStack ви можете абсолютно безкоштовно. Проте через неготовність продукту його «безкоштовність» виливається в серйозні робота в частині доопрацювання.

Розробляється вільним спільнотою? На сайті OpenStack можна подивитися статистику: хто і якою мірою брав участь у розробці коду рішення.

За всю історію існування OpenStack


Найбільше відзначилася компанія Rackspace, яка заробляє на наданні користувачам інфраструктури як послуги. Далі йдуть Red Hat, яка займається продажем, впровадженням та підтримкою рішень OpenStack; потім — HP і IBM, що надають " хмарні послуги на базі OpenStack. Як бачимо, частка вільних програмістів-ентузіастів (OpenStack Foundation) мінімальна, а за кількістю користувачів всього 5-10 осіб за всі 4 роки.

Реліз Juno (жовтень 2014)


Якщо дивитися на останнє півріччя 2014-го — картина дещо змінилася, але лідери залишилися практично ті ж. Плюс з'явилися нові гравці — Mirantis, що продає тільки OpenStack (інсталяції і підтримку), а також компанія SUSE. Замикають список виробники, у кожного з яких власні цілі. NEC забезпечує підтримку свого обладнання, що працює з OpenStack. VMware намагається захистити свою екосистему, «очоливши» реалізацію сумісності OpenStack з ESXi.

З OpenStack у мене буде свій Amazon? Є дана технологія ключовим фактором успіху для хмарного провайдера? Ні, не є. Це добре видно по магічному квадранту Гартнера. Переважна кількість компаній використовують VMware, трохи менш популярний KVM. А ось платформі Xen віддали перевагу як IBM, Fujitsu і GoGrid, так і явний лідер Amazon. Зрозуміло, що справа зовсім не в гипервизоре.


чи Можна замінити традиційні віртуальні машини хмарними? Особливості двох підходів до віртуалізації відображені в порівняльній таблиці (спасибі Red Hat за неї).

Традиційні ВМ ( ESXi, RHEV) Хмарні ВМ (OpenStack, AWS)
Великі. Дані зберігаються всередині ВМ Маленькі. Дані зберігаються зовні ВМ
1 додаток à 1 ВМ 1 додаток à багато ВМ
Цикл життя ВМ — роки Цикл життя ВМ — від годинника до місяців (додатки знаходяться не всередині ВМ, а зовні)
Збільшити ту чи іншу ВМ з додатком можна лише до розмірів її хоста При збільшенні/зменшенні кількості користувачів динамічно створювати/видаляти ВМ
Вертикальне масштабування (нарощується продуктивність ВМ) Горизонтальне масштабування (збільшується кількість ВМ)
Додаток знаходиться всередині і не переживе збій ВМ, тобто важливо забезпечити відмовостійкість У разі збою ВМ хмарне додаток створює її з нуля, залишаючись в робочому стані
SLA вимагає забезпечення доступності програми через Live Migration, HA і іншої подібний функціонал SLA вимагає можливості додавання/видалення примірників ВМ для підтримки доступності програми
Експлуатація. В OpenStack немає засобів забезпечення високої доступності та конкретних планів щодо її реалізації. Системи резервного копіювання для ВМ також немає. Якщо сервер віртуалізації вийшов з ладу, то і віртуальні машини ми втратили — доведеться створювати нові (і це нормально).
Рекламується, що OpenStack працює у всіх гипервизорах, проте це не так. Основна система управління, за якої ведеться розробка і тестування продукту, — KVM. Інші або тестуються не повністю (наприклад, Microsoft Hyper-V, гипервизоры VMware, Citrix XenServer 6.2), або не тестуються зовсім (Baremetal, Docker, LXC через libvirt, Xen через libvirt) і їх робота в OpenStack не може бути гарантована. В останньому випадку при запуску ви побачите повідомлення на зразок: «The libvirt driver is not tested on xen/x86_64 by the OpenStack project and thus its quality can not be ensured».
При цьому можливість живої міграції (Live Migration), тобто перенесення ВМ з одного фізичного сервера на інший без зупинки сервісів, OpenStack відключена за замовчуванням. Незважаючи на те, що даний функціонал підтримується основним гіпервізором — KVM.

Застосування OpenStack

Незважаючи на окреслені особливості і недоліки, платформу OpenStack цілком можна використовувати для різних завдань. Один з варіантів: у вас вже є якась хмарна середовище (наприклад, Amazon або Rackspace) але ви хочете переїхати, розгорнувши хмарні сервіси у себе.
Ще один сценарій: ви плануєте стати провайдером хмарних, у вас є стартап, достатньо фінансів, програмісти, бажання працювати і найголовніше — якісь ноу-хау, які ви розгорнете в цій хмарі. Тобто ви збираєтеся зробити не другий Google або Facebook, а щось абсолютно нове. У цьому випадку OpenStack — той продукт, на основі якого можна далі розвиватися.
Якщо є регулярна потреба в оцінюванні або потрібна хмарна платформа для розробки нового додатка, також є сенс звернути увагу на OpenStack. Як варіант, можна задіяти тільки якийсь окремий модуль OpenStack. Наприклад, використовуючи працю кількох програмістів, написати і реалізувати щось на зразок корпоративного Dropbox на основі Swift.

Джерело: Хабрахабр

0 коментарів

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