International conference of developers
and users of free / open source software

Облачные вычисления и сервисы: классификация, основные функции, преимущества и недостатки

Виталий Сороко, Минск, http://arneta.ru

In the past, big part of computer-related activity was impossible without the installation of software to a local computer, but now, with help of cloud services, users can perform such typical tasks as word processing within their web-browser. It becomes possible due to so called cloud-based resources. Here an attempt of cloud technologies and systems general overview is presented with the technical description of the architecture, characteristics and features comparison.

Среди наиболее полных определений облачных систем на сегодняшний день можно выделить следующие два:

  • Облачные сервисы – это технология обработки данных, в которой программное обеспечение предоставляется пользователю как интернет-сервис, при котором от пользователя скрыта инфраструктура «облака» (облачной системы) и, поэтому, ему не требуются специальные знания и навыки для управления и использования данной «облачной» технологии.
  • Облачные вычисления – это вычисления, которые представляют собой динамически масштабируемый способ доступа к внешним вычислительным ресурсам в виде сервиса, предоставляемого посредством Интернета.

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

В настоящее время все облачные сервисы подразделяют на:

  • Программное обеспечение как услуга (Software as a Service, сокращённо SaaS) – бизнес-модель продажи программного обеспечения, при которой владелец (поставщик) ПО предоставляет доступ к к нему пользователям (заказчикам) через Интернет. Примерами такого ПО являются Feng Office Community Edition, Simple Groupware, Zarafa и др.
  • Оборудование (вычислительные мощности) как услуга (Hardware as a Service, сокращённо HaaS) – предоставление вычислительных ресурсов оборудования (его процессорного времени, места для место под хранения данных и т.д.) в виде сервисов с использованием технологий виртуализации. Сервисы обычно предлагаются как эквивалент реальным вычислительным системам, таким как серверы, суперкомпьютеры и др. Над программной реализацией этой идеи полностью или частично работают проекты OpenVZ, FreeVPS, Linux-VServer, Apache Hama, GlusterFS Open Source Project, а также Moose File System (MooseFS) и др., а предоставляет такой сервис на базе OpenSource решений компания Linode и некоторые другие.
  • Коммуникация как Сервиc (Communications as a Service, сокр. CaaS) – построенное в облаке коммуникационное решение для предприятия, которое обеспечивает передачу речевого сигнала по сети Интернет или по любым другим IP-сетям (VoIP), обмен мгновенными сообщениями (IM), видеоконференции. Модель CaaS позволяет деловым клиентам выборочно разворачивать средства коммуникаций и услуг на оснований оплаты услуг в срок для используемых сервисов. С этим направлением тесно связаны такие FOSS-проекты как Ekiga, iLBC, Speex.
  • Мониторинг как Сервис (Monitoring-as-a-Service, сокращённо MaaS) является обслуживаемым в облаке программным обеспечением для мониторинга и обеспечения безопасности. Такими OpenSource-решениями на сегодняшний день являются Ganglia, Zabbix, Hyperic HQ. Сюда же с некоторыми оговорками модно отнести и Nagios.
  • Инфраструктура как услуга (Infrastructure as a Service, сокращённо IaaS) "— это предоставление компьютерной инфраструктуры (как правило в форме виртуализации) как услуги на основе концепции облачных вычислений. По сути IaaS является комбинацией SaaS, HaaS, так как она включает в себя и то и другое, причем обычно во множественном числе, а также CaaS и иногда MaaS с целью объедения и мониторинга всей системы, и, поэтому, используется в основном предприятиями. Свободными реализациями данной концепции являются Eucalyptus, OpenNebula, OpenStack, Nimbus и др.
  • Платформа как услуга (Platform as a Service, сокр. PaaS) – предоставление программной платформы и инструментов с определенными характеристиками, необходимых для разработки, тестирования, развертывания, поддержки различных приложений. Сюда же входят и готовые к использованию облачные сервисы, которые вместе образуют программную платформу. Яркими примерами из мира OpenSource в настоящее время являются Xen Cloud Platform, Cloud Foundry, Apache Hadoop, Apache Hive и др.
  • Компьютер (виртуальный рабочий стол) как услуга (Desktop as a Service, сокращённо DaaS) – предоставление виртуального компьютера, который каждый пользователь может индивидуально настраивать под свои задачи. Таким образом, пользователь приходя на работу просто вводит свои данные (обычно логин и пароль) и может работать, используя при этом благодаря технологиям виртуализации вычислительные мощности стороннего сервера, а не своего ПК.
  • Рабочее окружение как услуга (Workspace as a Service, сокращённо WaaS) – предоставление комплекта SaaS, предназначенного для создания рабочего окружения. В отличие от DaaS в этом случае пользователь получает доступ только к ПО, в то время как все вычисления происходят непосредственно на его машине. По сути данная категория является гибридом SaaS и PaaS, так как в отличие от последней является платформой, направленной не на разработку и тестирование ПО, а на офисную работу, но при этом как первая в реализации не использует технологий виртуализации. На данный момент реализации данной технологии предоставляются в основном различными крупными компаниями, например Google и Microsoft, и представляют в основном решения с закрытым исходным кодом, иногда с использованием свободных и открытых компонентов или их исходников.
  • Все как услуга (Everything as a service, сокращённо EaaS) – концептуальная модель, включающая в себя элементы всех перечисленных решений. На данный момент полной её реализации не существует – она по сути является идеалом для крупных облачных компаний, таких как Google и Microsoft.

Свободное и открытое программное обеспечение в настоящее время играет ключевую роль в создании и развертывании облачных сервисов и систем. С одной стороны существуют ряд созданных сообществом платформ, ориентированных на облачные вычисления (Xen, Eucaliptus, Cloud Foundry, Feng Office и др.). С другой стороны, само свободное ПО (операционные системы семейства Linux и BSD, Web-браузеры и т.д.) как нельзя лучше подходит для размещения и использования облачных сервисов. Естественно, что существует и целый ряд проприетарных аналогов.

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

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

Тем не менее облачные системы не лишены недостатков, которые в большей степени касаются обычных пользователей, и в меньшей — провайдеров:

  • из-за вопросов безопасности не все данные можно доверить стороннему провайдеру, тем более, не только для хранения, но и для обработки;
  • далеко не каждое облачное приложение позволяет сохранить полученные результаты в удобном для пользователя виде на нужный носитель данных;
  • риск массовой потери данных многими пользователями из-за технического сбоя у поставщика облачных услуг;
  • потеря свободы – большая часть облачных сервисов не имеет четких стандартов, и поэтому при переходе от одного поставщика облачных услуг к другому могут возникнуть серьезные проблемы. Они же могут возникнуть и при обновлении провайдером собственных облачных сервисов – если, например, он пожелает внедрить новый интерфейс, то подписчикам придётся им пользоваться. Немаловажным моментом также является необходимость доступа в интернет, что в некоторых случаях ведет к потере свободы перемещений. А главное, благодаря тому, что все данные находятся в руках провайдера, нельзя исключать того, что недобросовестные компании могут воспользоваться этим.

Можно предположить, что как сейчас большая часть пользователей использует Windows и Microsoft Office, так в ближайшем будущем эти пользователи оценят преимущества облачных платформ и перейдут на них. При этом, даже передумав после получения очередной порции счетов за оплату сервисов, пользователям будет трудно вернуться к прежней схеме работы – все их данные будут в руках компании"=владельца облачной системы, а для самостоятельной установки другой операционной системы и иного программного обеспечения многим не хватит квалификации, да и приобретённое пользователями оборудование скорее всего будет иметь крайне малую мощность. В этом случае эффективным выходом оказывается свободное ПО, которое как правило способно работать на маломощном оборудовании при сохранении совместимости со старыми системами. В этом случае возврат пользователей из облака также едва ли станет массовым, поскольку крупные облачные компании постараются сделать этот переход невыгодным, если не невозможным, однако сам факт такой возможности будет являться дополнительным регулирующим фактором, ограничивающим прибыли провайдеров облачных услуг.