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

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

Термин «облако» обозначает удалённое расположение, где хранятся и обрабатываются файлы и сервисы. В традиционной модели хранения и обработки все программные и аппаратные ресурсы находятся на одном устройстве, однако с развитием облачных сервисов хранение данных и вычислительные мощности всё чаще размещаются вне пользовательских устройств — в«облачных» инфраструктурах. Первыми примерами таких сервисов были решения для резервного копирования, предоставляемые интернет-провайдерами[2]. Крупные компании, такие как Google (например, Google Drive), Microsoft[3] и Intel[4], занимаются предоставлением облачных вычислительных сервисов.

Специалисты считают, что в будущем облачные вычисления будут определять развитие Интернет-технологий, заменив традиционные жёсткие диски «онлайн-облаками» и предоставив пользователям доступ к приложениям и данным без необходимости локальной инфраструктуры[5]. При этом возникает ряд новых юридических и этических вопросов, связанных с безопасностью и доступом к личной информации.

Общая характеристика

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

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

Современные облачные системы, базирующиеся на Интернет-протоколах, позволяют выполнять широкий спектр задач онлайн: обработку, хранение, совместную работу, размещение баз данных, запуск приложений[6][7]. Применение веб-программ и веб-браузеров позволяет организовать как доступ к обширным виртуальным рабочим пространствам, так и реализацию индивидуальных онлайн-сервисов без установки локального ПО[8]. Эта тенденция поддерживается технологиями AJAX и прогрессивным развитием клиентских интерфейсов.

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

История

Происхождение термина «облачные вычисления» (англ. cloud computing) связано с графическим обозначением сетей в ранних схемах компьютерных и телекоммуникационных сетей: изображения облака традиционно использовались для обозначения конструкции или границ сети. К середине 1990-х годов символ облака стал стандартным способом отображения Интернета на диаграммах[9].

Корни концепции уходят в 1950-е годы, когда крупные вычислительные центры университетов и крупных компаний обслуживались с помощью терминалов с разделением времени доступа (англ. time sharing), что позволяло более рационально использовать ресурсы дорогих мейнфрейм-компьютеров[10]. В 1960-х годах Джон Маккарти (англ. John McCarthy) предполагал, что вычисления однажды станут общедоступной услугой, сравнимой с электричеством или водой. Эта идея, а также рассмотрение разных моделей использования (публичные, частные, гибридные облака) подробно рассматриваются в книге Дугласа Паркхилла «The Challenge of Computer Utility» (1966).

Удешевление вычислительных мощностей, развитие сетей, сервисной архитектуры и технологий виртуализации способствовали расцвету облачных вычислений. Ключевым событием стал запуск в 2002 году платформы Amazon Web Services (AWS), а в 2006 году — первого массового облачного сервиса Amazon S3, где впервые применена модель ценообразования «плати за использованное» (англ. pay-as-you-go)[11].

В начале 2008 года появились первые открытые программные платформы для построения частных облаков (Eucalyptus, OpenNebula), а позднее — проекты RESERVOIR и IRMOS, ориентированные на поддержку критичных к качеству сервисов (QoS) и реального времени[12].

Наиболее распространённое определение облачных вычислений предложено Национальным институтом стандартов и технологий США (NIST): «облачные вычисления — это модель, обеспечивающая удобный сетевой доступ по требованию к общему пулу настраиваемых вычислительных ресурсов, которые могут быть быстро предоставлены и освобождены с минимальными управленческими затратами или взаимодействием с поставщиком услуг»[13].

Смежные системы и понятия

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

  • Автономные вычисления — системы, способные к автоматическому управлению собственной инфраструктурой.
  • Клиент-серверная модель — архитектура взаимодействия между поставщиком сервиса (сервером) и получателем (клиентом).
  • Grid-вычисления — объединение множества loosely-coupled систем для параллельной обработки задач.
  • Мейнфреймы — крупные вычислительные системы, используемые для обработки больших объёмов данных и выполнения критически важных задач.
  • Уильити-вычисления (утилитарные вычисления) — предоставление вычислительных услуг на основе фактического потребления ресурсов[14].
  • P2P — peer-to-peer, распределённая сеть без централизованного координатора.
  • Облачные игры — игровые сервисы, где обработка данных происходит на стороне сервера, а пользователю передаётся результат.

Основные характеристики

Облачные вычисления обладают следующими ключевыми свойствами:

  • Быстрое развертывание — ресурсы предоставляются пользователям по запросу.
  • Программные интерфейсы для автоматизированного управления сервисами (обычно используются REST API).
  • Снижение капитальных затрат, так как инфраструктура приобретается или арендуется как сервис.
  • Поддержка детализированного учёта — оплата по факту потребления ресурсов.
  • Независимость от устройства и местоположения пользователя — доступ к сервису возможен с любого устройства, подключённого к Интернету.
  • Технология виртуализации — повышает эффективность использования вычислительных и дисковых ресурсов.

Многопользовательские облачные системы обеспечивают совместное использование ресурсов, повышение отказоустойчивости и масштабируемости инфраструктуры[15]. В случае использования распределённых географически резервных площадок достигается высокая надёжность и удобство для планирования аварийного восстановления данных.

Модель self-service по запросу

Концепция самостоятельного заказа сервисов (on-demand self-service) позволяет пользователям самостоятельно конфигурировать и запускать шаблоны облачных решений без участия служб поддержки[16]. Многие поставщики (например, HP, RedHat) предлагают готовые шаблоны и каталоги облачных сервисов[17].

Модели предоставления услуг

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

  • Инфраструктура как услуга (IaaS, англ. Infrastructure as a Service)
  • Платформа как услуга (PaaS, англ. Platform as a Service)
  • Программное обеспечение как услуга (SaaS, англ. Software as a Service)

Инфраструктура как услуга (IaaS)

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

Платформа как услуга (PaaS)

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

Примеры: Google App Engine, Microsoft Azure, IBM Bluemix, Heroku, Mendix, Cloud Foundry.

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

Программное обеспечение полностью развёрнуто у провайдера, пользователи получают к нему доступ через интернет-браузер. Управление программой, обновления и обслуживание осуществляет сервис-провайдер. Оплата обычно производится по подписке или за количество использованных ресурсов[18].

Примеры: Google Apps, Salesforce.com, Microsoft Office 365 и др.

Облачные клиенты

Доступ к облачным сервисам осуществляется с помощью различных сетевых клиентов: ПК, ноутбуков, планшетов, смартфонов. Современные облачные приложения часто не требуют установки специального ПО и могут запускаться прямо в браузере (благодаря поддержке технологий AJAX, HTML5). Также существуют специализированные клиенты — например, для работы с виртуальными рабочими столами либо электронной почтой.

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

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

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

Корпоративное (общественное) облако

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

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

Гибридное облако — это сочетание двух и более облаков (частного, публичного, корпоративного), связанных между собой, что позволяет объединять преимущества разных моделей[19]. Например, критически важные данные и приложения могут размещаться в частном облаке, а менее чувствительные — в публичном.

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

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

Архитектура

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

Центральный сервер управляет всем комплексом, мониторит трафик и запросы клиентов, применяя специальные протоколы и ПО-посредники (middleware). Для высокой эффективности и отказоустойчивости обычно используется виртуализация, резервирование данных на нескольких устройствах[20].

Интероблачные системы

Intercloud (интерклауд, «облако облаков») — концепция объединения различных облачных платформ для обеспечения совместимости, масштабируемости и устойчивости глобальных облачных сервисов[21].

Инженерия облачных вычислений

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

Проблемы и ограничения облачных вычислений

Безопасность и конфиденциальность

Часто основной барьер для внедрения облачных вычислений — опасения компаний по поводу сохранности, приватности и автономии хранения своих данных на внешних ресурсах. Существует риск несанкционированного или случайного доступа провайдера к критическим данным клиента, а также потенциальная зависимость от выбранного провайдера[22].

Соответствие стандартам и законодательству

Крупным компаниям и публичным клиентам часто требуется соответствие локальным и зарубежным стандартам (FISMA, HIPAA, ISO 27001, PCI DSS и др.), что иногда приводит к необходимости использования гибридных или корпоративных моделей облаков[23].

Открытое программное обеспечение и стандарты

Многие облачные платформы строятся на основе или с использованием открытого ПО (например, Hadoop, Cloud Foundry), что ускоряет развитие отрасли и облегчает интеграцию сервисов[24]. Однако отсутствие единых стандартов приводит к проблемам совместимости различных сервисов.

Злоупотребления и угрозы безопасности

Как и обычное оборудование, облачные сервисы могут использоваться для нелегальных или вредоносных целей (например, рассылка вредоносного ПО, атаки на сторонние ресурсы)[25].

Управление ИТ-инфраструктурой

Переход к облачной модели требует разработки новых управленческих и операционных процессов, включая управление рисками и соответствие внутренним политикам безопасности[26].

Исследования

К активному развитию облачных вычислений привлекаются университеты, исследовательские центры и правительственные организации, создаются специализированные образовательные инициативы и проекты — например, ACCI, AppScale, европейские проекты в сфере доверенных облаков (TClouds, HPCCloud)[27].

Облачные вычисления в Турции

В Турции отмечается значительный интерес к облачным вычислениям, особенно со стороны государственных структур (Министерство транспорта и инфраструктуры)[28]. Однако правовое регулирование вопросов конфиденциальности и защиты данных в этой сфере пока недостаточно развито.

Согласно рейтингу, составленному Business Software Alliance, Турция занимает 17-е место из 24 стран по уровню развития облачных технологий[29].

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

Примечания