Опубликован: 31.07.2015 | Доступ: свободный | Студентов: 1890 / 837 | Длительность: 10:00:00
Лекция 2:

Технологии, которые послужили основой для "облаков". Сервисные модели облачных вычислений

< Лекция 1 || Лекция 2: 12 || Лекция 3 >
Аннотация: В лекции рассматриваются технологии, которые стали началом современных облачных вычислений; сервисные модели облачных вычислений.
Ключевые слова: технологии виртуализации, Amazon, Amazon Elastic Compute Cloud, инфраструктура, сервис-ориентированная архитектура (Service-Oriented Architecture, SOA), предоставление приложений в режиме услуг (Application Service Provider, ASP), , архитектура, SOA, RA, IBM, сервис-ориентированная архитектура, ПО, компонент, BPEL, подход к разработке приложений, Web, Web-сервис, XML, WSDL, SOAP, UDDI, cервис-ориентированная модель, пользователь, сеть, поддержка, Microsoft SharePoint, интерфейс, service, language, Интернет, обмен данными, доступ, программные интерфейсы (API), приложение, facebook, cloud, Computing, хостинг, SUN, Amazon Web Service (AWS), google, Windows Azure, Google App Engine, релиз, android, Windows, phone, почтовый клиент, Infrastructure as a Service (IaaS), Platform as a Service (PaaS), платформа, Software as a Service (SaaS), парадигма облачных вычислений, объединение, пространство, множества, IaaS, paas, saas, жизненный цикл, отказоустойчивость, процессор, память, облачные вычисления, отношение, Amazon Elastic Compute Cloud (Amazon EC2), веб-сервис, Amazon Simple Storage Service (Amazon S3), Веб-служба, Amazon Web Services (AWS), Amazon, Inc., AT&T Inc, Dell, корпорация, Elastichosts, Gmail, Google Inc., поиск, Hewlett-Packard Company (HP), Hotmail, live, POP3, exchange, iPhone, microsoft, Microsoft Azure, MobileMe, OrangeScape , RackSpace US, Inc., SAP Business ByDesign, SODA, SQL Azure, SUN Microsystems, Windows Phone 7, Веб-сервис, веб-служба (web-service), Документы Google (Google Docs), ОС Android, операционная система, Сервис-ориентированная архитектура (SOA)

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

Первой компанией, в полной мере осознавшей коммерческую перспективу общедоступных технологий виртуализации, стала Amazon. Если до 2006 года под виртуализацией понимали возможность разворачивания нужного количества виртуальных серверов на собственном оборудовании, то благодаря появлению Amazon Elastic Compute Cloud начали арендовать виртуальные серверы на чужом оборудовании. В этом заключается суть облачных предложений класса "инфраструктура как сервис".

Основой современных облачных вычислений послужили сервис-ориентированная архитектура (Service-Oriented Architecture, SOA), предоставление приложений в режиме услуг (Application Service Provider, ASP) и др.

Стандарт Open Group SOA Reference Architecture (эталонная архитектура SOA RA) предоставляет рекомендации и варианты архитектуры, дизайна и реализации решений при создании архитектур сервис-ориентированных решений, включая архитектуры облачных вычислений. Целью стандарта Open Group SOA Reference Architecture является предоставление прототипа для создания и оценки архитектуры.

Microsoft и IBM развивают концепцию сервис-ориентированной архитектуры в рекомендациях по проектированию информационных систем на программных платформах.

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

Современные подходы к реализации SOA охватывают технологический уровень обмена данными и уровень бизнес-операций. В частности, одним из важных результатов стала разработка специализированного языка BPEL (Business Process Executable Language for Web Services) для описания аспектов взаимодействия различных сервисов с точки зрения реализации бизнес-правил. Принятие SOA как целевой архитектуры подразумевает и соответствующий подход к разработке приложений (SODA – service-oriented development architecture).

Для задач электронного бизнеса функциональность SOA реализуется на уровне web-сервисов (служб). Web-сервис – программные системы, которые используют XML в качестве формата данных, стандарты Web Services Description Language (WSDL) для описания своих интерфейсов, Simple Object Access Protocol (SOAP) для описания формата принимаемых и посылаемых сообщений и стандарт Universal Description, Discovery and Integration (UDDI) для создания каталогов доступных сервисов.

Сервис-ориентированная модель должна быть расширяемой: пользователь должен иметь возможность добавить новые сервисы или изменить набор доступных сервисов. Пользователи также должны иметь возможность обращаться к сервисам через сеть с различных по своим возможностям устройств – desktop-машин, мобильных устройств и т.д.

Поддержка SOA осуществляется во многих современных программных инструментах, в том числе: Microsoft SharePoint – инструмент для создания расширяемых Web-страниц и Web-сервисов; UDDI (Universal Discovery, Description and Integration) – технология для публикации и поиска Web-сервисов (Microsoft).

Сервис-ориентированная архитектура – подход к разработке программного обеспечения, основанный на использовании служб (сервисов), со стандартизированными интерфейсами. Интерфейс сервиса описывается с помощью формального платформонезависимого языка, например WSDL (Web Service Definition Language). Такой подход позволяет интегрировать логику и ресурсы ранее созданных информационных систем для решения новых задач.

Распространение высокоскоростных каналов интернет-связи сделало возможным интенсивный обмен данными с компьютерами, находящимися в "облаке". Технологии Web 2.0 позволили выполнять веб-приложения непосредственно в окне веб-браузера, а не запускать их на локальном компьютере или в локальной сети. Успеху облачных вычислений содействовало также развитие интернет-сервисов, которые предоставляют доступ к своим данным посредством специальных программных интерфейсов (API). Если разработчик создает приложение, которое обслуживает удаленных пользователей на основе данных из удаленного источника (например, из Facebook), то обработка данных также может осуществляться на удаленной облачной площадке.

Первые идеи применения вычислений с использованием удаленных вычислительных центров относятся еще к 60-70-м годам XX века.

История Cloud Computing в современной реализации начинается примерно с 2006 года, когда компания Amazon разработала свою инфраструктуру веб-сервисов (Web Services), обеспечивающую не только хостинг, но и предоставляющую клиенту удаленные вычислительные мощности. Затем аналогичные сервисы представили Google, Sun, IBM.

В 2006 году компания Amazon запустила платформу Amazon Web Service (AWS), модернизировав свои центры обработки данных. Компания Amazon сыграла основную роль в открытии рынка облачных вычислений во всем мире. В 2008 году были анонсированы облачные платформы от Microsoft и Google, Windows Azure и Google App Engine соответственно. В 2010 году увидел свет первый выпуск платформы Windows Azure. Начиная с примерно 2008 года рынок облачных вычислений начал стремительно расти, заполняясь как топовыми игроками (Amazon, Microsoft, Salesforce, Google, HP, Dell, AT&T, RackSpace), так и организациями, предлагающими облачные ресурсы для решения конкретных задач (например, OrangeScape).

Осенью 2008 года компания Microsoft анонсировала полноценную облачную операционную систему Windows Azure, предназначенную для разработки облачных приложений.

Официальный релиз Windows Azure состоялся в начале 2010 года. В 2014 году платформа была переименована в Microsoft Azure.

На сегодняшний день Microsoft Azure остается одним из самых крупных и всеохватных проектов в сфере Cloud Computing.

Но 2010 год можно считать важной датой в истории облачных технологий не только из-за релиза Azure, но и благодаря появлению ряда облачных сервисов, ориентированных не на разработчиков, а на простых пользователей.

Компании Microsoft и Google выпустили наборы бесплатных онлайн-сервисов, позволяющих пользователю работать с документами. У Google это Google Docs, у Microsoft – Office Web Apps.

Оба сервиса взаимосвязаны с почтой (Gmail и Hotmail) и файловыми хранилищами. Microsoft и Google интегрируют поддержку своих онлайн-сервисов во все программные среды – как настольные, так и мобильные (Google создала ОС Android, а Microsoft – Windows Phone 7).

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

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

  1. Infrastructure as a Service (IaaS) – инфраструктура как сервис. IaaS предлагает доступ к низкоуровневым ресурсам: хранилищам данных, вычислительным устройствам и памяти. Здесь развиваются технологии виртуализации, использующие специальный управляющий процесс – гипервизор, который обеспечивает выполнение приложений (и операционных систем) пользователя в прозрачном режиме. Примеры: хранилища Amazon S3, SQL Azure; вычисления Amazon EC2, Elastichosts.
  2. Platform as a Service (PaaS) – платформа как сервис. Платформа – это прикладной программный интерфейс, обеспечивающий приложению возможность работы в условиях "облаков". Приложение работает под управлением специализированной операционной системы, предоставляемой поставщиком облачных вычислений. IaaS может только гарантировать определенное количество процессоров или объем памяти, а все остальное должно делать размещаемое пользователем приложение. Примеры: Force.com, Google App Engine, Microsoft Azure (Platform).
  3. Software as a Service (SaaS) – приложение как сервис. Поставщик реализует бизнес-логику в рамках определенного приложения. Примеры: Google Docs, Salesforce CRM, SAP Business by Design.

Проблема управления ресурсами в сервис-ориентированных системах

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

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

Задача управления ресурсами осложняется еще и требованиями к качеству сервиса: время гарантированного отклика, уровень пропускной способности, доступность, отказоустойчивость, время восстановления после сбоя и т.д. Поэтому универсального решения задачи оптимального управления ресурсами в моделях IaaS и PaaS нет. В основном ведутся исследования в области виртуализации элементов вычислительных систем.

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

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

< Лекция 1 || Лекция 2: 12 || Лекция 3 >
Сергей Волков
Сергей Волков

Не могу получить доступ к Azure