Базовая облачная инфраструктура

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

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

  • Облачная инфраструктура. Службы типа Amazon Web Services или FlexiScale. Низкоуровневые элементы таких служб формируют некий аналог управляемой среды хостинга. Управление многими функциями, включая возможность повышения или снижения мощностей, осуществляется через специальный API. Сейчас в этой категории в основном предоставляются вычислительные ресурсы и пространство для хранения данных.
  • Платформенные облака. Такие службы, как Google АрpEngine, позволяют клиентам создавать код, выполняемый (с соблюдением определенных ограничений) в специализированной среде, абстрагированной от базовой операционной системы и аппаратных ресурсов. Веб-приложениям предоставляется доступ к нереляционной базе данных, которая расширяется или сокращается по мере необходимости (в заранее оговоренных пределах).
  • Прикладные облака. Браузерные приложения Salesforce.com, которые создаются фирмой-поставщиком для конкретных целей и предоставляют доступ к API-приложениям, построенным на их основе. Также известны под названием SaaS (Software as a Service, программное обеспечение как услуга).

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

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

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

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

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

Облачное хранилище (cloud storage) предназначено прежде всего для хранения данных, а оплата осуществляется по установленным нормам потребления в виде абонентской платы за чтение и запись данных в хранилище.

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