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

Концепции облаков уже полвека — еще в 1957 году Джон Маккарти предложил идею выделения машинного времени как коммунальной услуги [1]. С тех пор название концепции несколько раз менялось, приобретая различные нюансы: сервисное бюро, провайдер сервисов приложений, Интернет в виде сервиса, облака, программно-конфигурируемый центр обработки данных. Но основная идея остается неизменной — предоставление ИТ-сервисов через Сеть. Наибольшее распространение получило определение, предложенное Национальным институтом стандартов и технологий (NIST): «Облачные вычисления — это модель, обеспечивающая повсеместный, удобный сетевой доступ по требованию к совместно используемому пулу вычислительных ресурсов — сетей, серверов, пространства хранения, приложений и сервисов, которые можно быстро резервировать и высвобождать при минимуме затрат на управление и взаимодействие с провайдером» [2]. Сегодня провайдеры применяют три основные модели (см. рисунок): IaaS (Infrastructure as a Service — «инфраструктура в виде сервиса»), PaaS (Platform as a Service — «платформа в виде сервиса») и SaaS (Software as a Service — «программное обеспечение в виде сервиса»). Существует также деление по схеме развертывания облачных сервисов: в публичном облаке инфраструктура предоставляется любым заказчикам, частным облаком распоряжается только одна организация, а в случае гибридного — предприятие пользуется одновременно частным и публичным облаками. Чтобы выбрать наиболее подходящую модель для своей организации, нужно проанализировать имеющуюся ИТ-инфраструктуру, ее использование и потребности. Помогут в этом знания о нынешней расстановке сил в мире облаков.

Три вида облаков.
Три вида облаков.

 

Лучшие практики перехода в облако

При планировании перехода на любую новую архитектурную парадигму важно учесть ее характеристики. Чтобы выбрать провайдера облачного сервиса, надо разобраться с требованиями и составить перечень необходимых функций. Приведем ряд рекомендаций, которые помогут при осуществлении миграции в облако [3].

Эластичная архитектура

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

Проектируйте с расчетом на сбои

У высокой масштабируемости есть свои ограничения — при переходе на IaaS снижается устойчивость систем, поскольку оборудование заменяется несколькими уровнями ПО, что увеличивает сложность и добавляет возможные точки сбоя. Поэтому основными задачами проектирования становятся обеспечение дублирования и отказоустойчивости. Для непрерывности бизнеса, помимо внедрения продуманной стратегии резервного копирования, нужно позаботиться о том, чтобы система была готова к перезапускам, при этом обязательно нужно предусмотреть автоматизацию процедуры развертывания, для чего, в частности, потребуются сценарии конфигурирования и создания серверов. Такая автоматизация потребует и освоения новых практик, таких как DevOps, непрерывная интеграция, разработка, ориентированная на тесты, и т. д., а также применения инструментов вроде Chef, Puppet или Ansible.

Высокая готовность

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

Важно также, чтобы провайдер позволял размещать виртуальные серверы в разных географических зонах или как минимум в разных ЦОД, это сделает вашу систему более надежной. В апреле 2011 года системы Amazon Web Services в течение четырех суток работали с периодическими сбоями, а разнесение узлов кластера по регионам и ЦОД могло бы повысить устойчивость ресурсов.

Производительность

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

 

Узкие места могут возникать по причине задержек передачи по сети, причем даже между экземплярами, работающими в одном ЦОД, поэтому провайдеры облаков предлагают средства для борьбы с этим (к примеру, AWS предоставляет возможность логической группировки экземпляров, placement groups). Но если в инфраструктуре заказчика есть серверы, работающие в разных региональных ЦОД, то стоит пользоваться другими методами, например кэшированием.

Безопасность

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

Мониторинг

Простота развертывания новых ресурсов в облаке позволяет быстро наращивать количество серверов, однако с ростом их числа возникают трудности администрирования, в преодолении которых важную роль играют инструменты мониторинга, участвующие в автоматическом масштабировании, осуществляемом периодически и по наступлении определенных событий. Они также входят в состав систем, обеспечивающих надежность архитектуры; примером может служить сервис Netflix Chaos Monkey, автоматически тестирующий облако Amazon на устойчивость. Кроме того, средства мониторинга помогают при обнаружении брешей безопасности и проведении судебной экспертизы.

Публичные облака

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

Таблица 1. Характеристики облачных провайдеров
Таблица 1. Характеристики облачных провайдеров

 

Выбор оптимального оператора следует производить с точки зрения соотношения стоимость/производительность. При сравнении надо также учитывать, гарантируются ли требуемый уровень производительности, время запуска, скорость масштабирования и задержка передачи данных. На выбор может повлиять местонахождение ЦОД — провайдер должен соблюдать законы о приватности данных и корпоративные правила, действующие у заказчика. Эти ограничения могут варьироваться в зависимости от страны и компании. Иногда требуется хранить все данные в одной юрисдикции. Для американских компаний, работающих в других регионах, может понадобиться выполнение принципа Safe Harbor, согласно которому необходимо подчиняться европейским законам.

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

Провайдеры

Перечислим крупнейших провайдеров.

Amazon. Облако AWS сохраняет господствующее положение благодаря тому, что в 2006 году Amazon первой предложила соответствующие сервисы. У AWS удобная ценовая политика. Схема с оплатой по мере использования позволяет менять объем потребляемых ресурсов без больших затрат. AWS предлагает дополнительные инфраструктурные сервисы и встроенные средства мониторинга. Это облако особенно хорошо подходит стартапам и проектам скорой (agile) разработки, которым нужны сервисы вычислений и хранения, отличающиеся высоким быстродействием и малой стоимостью. AWS — провайдер общего профиля, и с ним можно хорошо и удобно работать при эксплуатации облака в нормальном режиме, однако могут быть риски при возникновении проблем. Полноценная техническая поддержка предоставляется за отдельную плату, тогда как у большинства конкурентов AWS это стандартная часть договора.

Microsoft Azure. Microsoft вышла на рынок IaaS с облаком Azure в феврале 2010 года. Azure предлагает сервисы вычислений и хранения подобно другим провайдерам IaaS и предоставляет полный контроль над виртуальными машинами. Пользовательский интерфейс Azure прост в использовании, особенно для администраторов Windows-серверов. Но поскольку Azure — более новая разработка, чем облака Amazon и Rackspace, многие особенности этой платформы все еще доступны только в ознакомительном режиме. Кроме того, на Azure могут быть недоработки в области сетевых технологий и безопасности.

Rackspace. Компания Rackspace — основатель проекта OpenStack и крупный игрок в сегменте облачных инфраструктурных сервисов, созданных на платформе с открытым кодом. Ее ЦОД пользуются более половины участников Fortune 500, но при этом облако компании хорошо подходит для предприятий малого и среднего бизнеса. Rackspace предлагает недорогое, простое в использовании облако с предоставляемыми за отдельную плату сервисами и удобной панелью управления. Сервис подходит для малых предприятий, которым гарантируется полноценная поддержка, однако тарифных планов немного — предлагается только подписка с ежемесячной оплатой. Кроме того, отсутствуют специализированные сервисы.

Google. Компания первой предложила облачную платформу в виде сервиса — AppEngine, но ее инфраструктурный сервис Google Compute Engine появился позже. Однако так как у Google огромное количество физических серверов и развернута глобальная инфраструктура, это хороший кандидат. Google Compute Engine хорошо интегрирован с другими сервисами компании, такими как Google Cloud SQL и Google Cloud Storage. Сервис Google Compute Engine хорошо подходит для хранилищ данных, суперкомпьютерных задач, аналитической обработки Больших Данных и т. п. Главный его недостаток — в отсутствии встроенных административных возможностей: пользователям приходится загружать дополнительные пакеты.

HP. Компания относительно недавно вступила в игру IaaS, введя в конце 2012 года общедоступное облако HP Cloud Compute, созданное на базе OpenStack. Это хороший кандидат благодаря крепким позициям компании на серверном рынке. HP предлагает общедоступные, гибридные и частные облака. HP Cloud Compute — хорошее решение для организаций, которые хотят интегрировать существующую ИТ-инфраструктуру с общедоступными облачными сервисами и создать гибридное облако.

 

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

Возможные трудности

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

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

Обеим группам заказчиков приходится иметь дело с проблемами безопасности, соответствия нормативным требованиям и управления множественными облаками. Что касается первых двух классов проблем, они могут возникать в связи с использованием многоарендной архитектуры. Какие-то из этих проблем, возможно, преодолеть не удастся, что может склонить чащу весов к частному или гибридному облаку. Такое решение разумно, особенно если налицо сложности с управлением группой облаков.

Частные и гибридные облака

От проблем,  характерных  для общедоступных облаков, нередко можно избавиться в частных облаках, которые могут размещаться непосредственно в ЦОД самой организации или на серверной ферме внешнего провайдера. Обычно частное облако виртуализовано, но возможны и другие варианты — важно, что работать с ним может только данная организация. В табл. 2 показаны основные решения, применяемые для создания частных облаков.

Таблица 2. Основные решения, используемые для создания частных облаков
Таблица 2. Основные решения, используемые для создания частных облаков

 

Eucalyptus

Eucalyptus выпустила свой первый продукт в 2008 году, и сегодня ПО компании развивается в открытых кодах, а сама она предлагает сервисы и недавно была приобретена HP. Непосредственно из раздела загрузок на сайте Eucalyptus можно установить частное облако на свой компьютер, а в разделе продуктов можно зарезервировать серверы для него. Главное преимущество ПО Eucalyptus — совместимость с AWS, поэтому ряд функций, которые AWS предоставляет в своем общедоступном облаке, поддерживаются и сервисами Eucalyptus.

Слабое место Eucalyptus — ограниченный графический интерфейс. Кроме того, вызывает некоторое  опасение  стратегия AWS по отношению к частным облакам, предполагающая, что Amazon Virtual Private Cloud является изолированной частью общедоступного облака, соединение с которой происходит по VPN.

OpenStack

Главное преимущество OpenStack — поддержка со стороны таких компаний, как AT&T, AMD, Cisco, Dell, HP, IBM, Intel, NEC, Red Hat, VMware и Yahoo.  Облако на платформе  OpenStack отличается высоким уровнем сложности и состоит из множества компонентов, каждый со своим интерфейсом командной строки. Однако оппоненты заявляют, что это не завершенный продукт, а скорее технология, и это может стать барьером для компаний, не имеющих опыта и подготовленных технических специалистов. Но для провайдеров общедоступных и частных облаков, которые являются главными пользователями OpenStack, продукт с открытым кодом привлекателен, поскольку, как и в случае с ОС Linux, он дает преимущества с точки зрения экономии затрат и возможности переноса. Последнее особенно важно, поскольку пользователи сегодня не хотят быть привязанными к определенному провайдеру. Тем не менее возможность переноса сервисов может создать трудности для провайдеров, желающих одновременно предлагать какие-то проприетарные особенности своих сервисов.

CloudStack

Компания Citrix купила CloudStack у компании Cloud.com и передала ассоциации Apache Software Foundation, которая после помещения платформы в свой инкубатор преобразовала ее в проект с открытым кодом. CloudStack, в отличие от OpenStack, имеет полноценный графический интерфейс и монолитную архитектуру, что упрощает установку продукта и управление им. Как и в случае с OpenStack, большинство пользователей этой платформы — сервис-провайдеры. CloudStack обеспечивает совместимость с AWS с помощью транслятора API.

Проприетарные решения

Компании VMware и Microsoft неустанно подчеркивают гибридный характер своих продуктов, предлагая решения для общедоступных и частных облаков с выделенными серверами. Среди разработок Vmware можно отметить vCloud Hybrid Service, vCloud Connector и систему виртуализации vSphere. У Microsoft в ассортименте: Azure, Windows Server и Microsoft System Center. Обе компании предлагают интегрированные решения, созданные на основе их собственных продуктов, за что приходится платить отсутствием возможности переноса.

***

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

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

Что касается переноса унаследованных систем, то нецелесообразно проводить рефакторизацию приложений в целях их разъединения — применение целиком облачной архитектуры будет невозможно, и придется перенести лишь часть функционала. Приоритет здесь следует отдать отказоустойчивости и надежности виртуальных экземпляров. Другие сценарии, например аварийное восстановление или обращение к облачным ресурсам при скачках нагрузки, потребуют применения специализированных технологий. Если приложение новое и важна независимость от провайдера, стоит отдать предпочтение оператору, работающему на платформе OpenStack. Если происходит перенос унаследованной системы и имеется опыт работы с продуктами VMware, можно выбрать решения этой компании и для облака. Если предвидятся резкие скачки нагрузки в инфраструктуре на основе Windows Server, можно попробовать решение Microsoft.

Выбор широк, и разные заказчики имеют возможность предпочесть различные платформы. К примеру, сервис-провайдеры HP и Rackspace, консалтинговая компания Cybercom и eBay пользуются OpenStack, а постоянные клиенты VMware и Microsoft применяют соответствующие облачные решения.

Литература

  1. M. Vouk. Cloud Computing — Issues, Research and Implementations // J. Computing and Information Technology. — 2008. Vol. 16, N 4. — P. 235–246.
  2. P. Mell, T. Grance. The NIST Definition of Cloud Computing. US Nat’l Inst. of Standards and Technology, 2011.
  3. F. Fehling, F. Leymann, R. Retter. Your Coffee Shop Uses Cloud Computing // IEEE Internet Computing. — 2014. Vol. 18, N 5. — P. 52–59.

Николя Серрано, Хосуне Эрнантес, Горка Галлардо ({nserrano, jhernantes, ggallardo}@tecnun.es) — сотрудники Университета Наварры (Испания).

Nicolas Serrano, Gorka Gallardo, Josune Hernantes, Infrastructure as a Service and Cloud Technologies. IEEE Software, March/April 2015, IEEE Computer Society. All rights reserved. Reprinted with permission.