Опубликован: 27.12.2011 | Доступ: свободный | Студентов: 1333 / 35 | Оценка: 4.44 / 4.44 | Длительность: 12:31:00
Лекция 3:

Основные принципы создания облачных приложений на платформе Microsoft Azure

< Лекция 2 || Лекция 3: 12 || Лекция 4 >

Из рис. 3.1 видно, что при развертывании собственной инфраструктуры вы управляете всеми ее компонентами — от сетевых ресурсов до выполняющихся приложений. Тогда как при использовании модели IaaS вы можете контролировать такие компоненты, как среда исполнения кода, безопасность и интеграция, базы данных, и т.п. При переходе к модели PaaS, все компоненты платформы предоставляются как сервисы с ограниченными возможностями для управления ими. Это сделано для того, чтобы предоставить в распоряжение потребителей оптимально сконфигурированную платформу, не требующую дополнительных настроек.

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

Microsoft Azure относится к категории PaaS, так как не обеспечивает доступ к аппаратному обеспечению и таким службам операционной системы как сетевые интерфейсы и управление дисками. Платформа Windows Azure полностью скрывает сложные технические детали реализации нижнего уровня операционной системы от пользователя и представляет удобный API для управления ресурсами на логическом уровне. Разработчику достаточно создать необходимые хранилища, дать им имена и затем использовать их для размещения собственных приложений. Одна из ключевых идей, находящихся в основе Windows Azure, это создание распределенной операционной системы с помощью которой разработчики могут исполнять свои приложения без использования стандартных подходов принятых в настольных операционных систем. Например, нет необходимости копировать файлы или настраивать Internet Information Services (IIS), управлять виртуальными путями и пулами приложений. Все это происходит само без участия разработчика, от него требуется только создать учетную запись и определять требующиеся ресурсы.

Windows Azure представляет собой операционную систему для облака (расположенную в облаке), которая полностью абстрагирует уровень аппаратного обеспечения системы от разработчика и позволяет ему выбрать требуемые компоненты и уровень Service Level Agreement (SLA) без тонкой настройки аппаратного обеспечения.

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

  • процессор можно выбрать в диапазоне от одно ядерного процессора с частотой 1 Ггц до 8 ядерного, для ситуаций когда необходимо обеспечить параллельное выполнение программы;
  • оперативная память выбирается по потребностям нижняя граница начинается от 768 Мбайт и верхняя может достигать 8 Гигабайт;
  • постоянная память определяется размером используемого диска, начинается от 20 гигабайт и может достигать 2 терабайт на один экземпляр приложения;
  • производительность системы ввода/вывода характеризуется скорость операций обмена, можно выбрать: низкую, умеренную или высокую

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

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

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

Сама платформа Windows Azure Platform представляет собой облачное решение компании Microsoft для разработки и обеспечения функционирования облачных сервисов и реализует модель Platform As A Service (PaaS).

Кратко опишем основные компоненты, которые входят в состав Windows Azure Platform.

  • Windows Azure — надежная, масштабируемая, безопасная и высоко доступная операционная система в облаке (также называется "операционная система как сервис"). Предоставляет вычислительные мощности и средства хранения информации, а также ряд механизмов управления сервисами. Может рассматривается как служба хостинга и обеспечивает выполнение приложений на сервере.
  • SQL Azure – реляционная база данных, доступная как сервис (также называется "база данных как сервис"). Поддерживает основные возможности Microsoft SQL Server по хранению реляционных данных и, в отличие от своих аналогов не требует администрирования и сопровождения.
  • Windows Azure AppFabric – программные модули (сервисы) для обеспечения коммуникаций (Service Bus) и контроля доступа (Access Control). AppFabric включает в себя службы которые могут быть интегрированы в пользовательские приложение, например Access Control позволяет использовать системы аутентификации сторонних производителей, таких как Facebook и Google, кеширование позволяет создавать распределенный кэш, а служба Service Bus реализует система обмена сообщениями внутри облака.

Экземпляр в Windows Azure представляет собой единицу развертывания и отражается на ту или иную виртуальную машину, для которой поддерживается ряд предопределенных конфигураций. Часть платформы, называемая Windows Azure Fabric Controller, отвечает за физическое развертывание необходимых виртуальных машин. Все, что требуется от пользователя при создании нового сервиса – указать необходимое число экземпляров виртуальных машин, которые должны быть развернуты для данного сервиса.

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

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

В Windows Azure поддерживается и модель развертывания виртуальных машин – эта возможность обеспечивает поддержку модели инфраструктуры, предоставляемой как сервис (IaaS). В первую очередь это используется для сервисов, которым нужна интеграция с операционной системой Windows Server. Данная модель обеспечивает больший контроль над средой, в которой выполняется хостинг сервиса, и может использоваться, например, для хостинга существующих сервисов.

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

Роли в Windows Azure можно сравнить со стандартными проектами в Visual Studio – каждый экземпляр представляет собой отдельный проект. Эти роли представляют различные типы приложений, поддерживаемых в Windows Azure. В настоящее время в Windows Azure поддерживаются следующие роли:

  • веб-роль (Web role).
  • прикладная роль (Worker role).

Веб-роль – обеспечивает поддержку протоколов HTTP и HTTPS через специальные точки входа (endpoints). Хостинг этой роли осуществляется в веб-сервере IIS. Веб-роль можно сравнить с проектом на ASP.NET, различия проявляются только в способах конфигурации и используемых приложениями сборках стека .Net.

Прикладная роль – обеспечивает внешние точки входа, доступные через TCP/IP и порты, отличные от 80 (HTTP) и 443 (HTTPS). Таким образом, прикладные роли – это приложения, схожие с сервисами Windows и они могут использоваться для выполнения фоновых задач.

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

Краткие итоги

  • Ключевая идея, которая находится в основе облачных технологий, заключается наиболее эффективном использовании компьютерных ресурсов с минимальными затратами на ее администрирование.
  • Выделяют три основных вида облачных платформ: инфраструктура как сервис (IaaS) , программное обеспечение как сервис (SaaS) и платформа как сервис (PaaS).
  • Облачная платформа SaaS позволяет развертывать приложение в облачном окружении.
  • Облачная платформа PaaS позволяет развертывать приложение и необходимые дополнительные сервисы (базы данных, хранилища) с ограниченными возможностями администрирования операционного окружения.
  • Windows Azure представляет собой операционную систему для облака.
  • SQL Azure – реляционная база данных, доступная как облачный сервис.
  • Windows Azure AppFabric – программные модули (сервисы) для обеспечения коммуникаций и контроля доступа.
  • Экземпляр в Windows Azure представляет собой единицу развертывания и отражается на ту или иную виртуальную машину, для которой поддерживается ряд предопределенных конфигураций
  • Платформа Windows Azure также поддерживает ряд сервисов для хранения бинарных данных.
  • Роли в Windows Azure можно сравнить с приложениями в рамках стандартной операционной системы.
< Лекция 2 || Лекция 3: 12 || Лекция 4 >