Базовые технологии, использованные для реализации новой версии Microsoft Windows Azure (2013)
Новые возможности .NET Framework 4.5
Как и Windows Azure, платформа .NET – основа ее реализации – постоянно эволюционирует: улучшается производительность, реализуются новые возможности параллельных вычислений, сетевой коммуникации и т.п. Отметим, что многие нововведения в .NET 4.5, несомненно, вызваны в значительной степени потребностями развития и совершенствования Windows Azure и оказывают положительное влияние на производительность облака. Эти новые возможности мы и рассмотрим.
Основные новые возможности .NET 4.5. Следующие нововведения .NET 4.5 весьма важны для реализации Windows Azure:
- Поддержка разработки приложений .NET для магазина Windows
- Поддержка разработки переносимых библиотек классов (в том числе – для Windows Phone и для магазина Windows)
- Поддержка больших массивов (более 2 Гб)
- Фоновая сборка мусора для серверов
- Фоновая JIT-компиляция для многоядерных процессоров
- Улучшенная производительность при извлечении ресурсов приложений
- Новые возможности для параллельных вычислений.
Новые возможности ASP.NET 4.5. ASP.NET – набор библиотек для поддержки разработки Web-приложений и Web-сайтов. Следующие новые возможности ASP.NET, реализованные в версии 4.5, особенно важны для реализации Windows Azure:
- Поддержка новых типов форм HTML5 (напомним, что HTML 5 специально разработан для поддержки облачных вычислений)
- Поддержка связывателей моделей в веб-формах. Они позволяют привязать элементы управления данными непосредственно к методам доступа к данным и автоматически преобразуют ввод данных пользователем в типы данных платформы .NET Framework и из них.
- Поддержка "ненавязчивого" JavaScript в клиентских скриптах проверки.
- Улучшенная обработка клиентского скрипта посредством связывания и минимизации, обеспечивающих повышенную производительность при работе со страницами.
- Интегрированные подпрограммы кодировки из библиотеки AntiXSS (ранее - внешняя библиотека) для защиты от атак межсайтовых скриптов.
- Поддержка протокола WebSockets.
- Поддержка чтения и записи HTTP-запросов и ответов в асинхронном режиме.
- Поддержка асинхронных модулей и обработчиков.
- Поддержка резервирования сети распределения содержимого (Content Delivery Network - CDN) в элементе управления ScriptManager.
Новые сетевые возможности .NET 4.5. Следующие новые сетевые возможности .NET наиболее важны для реализации Windows Azure:
.NET Framework 4.5 обеспечивает новый интерфейс программирования для приложений HTTP.Дополнительные сведения приведены в описании пространства имен System.Net.Http и System.Net.Http.Headers.
Также предусмотрена поддержка нового интерфейса программирования для приема и взаимодействия с соединением WebSocket с помощью существующего класса HttpListener и связанных с ним классов.Дополнительные сведения приведены в новом пространстве имен System.Net.WebSockets и классе HttpListener.
Кроме того, в .NET Framework 4.5 сетевые функции усовершенствованы следующим образом:
- RFC-совместимая поддержка URI. Дополнительные сведения см. в описании Uri и соответствующих классов.
- Поддержка синтаксического анализа интернационализированных доменных имен (Internationalized Domain Name, IDN). Дополнительные сведения см. в описании Uri и соответствующих классов.
- Поддержка интернационализации адресов электронной почты (Email Address Internationalization, EAI). Дополнительные сведения см. в описании пространства имен System.Net.Mail.
- Улучшенная поддержка протокола IPv6 (новой версии Интернет-протокола), Дополнительные сведения см. в описании пространства имен System.Net.NetworkInformation.
- Поддержка сокета с двойным режимом. Дополнительные сведения см. в описаниях классов Socket и TcpListener.
Новые возможности Windows Communication Foundation (WCF) в версии 4.5. В .NET Framework 4.5 были добавлены следующие функции, чтобы упростить создание и сопровождение приложений Windows Communication Foundation (WCF).
Следующие новые возможности WCF наиболее важны для облачных вычислений в Windows Azure:
- Упрощение созданных файлов конфигурации.
- Поддержка разработки "с контракта", т.е. контракт сервиса становится отправной точкой разработки.
- Возможность более простой настройки режима совместимости ASP.NET.
- Изменения значений свойств транспорта по умолчанию для снижения вероятности необходимости их настройки.
- Проверка файлов конфигурации WCF за счет Visual Studio как часть процесса построения, поэтому можно обнаружить ошибки конфигурации перед запуском приложения.
- Новая поддержка асинхронной потоковой передачи.
- Новое сопоставление протокола HTTPS, облегчающее предоставление конечной точки по HTTPS с помощью служб IIS.
- Возможность создавать метаданные в одном документе WSDL путем добавления ?singleWSDL к URL-адресу службы.
- Поддержка Websockets, чтобы включить истинно двунаправленную связь по портам 80 и 443 с характеристиками производительности, схожими с транспортом TCP.
- Поддержка настройки служб в коде.
- Всплывающие подсказки редактора XML
- Поддержка кэширования ChannelFactory.
- Поддержка сжатия двоичным кодировщиком.
- Поддержка транспорта UDP, которая позволяет разработчикам писать службы, использующие обмен сообщениями по принципу "отправить и забыть". Клиент отправляет сообщение службе и не ожидает ответа от службы.
- Возможность поддерживать несколько режимов аутентификации на одной конечной точке службы WCF при использовании транспорта HTTP и безопасности транспорта.
- Поддержка служб WCF, использующих интернационализированные доменные имена (IDN).
Архитектура Windows Azure и реализация облачных Web-сервисов
Перейдем теперь собственно к предмету рассмотрения – архитектуре Azure и реализации облачных Web-сервисов средствами .NET.
Архитектура Azure представлена на рис. 4.5.
Fabric - это сеть взаимосвязанных узлов: Commodity –серверы, высокоскоростные раутеры, переключатели, волоконно-оптические коннекторы.
Azure Fabric Controller – сервис, который осуществляет мониторинг и предоставляет виртуальные машины для исполнения облачных приложений.
Главные сервисы Windows Azure следующие:
- Compute: Хостинг масштабируемых сервисов на платформе Windows Server 2008 R2.
- Storage: управление данными (не реляционными).
- Network: Ресурсы для взаимодействия со внешними приложениями (Service Bus).
Функции Fabric Controller:
- Fault Domains: Единица обработки ошибок в ЦОД (например, кластер машин).
- Update Domains: модификация областей при апгрейдах (ОС, сервисы).
Владельцы приложений описывают требуемые ресурсы в виде дескрипторов ресурсов (моделей сервисов).
Fabric Controller автоматически предоставляет требуемые ресурсы.
Fabric Controller обеспечивает устойчивость ресурсов к ошибкам и быстрый доступ к ним, раннее обнаружение ошибок в приложениях, создание дополнительных экземпляров по требованию. Экземпляры размещаются поверх fault и update domains.
В Azure различаются роли Web и Worker (см. рис. 4.6). По существу, каждая роль в Azure – это определенная разновидность приложения.