В России подавляющее большинство облачных инсталляций работают на VMware, однако все больше компаний присматриваются к OpenStack. Один из ярких примеров — провайдер «Инферит Облако». В материале расскажем, что находится у его инфраструктуры «под капотом» и почему компания сделала выбор в пользу OpenStack.
Почему OpenStack, а не VMware
Выбор в пользу конкретного решения — это зачастую вопрос визионерский. Оба продукта обладают своими сильными сторонами и подходят для разных сценариев создания облака. Однако существенные отличия есть.
VMware — коммерческий продукт со всеми вытекающими. Он может похвастаться поддержкой и широким набором интегрированных продуктов. Однако, VMware ограничен своей проприетарной природой, и не стоит забывать про лицензионные отчисления.
Перед «Инферит Облако» стояла задача создать импортонезависимое решение, а для этого лучше подходит продукт с открытым исходным кодом — OpenStack. Также он обладает большей гибкостью и возможностями настройки, что позволяет адаптировать среду под конкретные требования. OpenStack поддерживается большим и активным сообществом. Это означает, что решение выигрывает от постоянных инноваций, прозрачности и коллективного опыта.
Есть множество интересных кейсов, показывающие гибкость OpenStack и его возможности справляться с большими нагрузками. Сразу можно вспомнить:
- Европейский Центр ядерных исследований (CERN) — более 500 тыс. ядер и 1.5 Пбайт RAM. 90% инфраструктуры на базе OpenStack;
- Blizzard Entertainment — более 12 тыс. вычислительных хостов и несколько облаков на базе OpenStack;
- Walmart частное облако — более 800 тыс. ядер;
- Bloomberg — более 3 тыс. виртуальных серверов в OS облаке;
- China mobile — более 50 тыс. серверов в OS облаке;
- Nike — более 56 млн посещений сайта в день, хостинг на базе OS;
- Deutsche telecom — одно из крупнейших публичных облаков в мире на базе OS.
В ИТ-сообществе еще встречается убеждение, что развертывание OpenStack — это крайне трудоемкий процесс, который сопряжен с риском критических ошибок. На деле уже давно используются специальные компоненты, которые значительно упрощают развертывание. Далее поговорим и о них.
VMware предлагает проверенное и понятное решение с сильной поддержкой со стороны вендора. А OpenStack — более гибкий и масштабируемый. Если нужно создать независимую облачную среду, то OpenStack — подходящий вариант.
Быстрый взгляд на серверную часть
Для облачных провайдеров критический момент — управление ресурсами. Чтобы оно было эффективно, применяется принцип Compute & Storage — разделение ресурсов инфраструктуры под вычисление и хранение соответственно. Если проигнорировать этот принцип, сложность управления ресурсами и среды вырастет на несколько порядков.
Compute (вычисления):
- CPU — Intel Xeon Gold 6226R, 2.9 Ghz;
- RAM — Samsung RDIMM DDR4 3200 MHz;
- NET — Mellanox X-4(5);
- SSDs only;
- Compute — Leaf — 25×4 Gbps.
Storage (хранение):
- Tier 1 — Samsung DC class;
CEPH node -> Leaf — 25×4 Gbps; - Tier 2 — Samsung DC class high-iops;
CEPH node -> Leaf — 25×4 Gbps; - Tier 3 — Samsung NVMe (релиз скоро);
CEPH node -> Leaf — 40×4 Gbps.
Техническая составляющая полностью построена на серверах компании «Инферит техника». Принцип импортонезависимости работает и здесь.
Теперь посмотрим чуть глубже.
Вычислительная часть работает на OpenStack Zed. Подробнее его компоненты рассмотрим в следующем разделе, пока выделим три ключевых преимущества относительно предыдущих версий продукта:
- Обновленные версии компонентов. Наиболее стабильные версии основных модулей, из которых и состоит OpenStack. Это Nova, Neutron, Cinder, Glance и другие.
- Доведенный до ума модуль управления жизненным циклом.
- Оптимизация всех ключевых компонентов, в первую очередь с точки зрения устойчивости.
Хранилищем выступает Ceph — максимально гибкий инструмент, не требующий установки специальных драйверов. Все работает на уровне ядра Linux.
Ceph объединяет объектное, блочное и файловое хранилища в единую систему, что делает ее универсальной для различных нужд хранения данных. Архитектура Ceph обеспечивает высокую доступность и избыточность данных за счет репликации данных на нескольких узлах хранения, а также использует алгоритмы для эффективного управления распределением и восстановлением данных.
Связка OpenStack и Ceph создает надежный фундамент для создания облачной инфраструктуры. Опыт российских и зарубежных компаний подтверждает потенциал такой синергии.
Посмотрите фотографии с производства серверов и другого оборудования на заводе «Инферит». На этом «железе» работает и наше облако.
Внутри конфигурации OpenStack
Как программное обеспечение OpenStack состоит из набора микросервисов, которые могут быть объединены в различные конфигурации в зависимости от реальных потребностей.
Общая карта компонентов OpenStack выглядит так:
Основные компоненты расположились в центре, это цветные изображения. Без них OpenStack работать просто не будет. Без Neutron не будет сетевого взаимодействия, а если сломается Nova, то и виртуальные машины не смогут подняться. Компоненты серого цвета уже не так важны.
В случае «Инферит Облако» карта OpenStack становится такой:
Посмотрим, зачем нужен каждый компонент.
1. Web frontend (фронтенд) — Horizon. Внешняя оболочка OpenStack, которая отвечает за пользовательский интерфейс. С точки зрения клиента это просто веб-портал. Они входят в него в браузере и управляют ресурсами облака.
Для удобства мы используем кастомизированный интерфейс. В этом отношении Horizon очень гибкий инструмент.
2. Compute — Nova. Управляет жизненным циклом инстансов, включая создание, планирование и завершение работы виртуальных машин.
Вместо распространенного инструмента Zun используем компонент OpenStack Magnum и решение от российского вендора Флант. Они нужны для автоматизации управления Kubernetes-кластерами и во всем лучше Zun.
3. Storage (хранилище) — Cinder. Служба блочного хранения OpenStack для предоставления томов виртуальным машинам, хостам, контейнерам и другим компонентам. Идеально подходит для приложений, требующих постоянного хранения данных с низкой задержкой, таких как базы данных и файловые системы.
Что важнее, Cinder интегрируется с библиотеками Ceph. Такая интеграция создает высокопроизводительное блочное хранилище, подходящее для приложений с интенсивным вводом-выводом.
Также в OpenStack есть объектное хранилище Swift и хранилище с общей файловой системой Manila. На данном этапе в них нет необходимости.
4. Networking (сеть). Используем несколько компонентов.
— Neutron. Программно-определяемая сеть (SDN) — все подключения происходят на программном уровне, никаких проводов не нужно.
Neutron нужен для динамического создания, управления и эксплуатации сетевых соединений в средах OpenStack. Компонент позволяет определять и управлять сетевыми топологиями, включая сети, подсети, маршрутизаторы и группы безопасности, с помощью богатого набора API. Neutron — важнейший элемент для эффективной и изолированной сети виртуальных машин и других ресурсов в облаке OpenStack.
— Octavia. Балансировщик нагрузки, способствует распределению входящего сетевого трафика между несколькими внутренними серверами для обеспечения высокой доступности, надежности и масштабируемости приложений. Также компонент нужен для работы с Kubernetes-кластерами.
5. Shared Services (сервисы безопасности).
— Keystone. Служба идентификации. Управляет аутентификацией и авторизацией. Предоставляет центральный каталог пользователей, сопоставленный с сервисами OpenStack, к которым они могут получить доступ, обеспечивая безопасный и контролируемый доступ к ресурсам.
— Glance. Управление образами. Компонент, созданный для управления образами виртуальных систем, которые хранятся внутри облака.
— Barbican. Управление ключами. Хранит ключи, пароли, сертификаты и другую конфиденциальную информацию. Шифрование, токенизация и хэш-суммы — все важнейшие процессы происходят здесь.
6. OpenStack operations.
— Ceilometer. Инструмент мониторинга. Собирает массивы данных в облаке и отправляет в специальный коллектор. Если проще, этот компонент делает возможным аренду облачных ресурсов с оплатой только за реальное потребление (Pay-as-you-go).
— Tempest и Rally. Компоненты тестирования. Позволяют тестировать различные компоненты облака. Кстати, наши графики по работе инфраструктуры находятся в открытом доступе.
7. Lifecycle management (управление жизненным циклом). Последнее по списку, но не по значению. Здесь находятся компоненты, которые отвечают за управление и развертыванию OpenStack.
Достаточно давно разработчики пришли к мнению — разворачивать OpenStack трудно и долго. Также ручной труд подразумевает гигантскую вероятность ошибки. Поэтому для управления жизненным циклом используют специальные инструменты. Наиболее распространенные — это Kolla-ansible и Kayobe. Мы остановились на первом варианте.
Архитектура OpenStack полностью построена на микросервисной архитектуре, никакого монолита нет и в помине. Это дает облаку массу преимуществ, одно из основных — это гибкость. Мы можем вносить изменения практически любого масштаба без приостановки работы.
Если пока путаете модели и различия облачных решений, прочитайте наш основательный разбор. Доступным языком объяснили зачем нужны IaaS, HaaS, PaaS, Dedicated и BaaS. Это не так страшно, как кажется
Подходы к развертыванию, созданию сети и безопасности
Чтобы развертывание и управление комплексной облачной инфраструктурой OpenStack работало как часы, нужны специальные инструменты. В «Инферит Облако» используют сочетание Kolla-Ansible и Cephadm.
Kolla-Ansible незаменим для упрощения развертывания компонентов OpenStack и управления ими. Он использует Ansible playbooks и контейнеры Docker для автоматизации. Так провайдер обеспечивает согласованность, повторяемость и простоту настройки развертываний.
Благодаря контейнеризации сервисов OpenStack, Kolla-Ansible изолирует их от базовой хост-системы, что повышает безопасность и упрощает управление зависимостями.
Cephadm имеет решающее значение в управлении серверной частью хранилища. Это масштабируемое и устойчивое решение для хранения данных, которое хорошо интегрируется с такими сервисами как Cinder, Glance и Manila. Развертывание кластеров Ceph и управление ими вручную может быть сложной задачей, но Cephadm автоматизирует этот процесс, делая его более доступным и управляемым.
С точки зрения архитектуры сетевая инфраструктура представляет собой классическую Clos fabric (Ethernet fabric), известное также, как Leaf-Spine architecture. Технология была предложена Чарльзом Клозом в 50-х годах прошлого века для построения масштабируемых телефонных сетей. Эти принципы весьма популярны в современных центрах обработки данных. Сети Клоза отличается высокой надежностью, масштабируемостью и отказоустойчивостью.
Другая важная часть — безопасность облака. Архитектура OpenStack позволяет внедрить практически любой инструмент, отвечающий за защиту инфраструктуры.
На момент написания статьи в «Инферит Облако» применяют такие практики:
- В облаке, по умолчанию, функционирует anti-DDoS, anti-Bot защита;
- Правила фильтрации трафика настроены на решении PT Application Firewall;
- Все префиксы, в том числе и клиентские, защищены и не требуют дополнительной платы;
- Вход в Облако, по умолчанию, защищен вторым фактором аутентификации. В целях безопасности его нельзя отключить;
- Трафик фильтруется и обрабатывается на узлах очистки, расположенных в России;
Кроме сетевой защиты клиентам «Инферит Облако» доступны средства резервного копирования. При всей надежности OpenStack никто не застрахован от сбоев на уровне оборудования, виртуальных машин и операционной системы. Также не стоит забывать о человеческом факторе. У компаний должен быть инструмент, позволяющий восстановить приложение быстро и без потерь данных.
Сегодня в OpenStack практически не осталось ручного труда. Есть надежные инструменты, которые помогают в развертывании компонентов. Также с конфигурацией комфортно работать при построении мер сетевой безопасности.
Что может облако на OpenStack
У OpenStack практически безграничный потенциал в части кастомизации, но какие возможности это открывает для бизнеса? Разберем возможности открытого ПО на примере относительно молодого провайдера «Инферит Облако». Уже сейчас услуги закрывают ключевые потребности бизнес-сообщества в части ИТ:
- Облачные вычислительные ресурсы и системы хранения данных (Compute & Storage);
- Виртуальные дата-центры (VDC) и выделенные физические серверы (Dedicated);
- Сетевые сервисы (балансировка нагрузки, виртуальные сети, VPN, DNS);
- Резервное копирование и сервисы катастрофоустойчивости (Backup & Disaster Recovery);
- Защита от DDoS-атак и веб-атак (WAF);
- Мониторинг ИТ-инфраструктуры и приложений заказчиков;
- Инструменты для переноса ИТ-нагрузок в облако (Migration);
- Маркетплейс бизнес-приложений по модели SaaS.
Помимо базовых IaaS-услуг, «Инферит Облако» готовит к выпуску целый ряд PaaS-сервисов и отраслевых решений:
- Контейнерная платформа для микросервисной разработки приложений;
- Сервисы больших данных (Big Data) и инструменты бизнес-аналитики (BI);
- Платформы для организации удаленной работы и коммуникаций (VDI, VoIP, UC);
- Специализированные решения для рынков ритейла, промышленности, логистики, финансов, медиа и др.
Выбор в пользу OpenStack позволил создать гибкую платформу, которая не зависит от иностранных вендоров и может быстро меняться под технологические и бизнес-потребности российского рынка.
Главное про облако на Open Source
1. OpenStack — гибкое решение, которое не зависит от санкций. Также оно позволяет создать сильную облачную инфраструктуру для самых сложных задач.
2. Облака на OpenStack пока не сильно распространены в России. Однако в США и европейских странах все чаще применяется OpenStack в высоконагруженных конфигурациях.
3. Принцип разделения Compute & Storage делает инфраструктуру долговечной и эффективной с точки зрения использования ресурсов.
4. Облака на OpenStack строятся из наборов микросервисов. Поэтому каждая конфигурация действительно уникальна. Более того — она может быть перестроена под конкретные задачи вендора и его клиентов.
5. Принято считать, что OpenStack развертываются вручную и много времени уходит на исправление ошибок. На деле есть класс инструментов, которые помогают в развертывании OpenStack и его отдельных компонентов.