Рассмотрев разницу в дизайнерских подходах в традиционных системах и облачных платформах OpenStack, мы можем перейти к разнице в подходах построения приложений и надежной и высокодоступной инфраструктуры. OpenStack был создан для того, чтобы обеспечить массовый запуск сотен, тысяч и даже десятков тысяч однотипных (как правило) виртуальных серверов для хостинга приложений с собственными средствами обеспечения отказоустойчивости. Сама платформа не предлагает высокой доступности отдельно взятого виртуального сервера.
Многие пользователи традиционных систем часто принимают это как недостаток и незрелость платформы OpenStack. Тем не менее, это утверждение основано на недопонимании различных дизайнерских принципов унаследованных приложений и облачных вычислений.
Часть 2.
В чем разница подходов облака и традиционной инфраструктуры?
Если сравнить запущенные экземпляры виртуальных серверов с животными, то традиционные платформы обеспечивают принцип работы «домашний питомец», а OpenStack – подход «стадо» (иногда встречается термин «свиноферма»).
Каждый домашний питомец уникален: у него есть имя, свои повадки и характер. Кот Вася у соседа и ваша Мурка – это две совершенно разные кошки. Если ваш кот болеет – вы ведете его к ветеринару, вы его лечите, заботитесь о его состоянии, вы его кормите и ухаживаете за ним.
Напротив, все животные в стаде для вас выглядят одинаково. Вы кормите их одновременно, вакцинируете их всех разом. Если животное погибает, это плохо, но все же в стаде может вырасти другое, которое будет выполнять требуемую функцию. Сравнение подходов к виртуальной инфраструктуре отображено на картинке внизу:
Только поняв эту непривычную нам разницу в концепции и подходах, предлагаемой разработчиками и идеологами облачной платформы OpenStack, можно переходить к вопросам его практического применения.
Когда стоит задуматься о внедрении OpenStack?
Прежде чем приступить к внедрению очередной новой технологии (включая OpenStack) нужно определить экономическую целесообразность данного действия. Например, внедрять OpenStack для хостинга одного или двух десятков виртуальных серверов, скорее всего, нецелесообразно. Понимание необходимости сокращения стоимости инфраструктуры толкает многих заказчиков внедрять OpenStack для всех типов нагрузки, что неправильно и иногда приводит к негативным последствиям. Нужно точно и грамотно оценить все риски, и прежде всего ожидаемый тип нагрузки, для которого платформа внедряется. Существуют варианты построения недорогой платформы виртуализации на базе других открытых технологий. Благоприятными условиями использования платформы OpenStack, с точки зрения ICL Services являются:
хостинг серверов и приложений с коротким сроком жизни (часы, дни, недели);
облачный тип нагрузки используемых приложений;
хостинг некритичных виртуальных серверов и приложений;
частое развертывание однотипных серверов.
Все эти условия вытекают из специфики использования OpenStack и прежде всего отсутствия поддержки высокой доступности отдельно взятого виртуального сервера.
Некоторые коммерческие дистрибутивы OpenStack предлагают поддержку высокой доступности виртуальных серверов. Разумеется, круг использования таких дистрибутивов несколько шире, чем описано здесь.
Исходя из условий использования, мы можем предложить следующие сценарии эффективного применения решений на базе OpenStack:
* Разумеется, возможны и другие сценарии использования данного продукта.
ICL Services имеет богатый опыт в проектировании и внедрении решений любой сложности на базе Linux и Open Source технологий для зарубежных и российских заказчиков. Компанией было разработано и внедрено облачное решение для корпоративных клиентов – ICL Cloud, которое активно используется для внутренних нужд, а также для предоставления облачных сервисов собственной разработки.
Какой дистрибутив OpenStack выбрать?
Многие компании задаются вопросом: «Какой дистрибутив OpenStack следует использовать для построения частного облака?». Ответ на этот вопрос вытекает из задач, которые будут решаться данной платформой, а также накладываемых требований к надежности и SLA.
Существуют бесплатные и коммерческие сборки платформы OpenStack.
Свободные сборки OpenStack (Community OpenStack, RDO OpenStack) вполне могут быть использованы для изучения данной технологии, построения рабочих моделей, а также тестирования функциональности с целью определения пригодности продукта для тех или иных задач.
Свободные версии OpenStack привлекательны прежде всего тем, что они бесплатны (отсутствие платы за лицензии).
Именно на базе свободных версий OpenStack многие российские (в том числе крупные компании) сейчас предпочитают строить собственные облачные среды для тестирования и разработки ПО. Они легко воспроизводимы и при потере могут быть воссозданы заново без существенного ущерба для бизнеса. Но использование бесплатных версий OpenStack в Enterprise секторе весьма затруднительно ввиду больших рисков и отсутствия поддержки вендором.
Рост спроса на облачные решения и нежелание потерять долю рынка приводят к тому, что ведущие производители ПО создают собственные сборки OpenStack. Некоторые производители развивают определенные возможности OpenStack, что является их конкурентным преимуществом.
Краткий список продуктов доступен ниже:
Можно ли использовать OpenStack для управления ресурсами в VMware vSphere?
Свободные версии OpenStack, а также многие коммерческие дистрибутивы предлагают поддержку VMware vSphere. Это позволяет совместить всю надежность и функциональность решений VMware с гибкостью облачных технологий OpenStack. Кроме того, компания VMware предлагает VMware Integrated OpenStack, уже оптимизированный для интеграции с продуктами виртуализации vSphere.
Ограничения:
Интеграция поддерживается только с VMware vSphere
Требуется наличие лицензий на VMware NSX-MH
Какие компетенции нужны для внедрения и поддержки OpenStack?
Многие компании внедряют или собираются внедрять OpenStack собственными силами. Следует отметить, что внедрение и качественная поддержка OpenStack требует наличия высококвалифицированных специалистов с достаточно широким кругом компетенций. Это более ярко выражено при использовании свободных/бесплатных версий. Коммерческие дистрибутивы упрощают задачу из-за наличия средств автоматического развертывания, обновления и т.п.
Кроме того, OpenStack взаимодействует с большим количеством инфраструктурных ресурсов, что требует знаний в разных областях.
Ключевые компетенции для специалистов внедрения и поддержки:
Нужен OpenStack. Что дальше?
Некоторые тестовые инсталляции OpenStack могут быть внедрены средними и крупными компаниями самостоятельно при наличии высококвалифицированных Linux специалистов. Наша практика показывает, что подобного рода внедрения часто отпугивают потенциальных пользователей OpenStack из-за неправильных ожиданий, отсутствия экспертизы, а также
некачественно выполненного развертывания. Компании тратят очень много ресурсов и зачастую сдаются на половине пути, начиная рассматривать альтернативные варианты.
Промышленные внедрения, как правило, требуют привлечения компаний-экспертов, специализирующихся на облачных решениях, учитывая большое количество рисков и моментов, которые требуют акцентирования внимания, а также сложности межкомпонентных связей и внимания к мелочам. Привлечение экспертов позволяет существенно сократить сроки внедрения и уменьшить риски.
Платформа имеет богатый функционал и покрывает большую часть задач. Кроме того, доступно множество расширений OpenStack, решающих различные задачи. Но, рано или поздно, потребности многих клиентов выходят за рамки возможностей базовой платформы OpenStack. Открытый исходный код и модульная архитектура OpenStack позволяют расширять функциональность решения за счет разработки новых или изменения существующих модулей платформы.
У меня уже есть VMware vSphere и OpenStack. Куда двигаться дальше?
Наличие двух и более различных платформ виртуализации может быть неудобно. В тех случаях, когда требуется единый инструмент для управления различными провайдерами инфраструктуры (VMware, OpenStack, Amazon, Hyper-V) может потребоваться внедрение платформы управления гибридными облаком, что обеспечит пользователям единый доступ через одну консоль, а приложение будет запускать те или иные виртуальны серверы в требуемой платформе.