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



A

|

версия для печати

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

Аннотация: В лекции рассмотрены преимущества перехода к облачным платформам. Приведена классификация существующих облачных решений и описаны их особенности. Подробно рассмотрена облачная платформа Microsoft Azure. Описаны ее составные части, ключевые параметры. Рассмотрены базовые понятия, которые требуется знать для разработки решений для облачных платформ.

Ключевые слова: IDC, Интернет, инфраструктура, программное обеспечение, SAA, paas, запрос, операции, контроль, ПО, сценарий, интерфейс, программные средства, оплата, приложение, Управление состоянием, доступ, API, файл, безопасность, интеграция, базы данных, метафора, определение, Windows, распределенная операционная система, Internet, information, IIS, запись, service, level, SLA, постоянная память, мощность, затраты, стоимость, platform, AS, facebook, кеширование, fabricate, controller, развертывание, запуск, остаток, копирование, механизмы, очередь, Windows Server, хостинг, visual, HTTP, HTTPS, ASP, net, TCP/IP

Цель лекции: первоначальное знакомство с облачными платформами и изучение составных частей и терминологии платформы Microsoft Azure.

Согласно прогнозам IDC, в 2011 году 80% новых программ будет доступно в виде облачных сервисов; к 2014 году более трети покупаемых программных продуктов будет предоставляться заказчикам через облако. Ключевая идея, которая находится в основе облачных технологий, заключается в том, чтобы компания, которая пользуется хостингом для размещения своих интернет-приложений, оплачивала только использованные ресурсы с возможностью увеличения мощности в случае возникновения потребностей масштабирования и возможностью быстрой подстройки сервисов под свои бизнес требования.

Поставщики, предлагающие облачные платформы, могут рассматривать это в различных аспектах. Так выделяют три основных вида облачных платформ: инфраструктура как сервис (IaaS) , программное обеспечение как сервис (SaaS) и платформа как сервис (PaaS).

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

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

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

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

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

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

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

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

· применение обновления в момент их выхода;

· добавление дисковой памяти при возникновении потребности;

· перезапуск системы в случае аварийных ситуаций;

· репликацию данных для повышения надежности их сохранения;

· управление дисками и другим аппаратным обеспечением.

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


Рис. 3.1. Сравнение различных облачных платформ

Из рис. 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 можно сравнить с приложениями в рамках стандартной операционной системы.

 

 


Дата добавления: 2020-11-15; просмотров: 59; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!