VMware и Openstack — две платформы, между которыми обычно выбирают, когда хотят развернуть виртуальную инфраструктуру.

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

Как устроены VMware и OpenStack и почему на самом деле нельзя их сравнивать

В интернете часто сравнивают VMware и Openstack «в лоб». На самом деле делать так не совсем корректно — ведь это не просто два продукта, а принципиально разные инструменты со своими особенностями и функциями. Разберем особенности каждой платформы и посмотрим, что на самом деле мы сравниваем.

Что такое VMware и как она развивалась

Что такое VMware. Это не одна платформа, а вендор с несколькими продуктами. У компании много продуктов, среди которых есть VMware vSphere — платформа для виртуализации. VMware создали эту платформу, в том числе лежащий под ней гипервизор ESX, чтобы оптимизировать работу серверов: уплотнить нагрузку на них, использовать их ресурсы эффективнее, а следовательно, экономить, кроме того, получить дополнительную гибкость управления виртуальными машинами. В частности, быстрее выдавать ресурсы под новые проекты и легче масштабировать их под существующие. То есть VMware — это про серверы.

Что входит в платформу. В ее состав входят несколько основных компонентов и механизмов, например:

  1. Гипервизор VMware vSphere ESXi™. Именно он отвечает за саму виртуализацию, то есть позволяет использовать ресурсы железного сервера для создания виртуальных машин.
  2. Файловая система vSphere VMFS, которая предоставляет виртуальным машинам доступ к общим устройствам хранения.
  3. VMware vSphere vMotion для переноса работающих машин между серверами без простоев.
  4. VMware vCenter Server для управления виртуальной инфраструктурой и доступа к другим инструментам.

В зависимости от версии могут быть добавлены такие инструменты, как vRealize Operations для мониторинга виртуальных машин и инфраструктуры, программно-определяемое хранилище VMware vSAN, можно отдельно купить и добавить виртуализацию сетевых функций VMware NSX. Есть и много дополнительного софта, например, продукт для пребиллинга, позволяющий отправлять данные в CRM для расчета конкретных цен, или инструмент для бесплатной миграции Physical-to-Virtual.

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

Особенности. VMware vSphere задумывалась для виртуализации и работы с виртуальными машинами — для их создания, оптимизации и поддержки. Сейчас вендор пытается изменить такое представление, добавляя дополнительные сервисы для автоматизации. Не только те, которые мы видели выше: есть и такие компоненты, как vRealize Automation, по сути, являющийся основой реализации частного облака — он позволяет автоматизировать управление инфраструктурой. Однако этот инструмент дает только базовую функциональность. Если нужно реализовать что-то дополнительное, то дальше нужно дописывать код, чтобы получить желаемое поведение системы.

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

Так выглядит облачная инфраструктура, которую создает VMware vSphere: гипервизор стоит поверх железных серверов, ВМ — внутри гипервизора, а управляет всем VMware vCenter Server. При этом управляющий сервер также установлен на виртуальной машине, не используется контейнеризация, что не позволяет получить активную балансировку нагрузки и другие преимущества подобной реализации

VMware долгое время считалась эталоном платформы виртуализации, пока большие провайдеры облачных услуг не стали создавать платформы, ориентированные больше на разработчиков, чем на администраторов. То есть не только предлагать больше инструментов для Self-Service на базе IaaS, но и реализовывать решения, закрывающие большинство типовых задач по разработке, часто сокращая объем кода, который нужно писать для реализации бизнес-логики.

При этом облачные платформы нового типа позволяют разработчикам использовать ресурсы без привлечения администраторов, что разгружает последних для других задач. Современный рынок стал диктовать новые требования, VMware перестала им соответствовать и теперь только пытается догнать новые тренды и закрыть потребности пользователей. Зато появились новые платформы, в том числе и Open Source, позволяющие на 100% закрыть задачи разработки.

Что такое OpenStack и из каких компонентов состоит эта платформа

OpenStack. Это модульная платформа, основное предназначение которой — автоматизация рутинных задач системного администрирования на всех уровнях ИТ-среды.

OpenStack начал развиваться после успеха AWS, сервисы которого долгое время доминировали на рынке. Было очевидно, что предпочтения пользователей сдвигаются в сторону платформ, обеспечивающих богатый инструментарий для разработки, предоставляющих широкие возможности для автоматизации построения IT-систем, а также поддержания их высокой производительности и надежности. Именно такой платформой и стал OpenStack: решение позволяет реализовать Cloud Native-подход к разработке и Self-Service в управлении инфраструктурой. То есть OpenStack — это платформа для разработки и инструмент для качественного предоставления сервиса конечным пользователям платформы виртуализации.

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

  • контроллер вычислительных ресурсов Nova, передающий команды лежащему под ней гипервизору и управляющий виртуальными машинами;
  • сервис подключения к сети Neutron, может работать с любой программно-определяемой сетью, если есть драйвер под OpenStack Neutron либо возможность его самостоятельно написать;
  • файловое хранилище Swift, которое может быть заменено другим решением. Например, под платформой Mail.ru Cloud Solutions лежит доработанный OpenStack и вместо Swift используется собственная разработка;
  • служба работы с блочными хранилищами Cinder, под ним может лежать Ceph или любая классическая система хранения данных, также при условии наличия реализованного под Cinder драйвера;
  • библиотека образов ВМ Glance;
  • а также сервис идентификации, UI-интерфейс администрирования, оркестратор для управления виртуализацией, сбор данных для мониторинга, компонент для работы с контейнерами приложений, компонент для биллинга для точной тарификации использованных ресурсов и многое другое. Всего в OpenStack пара десятков основных компонентов для разных задач.

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

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

OpenStack не привязан к какому-то конкретному типу гипервизора — платформу можно поставить поверх любого решения.

Так может выглядеть устройство OpenStack c применением виртуализации через KVM

Чаще всего OpenStack по умолчанию используют с гипервизором KVM. В компоненте также реализована функциональность по управлению большим количеством гипервизоров. Их можно объединять в вычислительные кластеры и далее управлять ресурсами на более высоком уровне абстракции — OpenStack также называют облачной операционной системой. Это помогает создавать высокодоступные сервисы за счет избыточности ресурсов кластера и механизмов управления гипервизорами.

Механизмы, которые нужны для работы KVM, встроены в ядро Linux. Поэтому KVM обычно поставляется именно с этой ОС, и поэтому OpenStack хорошо поддерживает разное физическое оборудование, так как для него под Linux уже существуют драйверы.

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

Если использовать OpenStack с платформой виртуализации от VMware, данная функциональность перекладывается на vSphere, так как тут производитель предлагает свои проприетарные инструменты.

Так выглядит OpenStack, установленный над продуктом VMware vSphere с помощью его гипервизора

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

Так что мы сравниваем?

Получается, что, сравнивая VMware vSphere и OpenStack, мы сравниваем, по сути, два разных продукта:

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

Но можно поговорить об особенностях коробочного решения VMware vSphere и OpenStack на базе любого гипервизора, а также об их возможностях на практике.

Функции VMware: платформы для обычной виртуализации на собственном железе

VMware vSphere — готовый продукт, который можно купить у компании VMware. Платформа давно на рынке, зарекомендовала себя как стабильное и надежное решение для виртуализации серверов.

У него есть следующие особенности, которые иногда бывают преимуществом:

  1. Простая установка

    В VMware vSphere есть набор нужных инструментов для виртуализации. Систему просто развернуть, не нужно ничего дорабатывать и интегрировать. Благодаря этому с виртуализацией справится даже не очень опытный системный администратор.

  2. Хорошее решение для виртуализации

    VMware vSphere — один из первых продвинутых продуктов для виртуализации, сама платформа отлично работает и упростила жизнь многим администраторам.

  3. Ориентация на железо

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

  4. Выбор специалистов

    Так как это достаточно старое решение, на рынке много администраторов, которые умеют работать с платформой.

Недостатком VMware можно назвать неполное соответствие современным подходам Cloud Native. Они предполагают, что используются легко заменяемые в случае отказа Commodity-серверы. Механизмы надежности, которые идеально отработаны в VMware, в современном мире часто превращаются в минус. Дело в том, что обеспечивать надежность за счет инструментов платформы дорого, и здесь чем выше SLA, тем дороже разработка.

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

Cloud Native-подход снижает затраты на инфраструктуру, помогает не потерять в надежности и получить дополнительную гибкость. Также он позволяет избавиться от vendor lock-in: требования к приложениям у всех облачных провайдеров примерно одинаковы, переносить их из одного облака в другое проще, чем Legacy-приложения, под которые ориентирована VMware.

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

В интернете в качестве преимущества VMware перед OpenStack часто указывают качественную техподдержку. Но сейчас техподдержка есть у обоих продуктов — причем у обоих по платной подписке. При этом какие-то ошибки в самой платформе VMware исправить можно только через техподдержку. В случае с OpenStack можно проапдейтить платформу самостоятельно, если есть специалисты с опытом, и не ждать обновления с исправленным багом. Также в случае с OpenStack есть разные варианты технической поддержки в зависимости от конкретного решения — с разным уровнем сервиса и стоимостью. Кроме того, есть облачные провайдеры, предлагающие платформы на основе доработанного дистрибутива OpenStack с множеством сервисов и поддержкой 24/7.

OpenStack: облачная платформа, предназначенная для быстрой разработки

OpenStack — модульная система для построения частных и публичных облаков, в отличие от VMware здесь больше набор инструментов и есть возможности self-service. Для виртуализации можно выбрать и установить любой гипервизор.

У OpenStack есть следующие особенности:

  1. Лучше подходит для разработки

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

  2. Современный облачный подход к реализации инфраструктуры и размещению приложений

    Например, в облачной парадигме принята реализация отказоустойчивости на уровне приложения, а не на уровне инфраструктуры. Такой подход позволяет сэкономить, так как отказоустойчивость на уровне инфраструктуры обходится дороже. О причине мы говорили выше: надо придумывать механизмы, которые позволят прозрачно резервировать ресурсы приложений и открывать к ним доступ. Эти механизмы вносят дополнительные накладки, в том числе на обработку данных, при этом не гарантируют 100% бесперебойной работы систем, так как нет возможности полноценно мониторить работу приложения и видеть причину сбоев. Реализация отказоустойчивости на уровне приложения не только выгоднее, но и делает приложение независимым от инфраструктурных сбоев и ошибок администратора. OpenStack как инфраструктурная платформа хорошо подходит именно для современных Cloud Native-приложений.

  3. Проще настроить под свои нужды инфраструктуру за счет модульности платформы и Open Source-компонентов

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

  4. Нет лицензии

    OpenStack — бесплатная платформа. Чтобы ее устанавливать, использовать и дорабатывать, не нужно ничего платить. Это поможет сэкономить деньги на лицензиях, так как продукты VMware платные.

  5. Экономия на разработке за счет Self-Service

    Сокращаются расходы на администрирование самой платформы и уже отданных разработчикам ресурсов. За счет Self-Service сокращается время разработки. Облачные провайдеры с платформами на базе OpenStack предлагают большое количество платформенных сервисов и готовых шаблонов популярных инструментов для разработки в маркетплейсе. Это дополнительно сокращает Time-to-Market, экономит средства на выпуск IT-продуктов и позволяет обогнать конкурентов, не переключившихся на Cloud Native.

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

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

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

Альтернативный вариант — использовать частное облако облачного провайдера. Эксперты провайдера помогут развернуть платформу на ваших серверах и настроить ее. В этом случае вы получаете больше, чем обычный OpenStack: поставщики облачных решений под ключ кастомизируют платформу, исправляя недостатки ее модулей, добавляя к ним новые и собственные разработки. А также реализуют на ее основе платформенные управляемые сервисы, вроде того же Kubernetes aaS, который в Mail.ru Cloud Solutions сертифицирован CNCF, или облачных СУБД. Их также можно перенести на серверы клиента.

Также можно размещать приложения в публичном облаке, построенном на базе OpenStack. Так вы получите уже готовую инфраструктуру, на которой сможете быстро развернуть виртуальные серверы даже силами не самого опытного системного администратора, а также возможность в любой момент подключать нужные PaaS. Использование Kubernetes и контейнеров при этом снимает vendor-lock-in: и в облаке любого провайдера, и в On-premise можно использовать те же образы контейнеров, Helm-чарты и конфигурационные файлы. Это обеспечивает хорошую переносимость приложений между разными платформами.

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

Облако Mail.Ru Cloud Solutions построено на базе кастомизированной и доработанной платформы OpenStack. Мы поможем с реализацией частного облака, также вы можете развернуть свою облачную инфраструктуру на наших серверах. Даже если у себя вы использовали VMware, наши эксперты помогут с переездом на новую платформу. Доступна бесшовная миграция приложений, а также помощь в переходе на Cloud Native-архитектурную модель IT. Мы можем мигрировать в облако и приложение, написанное под традиционную инфраструктуру: часто рентабельнее перенести инфраструктуру максимально без изменений, а потом уже модифицировать архитектуру приложений.

Что выбрать: VMware или Openstack

VMware — неплохой выбор, если вы:

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

OpenStack — хороший выбор для компаний, которые плотно занимаются разработкой, для которых критически важно быстро выпускать качественные, современные и отказоустойчивые приложения. В этом случае модульность платформы и ее заточенность под Cloud Native-подход делают OpenStack самым выгодным выбором, несмотря на сложность настройки в On-premise. Кроме того, всегда можно воспользоваться помощью провайдера для построения частного облака или перенести сервисы в публичное облако. Публичное облако снимает головную боль по развертыванию и администрированию платформы, позволяет сократить расходы на содержание инфраструктуры и организацию отказоустойчивых IT-систем.