Экономичность, гибкость и адаптивность облаков сегодня уже вполне осознаны в корпоративной среде, однако, чтобы использовать все возможности облачных технологий, требуется знакомство с соответствующими лучшими практиками, базовыми технологиями и ограничениями.
Концепции облаков уже полвека — еще в 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. Характеристики облачных провайдеров |
Выбор оптимального оператора следует производить с точки зрения соотношения стоимость/производительность. При сравнении надо также учитывать, гарантируются ли требуемый уровень производительности, время запуска, скорость масштабирования и задержка передачи данных. На выбор может повлиять местонахождение ЦОД — провайдер должен соблюдать законы о приватности данных и корпоративные правила, действующие у заказчика. Эти ограничения могут варьироваться в зависимости от страны и компании. Иногда требуется хранить все данные в одной юрисдикции. Для американских компаний, работающих в других регионах, может понадобиться выполнение принципа 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. Основные решения, используемые для создания частных облаков |
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 применяют соответствующие облачные решения.
Литература
- M. Vouk. Cloud Computing — Issues, Research and Implementations // J. Computing and Information Technology. — 2008. Vol. 16, N 4. — P. 235–246.
- P. Mell, T. Grance. The NIST Definition of Cloud Computing. US Nat’l Inst. of Standards and Technology, 2011.
- 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) — сотрудники Университета Наварры (Испания).