Microsoft Azure
Материал из ITpedia
Microsoft Azure – технология позволяяющая объединить имеющиеся приложения в "вычислительное облако", повышая их производительность.
Облачные вычисления являются третим уровнем развития вычислений: первый уровень - это просто домашний PC, второй – использование PC в предпринимательстве, в промышленных масштабах. Отличительной особенностью третьего уровня является неограниченность разработчиков в ресурсах.
Содержание |
[править] Структура Microsoft Azure
Microsoft Azure состоит из следующих компонентов:
- Windows Azure – программа, предназначенная для развертывания и управления сервисами, обработки и масштабированного хранения данных, организации сети;
- инструмент работы с базами данных и отчётностью Microsoft SQL Services;
- Microsoft .NET Services - сервисную реализацию компонентов .NET Framework;
- Microsoft Live Services – набор сервисов для работы с документами. Обеспечивает хранение, распространение и синхронизацию документов, фотографий и других файлов между компьютерами, телефонами, приложениями и веб-сайтами;
- Microsoft SharePoint Services – набор сервисов для совместной работы над проектами;
- Microsoft Dynamics CRM Services - сервисы для управления бизнес-информацией и взаимоотношениями с клиентами.
[править] Назначение и возможности Microsoft Azure
Основное назначение Microsoft Azure – возможность быстрой разработки веб-сервисов и веб-приложений. Для этого Windows Azure будет брать на себя решение таких задач как хранение данных, информационный поиск, трудоемкие вычисления и т.д., в то время как веб-разработчикам останется только выполнять запросы к Windows Azure.
Для возможности взаимодействия с системой предусмотрено большое кол-во протоколов, таких как: HTTP, SOAP, REST, и XML. Microsoft Azure является открытой платформой, поэтому поддерживает сторонние языки, такие как Eclipse, Ruby, PHP и Python, также поддерживает Windows .NET Framework и Visual Studio.
Для ресурсной поддержки платформы будут использоваться серверы Microsoft по всему миру. Результатом использования такой схемы будет повышенная производительность работы и надежность (как и в кластерных системах) веб-приложений, работающих с Windows Azure. Microsoft начнет предоставление услуг по хостингу распределенных проектов, работающих на базе Windows Azure, предлагая дисковое пространство и вычислительные мощности своих серверов, а также новую систему в качестве услуги по подписке. Предполагается, что основными подписчиками сервисов, предоставляемых на базе Windows Azure, станут компании малого и среднего бизнеса, которые за счет переноса приложений в «облако» смогут экономить на аппаратном оснащении своих дата-центров и услугах специалистов.
Сейчас сервисы Microsoft Azure бесплатны. Ожидается, что коммерческая доступная версия Azure будет представлена в середине ноября 2009 года.
[править] Разработка приложений
[править] Создание приложения
Для работы с Windows Azure в Visual Studio 2008 необходимо установить:
- Windows Azure SDK
- Windows Azure Tools for Microsoft Visual Studio
После чего в Visual Studio появятся новые типы проектов. При разработке приложения можно использовать любой .NET язык (хотя фокус Microsoft при разработке Azure был на C#). После написания кода сервиса, его надо подготовить пакет к «публикации». После этого будут созданы 2 файла (сам пакет с кодом сервиса и файл конфигурации, в котором указано количество узлов для сервиса), которые нужно загрузить в облако.
Процедура публикации состоит из двух этапов:
- Загрузка проекта в Staging для проверки.
- Перевод проверенного проекта в Production
И последнее, что требуется для работы и тестирования проекта – сделать веб-оболочку.
[править] Выполнение приложения
В Windows Azure приложение имеет несколько экземпляров, каждый из которых выполняет часть или весь код приложения. Каждый из экземпляров работает на своей виртуальной машине. Но само приложение на Windows Azure не видит виртуальную машину, на которой она работает. Вместо этого разработчик может создать приложения с двумя типа экзмепляров –Web Role и Worker Role. Экземпляр Web Role принимает входящие запросы через Internet Information Services (IIS). Web role может быть реализован с помошью ASP.NET, WCF или другой .NET технологии, которая работает с IIS.
Worker Role получает исходные данные от Web Role, обычно через через очередь в хранилище Windows Azure. Результат работы экземпляров Worker Role может писаться в хранилище Windows Azure или посылаться во внешний мир через исходящие сетевые соединения. В отличии от экземпляров Web Role, которые создаются для обработки запросов и выключаются после обработки запроса, Worker Role может работать бесконечно – это фоновое задание.
Каждая виртуальная машина, на которой работают экземпляры Web Role или Worker Role, содержит агента Windows Azure, через который приложения взаимодействуют с фабрикой Windows Azure. Каждой виртуальной машине соответствует свое физическое ядро процессора. Бладоря этому можно управлять производительностью каждого приложения увеличивая количество работающих экземпляров указанное в конфигурационном файле.
[править] Доступ к данным
Windows Azure позволяет хранить данные в блобах, таблицах и очередях, доступ к которым осуществляется по протоколу REST.
Использование блобов – cамый простой способ хранения данных в Windows Azure. Есть простая иерархия: хранилище может иметь один или несколько контейнеров, каждый из которых хранить один или несколько блобов. Блобы могут быть большими – влоть до 50 Гб каждый, а чтобы сделать передачу блобов проще, каждый из них может разделен на подблобы. При ошибке передачи, повторная передача может начаться с самого последнего передаваемого подблоба. Блобы могут иметь метаданные (например, информация о том, где была сделана JPEG фотография, или данные о композиторе песни для MP3 файла).
Таблицы используются для хранения данных, чтобы приложения могли работать с данными на уровне мелких структурных единиц. Данные в таблицах хранятся в виде простой иерархии сущностей со свойствами.
Третий метод хранения данных в хранилище Windows Azure – очереди – создан с целью обеспечения взаимодействия экземпляров Web Role и Worker Role. Например, пользователь посылает запрос на выполнение какой-то ресурсоемкой задачи через веб-страницу, реализованную в Web Role. Экземпляр Web Role, который получает этот запрос, пишет сообщение в очередь. Экземпляр Worker Role, который ожидает сообщения в очереди считывает новое сообщение и выполняет требуюмую работу. Результаты работы он может вернуть через другую очереди или каким-то другим способом.

