Облачные вычисления

**Облачные вычисления** (англ. *cloud computing*) — модель обеспечения удобного сетевого *доступа по требованию* к некоторому общему фонду конфигурируемых вычислительных ресурсов (например, сетям передачи данных, серверам, устройствам хранения данных, приложениям и сервисам — как вместе, так и по отдельности), которые могут быть оперативно предоставлены и освобождены с минимальными эксплуатационными затратами или обращениями к провайдеру[1].

Потребители облачных вычислений могут значительно уменьшить расходы на инфраструктуру информационных технологий (в краткосрочном и среднесрочном планах) и гибко реагировать на изменения вычислительных потребностей, используя свойства эластичных вычислений (англ. *elastic computing*) облачных услуг.

С момента появления в 2006 году концепция глубоко проникает в различные ИТ-сферы и занимает всё более и более весомую роль в практике: по оценке IDC рынок публичных облачных вычислений уже к 2009 году составил $17 млрд — около 5 % от всего рынка информационных технологий, а в 2014 году суммарные затраты организаций на инфраструктуру и услуги, связанные с облачными вычислениями, оцениваются почти в 175 млрд $.

## История

Ранние концепции использования вычислительных ресурсов по принципу системы коммунального хозяйства относят к 1960-м годам (к Джону Маккарти или Джозефу Ликлайдеру).

Следующими шагами к концептуализации облачных вычислений считаются появление CRM-системы Salesforce.com, предоставляемой по подписке в виде веб-сайта (1999) и начало предоставления услуг по доступу к вычислительным ресурсам через Интернет книжным магазином Amazon.com (2002). Развитие сервисов Amazon, фактически превратившейся благодаря этим услугам в технологическую компанию, привело к формулировке идеи эластичных вычислений и запуску в августе 2006 года проекта под названием *Elastic Computing Cloud* (Amazon EC2). Практически одновременно с запуском ECC термины *cloud* и *cloud computing* прозвучали в одном из выступлений главы Google Эрика Шмидта, начиная с этого времени встречаются многочисленные упоминания облачных вычислений в СМИ, в публикациях специалистов по информационным технологиям, в научно-исследовательской среде. Отсылка к «облаку» использовалась как метафора, основанная на изображении Интернета на диаграмме компьютерной сети, или как образ сложной инфраструктуры, за которой скрываются все технические детали.

В начале 2008 года OpenNebula NASA в рамках проекта, финансируемого Европейской комиссией RESERVOIR, стала первым программным обеспечением с открытым исходным кодом для развертывания частных и гибридных облаков. В апреле 2008 года Google выпустил Google App Engine в бета-версии.

К середине 2008 года Gartner увидел возможность с помощью облачных вычислений «сформировать отношения между потребителями ИТ-услуг, теми, кто использует ИТ-услуги, и теми, кто их продает», и отметил, что «организации переходят от принадлежащих компании аппаратных и программных активов к использованию сервисно-ориентированных моделей», так что «прогнозируемый переход к вычислениям приведет к резкому росту ИТ-продукции в некоторых областях и значительному сокращению в других областях».

Запуск в 2009 году приложений Google Apps отмечается как следующий важный шаг к популяризации и осмыслению облачных вычислений. В 2009—2011 годах были сформулированы несколько важных обобщений представлений об облачных вычислениях, в частности, выдвинута модель частных облачных вычислений[⇨], актуальная для применения внутри организаций, выделены различные модели обслуживания (SaaS[⇨], PaaS[⇨], IaaS[⇨]). В 2011 году Национальный институт стандартов и технологий сформировал определение, которое структурировало и зафиксировало все возникшие к этому времени трактовки и вариации относительно облачных вычислений в едином понятии.

## Характеристики

Национальным институтом стандартов и технологий США зафиксированы следующие обязательные характеристики облачных вычислений:

*Самообслуживание по требованию*(англ.*self service on demand*) — потребитель самостоятельно определяет свои вычислительные потребности: серверное время, скорости доступа и обработки данных, объём хранимых данных - без взаимодействия с представителем поставщика услуг;*Универсальный доступ по сети —*услуги доступны потребителям по сети передачи данных вне зависимости от используемого терминального устройства;*Объединение ресурсов*(англ.*resource pooling*) — поставщик услуг объединяет ресурсы для обслуживания большого числа потребителей в единый*пул*для динамического перераспределения мощностей между потребителями в условиях постоянного изменения спроса на мощности; при этом потребители управляют только основными параметрами услуги (например, объёмом данных, скоростью доступа), но фактическое распределение ресурсов, предоставляемых потребителю, осуществляет поставщик (в некоторых случаях потребители всё-таки могут управлять некоторыми физическими параметрами перераспределения, например, указывать желаемый центр обработки данных из соображений географической близости);*Эластичность —*услуги могут быть предоставлены, расширены, сужены в любой момент времени, без дополнительных издержек на взаимодействие с поставщиком, как правило, в автоматическом режиме;*Учёт потребления —*поставщик услуг автоматически исчисляет потреблённые ресурсы на определённом уровне абстракции (например, объём хранимых данных, пропускная способность, количество пользователей, количество транзакций) и на основе этих данных оценивает объём предоставленных потребителям услуг.

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

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

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

## Модели развёртывания

### Частное облако

**Частное облако** (англ. *private cloud*) — инфраструктура, предназначенная для использования одной организацией, включающей несколько потребителей (например, подразделений одной организации), возможно также клиентами и подрядчиками данной организации. Частное облако может находиться в собственности, управлении и эксплуатации как самой организации, так и третьей стороны (или какой-либо их комбинации), и оно может физически существовать как внутри, так и вне юрисдикции владельца.

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

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

### Общественное облако

**Общественное облако** (англ. *community cloud*) — вид инфраструктуры, предназначенный для использования конкретным сообществом потребителей из организаций, имеющих общие задачи (например, миссии, требований безопасности, политики, и соответствия различным требованиям). Общественное облако может находиться в кооперативной (совместной) собственности, управлении и эксплуатации одной или более из организаций сообщества или третьей стороны (или какой-либо их комбинации), и оно может физически существовать как внутри, так и вне юрисдикции владельца.

### Гибридное облако

**Гибридное облако** (англ. *hybrid cloud*) — это комбинация из двух или более различных облачных инфраструктур (частных, публичных или общественных), остающихся уникальными объектами, но связанных между собой стандартизованными или частными технологиями передачи данных и приложений (например, кратковременное использование ресурсов публичных облаков для балансировки нагрузки между облаками).

## Модели обслуживания

### Программное обеспечение как услуга

*Программное обеспечение как услуга* (*SaaS*, англ. *Software-as-a-Service*) — модель, в которой потребителю предоставляется возможность использования прикладного программного обеспечения провайдера, работающего в облачной инфраструктуре и доступного из различных клиентских устройств или посредством тонкого клиента, например, из браузера (например, веб-почта) или посредством интерфейса программы. Контроль и управление основной физической и виртуальной инфраструктурой облака, в том числе сети, серверов, операционных систем, хранения, или даже индивидуальных возможностей приложения (за исключением ограниченного набора пользовательских настроек конфигурации приложения) осуществляется облачным провайдером.

### Платформа как услуга

*Платформа как услуга* (*PaaS*, англ. *Platform-as-a-Service*) — модель, когда потребителю предоставляется возможность использования облачной инфраструктуры для размещения базового программного обеспечения для последующего размещения на нём новых или существующих приложений (собственных, разработанных на заказ или приобретённых тиражируемых приложений). В состав таких платформ входят инструментальные средства создания, тестирования и выполнения прикладного программного обеспечения — системы управления базами данных, связующее программное обеспечение, среды исполнения языков программирования — предоставляемые облачным провайдером.

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

### Инфраструктура как услуга

*Инфраструктура как услуга* (*IaaS*, англ. *Infrastructure-as-a-Service*) предоставляется как возможность использования облачной инфраструктуры для самостоятельного управления ресурсами обработки, хранения, сетями и другими фундаментальными вычислительными ресурсами, например, потребитель может устанавливать и запускать произвольное программное обеспечение, которое может включать в себя операционные системы, платформенное и прикладное программное обеспечение. Потребитель может контролировать операционные системы, виртуальные системы хранения данных и установленные приложения, а также обладать ограниченным контролем за набором доступных сетевых сервисов (например, межсетевым экраном, DNS). Контроль и управление основной физической и виртуальной инфраструктурой облака, в том числе сети, серверов, типов используемых операционных систем, систем хранения осуществляется облачным провайдером.

## Экономические аспекты

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

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

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

## Технологии

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

Облачные сервисы являются комбинацией существующих технологических решений, которые взаимно интегрированы для обеспечения максимального автоматизма и минимизации участия человека в работе комплекса. Можно выделить основные блоки, которые в первую очередь отличают «облачный» сервис от классического[ источник не указан 2129 дней]:

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

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

## Критика

Концепция облачных вычислений с публичной моделью подвергалась критике со стороны сообщества свободного программного обеспечения и, в частности, со стороны Ричарда Столлмана, считавшего, что использование стороннего веб-приложения, детали реализации которого не известны пользователю, ничем не отличается от применения проприетарного программного обеспечения с точки зрения пользовательского контроля за информацией. Существует вероятность, что с повсеместным приходом этой технологии станет очевидной проблема создания неконтролируемых данных, когда информация, оставленная пользователем, будет храниться годами, либо без его ведома, либо он будет не в состоянии изменить какую-то её часть. Примером того могут служить сервисы Google, где пользователь не в состоянии удалить неиспользуемые им сервисы и даже удалить отдельные группы данных, созданные в некоторых из них (FeedBurner, Google Friend Connect и, возможно, другие).

Кроме того, некоторые аналитики предполагали появление к 2010 году проблем с облачными вычислениями. Так, например, Марк Андерсон, руководитель отраслевого IT-издания Strategic News Service, считал, что из-за значительного притока пользователей сервисов, использующих облачные вычисления (например, Flickr или Amazon), растёт стоимость ошибок и утечек информации с подобных ресурсов, а в 2010 году должны были произойти крупные «катастрофы типа выхода из строя, или катастрофы, связанные с безопасностью». Так, например, в 2009 году сервис для хранения закладок Magnolia потерял все свои данные. Тем не менее, многие эксперты придерживаются той точки зрения, что преимущества и удобства перевешивают возможные риски использования подобных сервисов.