OpenQuality.ru

Качество программного обеспечения

Качество программного обеспечения: в главных ролях

Лента  Радар  Блог  Опыт  
Разум  Видео  Заметки  Эпизоды


Кому в облаках жить хорошо?

Добрый день.

Субъективное мнение о будущем облачных технологий по опыту работы с Eucalyptus, VMware vSphere и Microsoft Windows Azure.

 

Краткое вступление

В настоящий момент сервисы, предоставляемые по запросу (on demand), можно условно разбить на три группы:

1. Infrastructure-as-a-Service (IaaS)

Провайдер выделяет виртуальные машины с уникальными IP-адресами, хранилище данных и дополнительные сервисы (например, балансировщик нагрузки), облегчающие развертывание информационных систем. Самый яркий пример: Amazon EC2. В распоряжение пользователя предоставляются виртуальные машины с предустановленным программным обеспечением и требуемыми ресурсами, а также сервисы для работы с данными (SimpleDB, MapReduce, RDS), с помощью которых можно построить свою инфраструктуру. Подобную функциональность предлагает Eucalyptus, но при этом облако реализуется на вычислительных мощностях его владельца.

Еще один пример: решения VMware. Компоненты vSphere/vCenter позволяют динамически управлять нагрузкой на хосты и обеспечивать бесперебойную работу виртуальных машин (перенос и рестарт виртуальных машин на другом хосте в случае сбоя и даже создание “теневых” копий виртуальных машин, чтобы избежать простоев). Партнеры VMware предлагают технопарки, которые можно арендовать под свои нужды.

2. Platform-as-a-Service (PaaS)

Провайдер выделяет место для размещения пользовательских приложений + свой API. Типичный пример: Windows Azure, облачная OS от Microsoft. Разработчик получает интерфейсы и библиотеки Azure, на основе которых создает свою систему и размещает ее в датацентре Microsoft.

3. Software-as-a-Service (SaaS)

Провайдер предоставляет свое приложение. К примеру, Google Docs или Twitter. Пользователь приходит “на все готовое”, у сторонних разработчиков есть возможность создавать плагины.

 

Сильные и слабые стороны облачных вычислений

Главное достоинство облачных технологий: отличные возможности для масштабирования. Система растет, набирает популярность? Нужно больше “виртуальных сил”? Больше места для данных? Все просто. Новые ресурсы (workers в Azure, instances в EC2 и Eucalyptus, дисковое пространство) выделяются по запросу либо автоматически по достижении порога допустимой нагрузки или заполнения выделенного хранилища.

Другие достоинства облаков соседствуют с неочевидными тонкими звеньями. Вот несколько примеров:

1. У пользователя отпадает необходимость заботиться о размещении/сохранности приложений и данных. Можно забыть про резервное копирование? В какой-то степени, да. Провайдер заботится о регулярном архивировании и восстановлении в случае аварий. Но насколько надежна защита персональной информации? Можем ли мы быть уверены, что к нашим данным не будет несанкционированного доступа со стороны персонала провайдера и особо ретивых хакеров? Любое программное обеспечение подвержено взлому (снаружи или изнутри), в любом программном продукте есть баги (и в локальных приложениях, и в облачных сервисах). Но, в отличие от локальных систем, удаленные облачные сервисы не находятся в круге нашего влияния: мы получим только тот уровень безопасности, который может предоставить провайдер. И еще один нюанс: если в случае взлома банковского аккаунта хороший банк компенсирует потери, то в случае уничтожения или раскрытия секретных данных возможности для компенсации не столь очевидны.

2. Доступ к системе из любой точки, в которой есть Интернет. Да, так оно и есть. Но бывает, что Интернет есть, а сервисы провайдера недоступны. Скажем, ведутся регламентные работы, идет миграция приложений из одного датацентра в другой или же аккаунт пользователя просто заблокирован (”за дело” или по ошибке – это другая история).

3. Снижение расходов на инфраструктуру. Безусловно. К примеру, в случае EC2 и Azure пользователю не нужно держать технопарк на своей территории и заботиться о его обслуживании и обновлении. Но другая сторона медали – плата за ресурсы облака (количество instances/workers, трафик, объем хранилища, время работы - у каждого провайдера своя кухня).

4. API. Это здорово. Не надо изобретать велосипед. Но тем не менее, Azure – это не конструктор Lego. Это платформа, на которой надо отлаживать свои приложения. Удаленная отладка – дело непростое. В настоящий момент возможности “горячей” отладки в облаке ограничены, поэтому приходится воспроизводить баг на локальной девелоперской фабрике. На первый взгляд, это кажется достаточно удобным, но частенько возникают баги, которые на ура повторяются в “живом” облаке, но не воспроизводятся в локальной среде. И еще один нюанс – зависимость от API. Провайдер меняет SDK – будь любезен вносить изменения в свою систему, даже если ее текущее состояние тебя (и твоих клиентов) полностью устраивает.

 

Что можно ожидать в ближайшем будущем

Пользователей облачных систем можно условно поделить на две больших группы: корпоративные и простые.

Корпоративные пользователи с радостью ухватятся за Windows Azure: “Какие слабые места? Это технология от Microsoft, это прорыв!”. Такие пользователи давно сидят на игле Microsoft и не будут с нее слезать. Есть IT-бюджет, который нужно распилить, и Azure видится модным, перспективным вариантом вне зависимости от качества предоставляемых услуг. Такая позиция будет устраивать очень многих: и Microsoft, и фирмы-разработчики ПО, и корпорации-клиенты, и страховые компании (как же без них - новые риски). Безусловно, часть PaaS-пирога отъест Google App Engine, но старая кобыла Microsoft с борозды не сойдет. Что касается IAAS, то будущее просматривается в настоящем: решения Amazon надежны и эффективны – только плати.

У простых пользователей нет большого бюджета, и деньги они не выложат просто так. Им нужна технология, но не хочется зависеть от провайдера. Поэтому все более популярным будет развертывание облачных систем на своих площадках. Хороший пример – Eucalyptus. Открытый код, слегка сыроват, но можно заточить под свои нужды. Более того, Eucalyptus получил большую поддержку со стороны Ubuntu. Последняя версия Ubuntu Server позволяет развернуть Enterprise Cloud на базе Eucalyptus. И вот еще две интересных возможности Eucalyptus: 1) связка Eucalyptus + VMware: в качестве гипервизора использовать не KVM или Xen, а VMware ESX, тем самым объединив в одной системе “эластичность” выделения ресурсов в Eucalyptus и богатые возможности мониторинга/автоматизации/графического интерфейса, которые есть в ESX; 2) интеграция с Amazon EC2: при нехватке внутренних ресурсов можно временно арендовать виртуальные машины на Amazon, нарастив мощность своей “домашней” системы – благо Eucalyptus многое вобрал из EC2, включая клиентские инструменты для управления облаком. Дальше – больше: если облако находится в круге влияния его хозяина, то следующим шагом будет “домашний” API, домашний framework (либо самописный, либо созданный на основе существующих) и, в конечном итоге, информационная система, которая вбирает в себя возможности IaaS/PaaS/SaaS и при этом находится под полным контролем ее владельца.

Интересные времена настают. Оставайтесь с нами.

Отправить в Twitter, Facebook, FriendFeed, ВКонтакте | Опубликовано 17.01.2010 в рубрике "Облака"

Комментарии (4)

  1. Автор комментария : Андрей | January 21, 2010

    Корпоративным пользователям никто не мешает разворачивать Azure в качестве private cloud.

    [Ответить]


  2. Автор комментария : Капитан Аляска | January 22, 2010

    Андрей, спасибо за комментарий.

    Да, интересный ход (http://www.informationweek.com/news/hardware/data_centers/showArticle.jhtml?articleID=216402332): private cloud на базе Windows 2008 R2 + System Center с технологиями Azure.

    Не попадался ли вам хороший технический обзор по этой теме?

    [Ответить]


  3. Pingback : OpenQuality.ru | Сервисы в Azure: автоматизация развертывания | February 15, 2010

    […] уже отмечалось ранее, Windows Azure представляет собой облачную операционную […]


  4. Pingback : OpenQuality.ru | Качество программного обеспечения | February 21, 2011

    […] выбирает провайдера и строит свою систему на его ресурсах. Здесь важно не ошибиться с партнером. Не прикажет ли […]



Добавить комментарий

Пожалуйста, исправьте результат: дважды два равно



КРАТКОЕ СОДЕРЖАНИЕ

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


ПУТЕВОДИТЕЛЬ

Список всех статей с краткой аннотацией и разбивкой по рубрикам. Открыть карту.

ПОДПИСКА

Доступ к самым интересным материалам по электропочте и RSS. Подробности.

ИЩЕЙКА