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

image

Разработчики программного обеспечения многих компаний выражают интерес к технологиям OpenStack из-за открытого API и исходного кода, гибкой архитектуры и крупной коммерческой экосистемы, предлагающие новую парадигму развития и развертывания программного обеспечения.

Часть 1.


Что такое OpenStack?


OpenStack – комплекс программного обеспечения, реализующий функции облачной платформы. Он позволяет управлять пулами различных ресурсов по типу IaaS.

image

OpenStack реализует концепцию программно-определяемого центра обработки данных, который предоставляет простой и унифицированный доступ к различным вычислительным ресурсам, сетям передачи данных, системам хранения данных, а так же дополнительным сервисам, таким как:

  • балансировщики нагрузки (Load Balancer as a Service),
  • средства защиты периметра (Firewall as a Service, Security Groups),
  • объектное хранение данных, совместимое с Amazon S3.

Доступ к ресурсам, предоставляемый платформой, возможен «по клику» через портал самообслуживания. Пользователи платформы могут самостоятельно создавать виртуальные сети, маршрутизаторы, дисковые устройства всего в несколько кликов, а платформа OpenStack будет самостоятельно внедрять эти изменения на низком уровне, обеспечивая интеграцию с различным сетевым оборудованием и системами хранения данных. После настройки сетей пользователям доступна возможность создавать виртуальные серверы из заранее заданных образов виртуальных серверов. Большая часть пользовательских операций интуитивно понятна и не требует специфических знаний используемых низкоуровневых технологий.

image

OpenStack взаимодействует с базовой инфраструктурой через открытые или предоставляемые вендором драйверы, что помогает спасти клиентов от ловушки конкретной технологии, вендора или инструмента.

OpenStack предоставляет дополнительные услуги, такие как управление идентификацией, оркестрация, учет потребляемых ресурсов в той же программной основе через API. OpenStack также предлагает основу для эволюции к DevOps, непрерывной интеграции и методологии непрерывного развертывания.

OpenStack не является гипервизором, но он поддерживает несколько гипервизоров через слой абстракции. В том числе популярные гипервизоры (коммерческие и с открытым исходным кодом). Среди них: KVM, Xen, QEMU, Hyper-V, доступна с VMware vSphere (ESXi в чистом виде не поддерживается).

В чем преимущества OpenStack?


OpenStack сокращает время на развертывание и вывод на рынок тех или иных приложений.

image

Большое сообщество
Вокруг OpenStack образовалась огромная экосистема, в которой принимают участие большое количество разработчиков из более чем 500 крупнейших компаний-лидеров ИТ-индустрии мира. Существует большое количество вендор-специфичных модулей для OpenStack, решающих те или иные задачи. Продукт активно развивается, что вызывает большой интерес у многих компаний.

image

В чем разница концепции облака OpenStack и традиционной архитектуры?


Для того чтобы понять разницу между традиционной инфраструктурой и облачными технологиями OpenStack необходимо определить разницу в философии их дизайна.

Для начала рассмотрим инфраструктуры, которые построены на традиционных технологиях виртуализации, таких как платформа VMware vSphere (или аналоги, например, Red Hat Enterprise Virtualization, Hyper-V). Эти технологии предлагают консолидировать серверы практически любого размера, но все же более ориентированы на хостинг небольшого количества (в сравнении с облаком) достаточно крупных VM.

Решение работает хорошо, потому что большинство серверов приложений, как правило, имеют монолитные архитектуры, такие как Oracle или Microsoft Exchange. Сегодня каждый экземпляр данного типа до сих пор заключен в одной виртуальной машине и растет путем расширения на одном физическом сервере, работающем под управлением гипервизора.
Для обеспечения надежности работы этих унаследованных приложений традиционные системы предлагают запустить серверы приложений на VM в, так называемых, кластерах/доменах и т.п., с использованием функций повышения отказоустойчивости инфраструктуры (например. VMware High Availability vSphere и VMware vSphere vMotion). Эти решения могут работать при определенных условиях, таких, как наличие разделяемой системы хранения данных, высокой пропускной способности сети, что накладывает сложности, связанные с последующим масштабированием. Как правило, все классические платформы виртуализации предоставляют хорошо зарекомендовавшие себя средства обеспечения высокой доступности виртуальных серверов, что повышает доступность приложения на уровне инфраструктуры, не требуя изменений на стороне приложения.

Рисунок – реализация высокой доступности в среде VMware vSphere с использованием vMotion и HA

image

image

Облачные платформы, такие как OpenStack, предназначены для использования с другим классом приложений, таких как Apache Cassandra, MongoDB и Hadoop, которые спроектированные для горизонтального масштабирования (scale-out), и являются устойчивыми к падению виртуальных машин. Ресурсы могут быть расширены за счет добавления новых экземпляров приложений на однотипных виртуальных серверах с последующей балансировкой нагрузки. Эти распределенные приложения самостоятельно обеспечивают собственную отказоустойчивость на уровне приложения, независимо от базовой инфраструктуры и передовых функций гипервизоров.

Высокая доступность приложения может быть обеспечена в OpenStack-инфраструктуре. В инфраструктурах следующего поколения обработка отказа осуществляется на уровне приложения, чтобы уменьшить затраты на оборудование. В отличие от этого, обеспечение высокой доступности на инфраструктурном слое может потребовать избыточных вычислительных ресурсов, емкости систем хранения и пропускной способности сети, программного обеспечения сторонних производителей доработок со стороны пользователя.

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

Рисунок – пример реализации высокой доступности данных в объектном хранилище OpenStack Swift

image

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

Кратко сравнение подходов облака OpenStack и традиционной архитектуры виртуализации выглядит следующим образом:

image

В следующем материале расскажем о том, когда стоит задуматься о внедрении OpenStack, о платных и бесплатных дистрибутивах и можно ли использовать Оpenstack для управления ресурсами в Vmware vsphere?

Автор: artemii

Комментарии (7)


  1. HeOS
    29.03.2016 21:45
    +1

    Хорошая вводная статья. Кстати говоря, откуда вы взяли картинку с участниками сообщества? По-моему, некоторые активные участники на ней упущены. :)


    1. artemii
      30.03.2016 10:18

      Спасибо за замечание. Действительно многие активные участники (например Mirantis) на картинке не были отображены, что мы обязательно исправим. Первичной целью картинки с сообществом было не показать активных участников, а показать разнообразие компаний, принимающих участие в развитии продукта. Для справки — на сегодняшний день (30 марта 2016 года) OpenStack поддерживают 576 компаний в мире.


      1. HeOS
        30.03.2016 10:46

        Да, цель картинки я понял. :)

        Как дополнение: активность той или иной компании в сообществе можно посмотреть тут: http://stackalytics.com/.


  1. fessoga5
    30.03.2016 18:36

    балансировщики нагрузки (Load Balancer as a Service),

    Можете подробнее описать? Столкнулись с тем, что по факту LA( haproxy) есть, но:
    1. Не умеет ha между neutron-ами.
    2. функционал сильно упрощен. Например нельзя два сервиса повешать на 1 ip, что критично в случае http + https


    1. artemii
      01.04.2016 11:35

      Действительно, текущая референсная реализация LBaaS не лишена вышеназванных недостатков, и, пожалуй, главным из них является отсутствие HA реализации. OpenStack Предоставляет стандартизированное API для доступа к подобной услуге. Как вариант в качестве низкоуровневой реализации можно использовать не референсные (haproxy или Octavia), а промышленные балансировщики типа F5. Это без труда можно нагуглить в Интернете.


  1. vsarakoff
    31.03.2016 03:38

    Спасибо за статью! На выходных думал мигрировать свою домашнюю лабу с ESXi на OpenStack, но как-то не очень удалось. С точки зрения интуитивности интерфейса продукт от VMWare, на мой взгляд, значительно впереди.


    1. artemii
      01.04.2016 11:40

      Тут просто дело привычки и вопроса личных предпочтений. Мои домашние лабы уже давно были мигрированы с ovirt на RDO OpenStack Liberty. В рамках внутреннего проекта компании по миграции большей части сред тестирования с VMware на OpenStack мы для себя поняли, что пользователи достаточно быстро адаптировались и спустя несколько месяцев уже могли свободно пользоваться всем функционалом среды. Нужно только захотеть и двинуть этот процесс, грамотно работая с пользователями создаваемой/созданной среды.