Встречайте обновленный Windows Azure. Небольшой обзор нововведений
Добрый день, уважаемые коллеги. Пока ещё уставшие от недосыпа последних дней (утренняя Венера, MEET Windows Azure) спят, в Томске сидит скромный автор и пишет эти строки, испытывая нечто вроде феерии от того, что происходит сейчас в мире IT. А мы, друзья, стоим на пороге окончательной необходимости менять парадигму.
В этой статье я попробую в рамках небольшого обзора передать то, что произошло сегодня ночью на событии MEET Windows Azure – мажорном релизе новой функциональности платформы. Основной доклад делался светлым умом, которого в твиттере назвали «Мидасом нашей современности» — Скоттом Гатри.
Итак, если быть кратким, то список нововведений и изменений, зафиксированный мною, выглядит так.
- Абсолютно новый портал, находящийся в стадии Preview (внимательные уже успели заметить, что на новом портале пока нет возможности администрирования дополнительных сервисов типа ACS и SB – это будет позже, пока нужно использовать старый).
- Утилиты командной строки.
- IAAS
- Web Sites
- Cloud Services — бывшие Hosted Services.
- Building Blocks – ребрендинг и новые сервисы.
- Новые SDK.
- Приятные обновления в ценообразовании.
- Поддержка Cloud9
- Мониторинг и ведение статистики всего и вся.
- Team Foundation Service и Windows Azure.
- Официальная доступность Windows Azure в 89 странах (включая Россию!)
Давайте рассмотрим подробнее, что же предложили нам ребята из Microsoft.
Новый портал администрирования
Новый портал, написанный на HTML5, работает быстро и естественно, поддерживая фильтрацию и сортировку (что упрощает использование портала для крупных развертываний), функционирует во всех браузерах и предоставляет большое количество новых функций, включающих интегрированную функциональность по мониторингу VM, Web-сайтов, хранилища и облачных сервисов.
Новый портал разработан в Windows Azure на основе REST API управления. Всё, что можно сделать на портале, можно также сделать и в программном коде, используя этот Web API.
Как писали в твиттере, новый портал прекрасно работает на Mac, iPad и WP. Раньше для этого необходимо было изрядно потрудиться, учитывая Silverlight, на котором был написан портал.
Утилиты командной строки
Стали доступны утилиты командной строки (использующие REST API управления), которые делают ещё проще написание скриптов и автоматизации задач администрирования. Утилиты доступны как для Windows (Powershell), так и для Mac и Linux (Bash). Программные коды этих утилит, как и программные коды других SDK Microsoft, размещены на GitHub по лицензии Apache 2.
IAAS (Infrastructure as a service)
Теперь Windows Azure поддерживает возможность развертывания и запуска долговечных виртуальных машин в облаке. Вы можете создать эти виртуальные машины, используя прозрачно интегрированную в портал галерею шаблонов или создать, загрузить и запустить ваш собственный VHD-образ.
В галерее образов доступны образы следующих операционных систем:
-
Windows Server
- Windows Server 2008 R2
- Windows Server 2008 R2 с SQL Server 2012 Eval
- Windows Server 2012 RC
-
Linux:
- OpenSUSE 12.1
- CentOS 6.2
- Ubuntu 12.04
- SUSE Linux Enterprise Server 11 SP2
Виртуальные машины долговечны (что значит, что всё, что на них установлено, будет сохраняться после перезагрузки) и могут хранить любые операционные системы. Наша интегрированная коллекция образов включает как образа Windows Server (включая недавно появившийся Windows Server 2012 RC), так и Linux (Ubuntu, CentOS, SUSE). После создания экземпляра VM вы можете легко подключиться к нему, используя терминальный сервер или SSH, и настроить виртуальную машину так, как необходимо вам (и, если необходимо, снять снапшот образа для создания новых экземпляров виртуальной машины). Всё это обеспечивает гибкость, достаточную для запуска большинства типов задач в Windows Azure.
Благодаря привычному открытому формату VHD виртуальные машины могут легко мигрировать из существующей локальной инфраструктуры в облачную (и обратно).
Новый портал администрирования Windows Azure содержит широкий набор возможностей по администрированию виртуальных машин, включая мониторинг и отслеживание потребления ресурсов внутри виртуальных машин.
Долговечное хранилище в виртуальных машинах реплицируется в трех экземплярах, и постоянно доступно две резервных копии, которые будут задействованы в случае выхода из строя, например, диска.
Поддержка виртуальных машин также подразумевает простое подключение множества дисков с данными к виртуальным машинам (которые можно примонтировать и форматировать как диски). Можно также включить гео-репликацию для виртуальных машин, что приведет к тому, что платформа будет постоянно реплицировать ваше хранилище в другой датацентр, расположенный минимум за 400 миль от исходного датацентра, для обеспечения резервирования.
Доступ к виртуальным машинам может быть осуществлен с портала управления Windows Azure либо с использованием Powershell (с новым июньским Windows Azure SDK).
Чем же все это хорошо? Раньше VM-роль была в состоянии «развивающаяся функция» и поддерживала только Windows 2008 R2 SP1. Разработчику необходимо было подготовить образ и загрузить его в VHD, что занимало (если учесть размеры VHD) часы. Новое предложение Microsoft использует преконфигурированные образа операционных систем, которые готовы к использованию сразу после создания.
Для начала использования сервиса виртуальных машин необходимо запросить доступ к Preview-версии (однако сейчас доступ очень ограничен и, как я понял, Preview-версии доступны пока что только людям, близким к телу – MVP, Windows Azure Insiders и др. Могу ошибаться). В любом случае в меню account нужно нажать на ‘Preview Features’. SLA, кстати, на Preview-функции не распространяется. Интересный документ.
Web Sites
Новая функциональность, которая позволит уже более серьезно потягаться облачной платформе Microsoft с привычными всем хостерами с предложением хостинга за 5 долларов. Веб-сайты можно разрабатывать на ASP.NET, Node.js или PHP (либо CMS – WebMatrix, Joomla, Drupal, WordPress, DotNetNuke, Umbraco и др.) и разворачивать за секунды с использованием FTP, Git или TFS. При этом первичное использование бесплатно, далее же веб-сайты вертикально масштабируются согласно увеличению траффика. В демонстрации было показано быстрое создание веб-сайта в Visual Studio с использованием .NET (ASP.NET MVC 4). Всё это работает как в VS 2010, так и в VS 2012, и работает очень быстро.
В случае же Mac и Node.js вместо портала администрирования нужно будет использовать командную строку и Git.
По умолчанию веб-сайты находятся в состоянии Shared Website, то есть мощности делятся между веб-сайтами, но при необходимости можно увеличить количество экземпляров и перевести веб-сайт в состояние Reserved.
Доступно использование MySQL, предоставляющегося как сервис (ClearDB) и интеграция с Microsoft WebMatrix.
И самое вкусное – можно иметь до 10 веб-сайтов бесплатно. Конечно, тут не без подводных камней – за тот же SQL Server и трафик все равно придется платить. Но само предложение (и, в общем-то, не такие большие цены за трафик и транзакции) позволяет делать то, что было практически недоступно раньше – размещать небольшие, а то и личные, проекты в Windows Azure.
Что касается масштабирования и балансировки нагрузки – всем занимается Windows Azure. Можно начать с малого и перейти на большой проект без особых проблем. При этом доступно три опции масштабирования – увеличение процессов для сайта, перенос веб-сайта в виртуальную машину и добавление виртуальных машин и управление мощностью виртуальной машины (переход с одноядерного экземпляра 1.0GHz на 8-ядерный экземпляр extra large с 14 GB RAM на борту).
Согласно уже проведенным простым анализам, некоторые начали сравнивать веб-хостинг и предложение Microsoft. По словам одного из блоггеров, предложение компании, которую он использует как хостера, за 10 сайтов с отличной техподдержкой всего на 1/3 дешевле. Это отличное соотношение, как мне кажется, а учитывая возможность прозрачного масштабирования и балансировки нагрузки можно считать предложение Windows Azure в большой степени конкурентоспособным.
У людей сразу возник вопрос – что использовать, веб-сайты или cloud services? В принципе, можно ответить достаточно просто – если нет особой необходимости в контроле над виртуальной машиной и вам без разницы, что ресурсы будут по умолчанию распределяться между пользователями, тогда используйте веб-сайты. Если же нужен контроль над средой – пожалуйста, Cloud Services с привычной моделью Web/Worker-ролей всё ещё тут.
Также задаются вопросы о конфигурации собственных SSL-сертификатов для веб-сайтов. Судя по промелькнувшему ответу во время трансляции, пока что делать этого нельзя, но уже очень скоро возможность появится.
Cloud Services
Необходимо сказать, что лично для меня такой мощный ребрендинг выглядит очень правильным решением – честно говоря, название Hosted Services, да и остальные названия, мне не нравились. Тут же всё четко и понятно.
Как я понял, концептуально Cloud Services остались теми же Hosted Services – разрабатывается многослойное приложение на основе веб-сайта и добавления Worker-роли, на портале загружается пакет сервиса (а теперь супер-новость – в ZIP-формате!), после чего Fabric Controller ищет мощности, поднимает на них виртуальные машины и загружает ваше приложение на эти виртуальные машины и конфигурирует балансировщики нагрузки и DNS.
Building Blocks
Дополнительные сервисы, которые делают жизнь разработчика проще. С учетом новых сервисов (Hadoop, Media Services, etc) обновленный набор дополнительных сервисов включает в себя (я думаю, пояснять, что чем было, ненужно):
big data
database:
- сервис реляционной БД
- кластеризация
- SQL Reporting. Теперь SQL Reporting в целом доступна, да ещё и с SLA. SQL Reporting позволяет публиковать отчеты в облако или встраивать отчеты прямо в локальные приложения, которые могут быть использовать с помощью браузера, мобильного устройства или PC. Подробнее — здесь.
storage:
- локальное избыточное хранилище (Locally Redundant Storage) для тех, кому не нужна гео-репликация и нужно сокращение расходов на хранение данных
- лизинг блобов
- копирование блобов между аккаунтами хранилища
- Shared Access Signature (SAS) для таблиц и очередей (вот это реально отличнейшая задумка!)
- подробнее
traffic:
- как я понял, бывший Traffic Manager, который позволяет маршрутизировать траффик так, как удобно клиенту
caching:
- поддержка протокола Memcached
- распределенный сервис или использование на уровне приложения (локальное кэширование)
- возможность выделенного слоя кэширования, созданного для одного или более приложений из множества Worker-ролей, предоставляющего практически безлимитные объемы кэширования и масштабирования
- уведомления
- теги
- регионы
- высокая доступность
- подробнее
messaging:
- безопасные коммуникации и relays
- основа гибридных приложений и слабосвязанных решений
- кросс-платформенные SDK
identity:
- интеграция с Active Directory и множеством провайдеров идентификации
- SSO
- Enterprise Graph REST API
- учитывая, что 93% Fortune 1000 используют Active Directory, это полезно :)
- из быстро исчезающего списка вопросов в трансляции успел увидеть, что сервис Identity скоро будет поддерживать формат токенов JWT (Wow!)
media:
- создание, управление и распространение мультимедиа-контента
- широкий набор форматов и устройств
- Ingest, Encode, Protect, Stream!
CDN
networking:
- объединение в виртуальную частную сеть (VPN) экземпляры в Windows Azure и локальные машины
- контроль над сетевой топологией – можно указать диапазоны IP-адресов или DNS-сервера
- IPSEC
- использование VPN-устройств от вендоров, например Cisco
интеграция с Marketplace
Дополнительные сервисы могут использовать как приложениями на основе .NET, так и Node.js, Java, PHP, Python – все библиотеки опубликованы на GitHub по лицензии Apache2 и предоставляют весьма приятный в использовании API.
Новые SDK
Стали доступны новые версии SDK.
В Windows Azure SDK .NET добавлена поддержка IISExpress и LocalDB в эмуляторе и возможность превью-использования выделенного кэширования с поддержкой на уровне Visual Studio. Добавлена поддержка Service Bus в Visual Studio и обновлены остальные клиентские библиотеки. Если посмотреть поближе на изменения, то можно заметить, что в Visual Studio проект теперь называется Windows Azure Cloud Service. Из конкретных нововведений:
1) В проекты Azure добавляются соответствующие сборки и NuGet-пакеты: например, CloudConfigurationManager, с помощью которого можно легко получать доступ к настройкам конфигурации с использованием умного алгоритма, который сначала проверяет файл облачной конфигурации (.cscfg), после чего переходит к web/app.config, если конфигурация недоступна.
2) Новые шаблоны. Новые шаблоны включают в себя MVC4/MVC4 Web API, Worker-роли с Service Bus, Worker-роли с Cache.
3) Для продвинутых сценариев разработки был добавлен механизм включения пользовательских файлов и папок в установку при развертывании роли – для этого надо нажать Add -> Item… или Add -> Folder на облачном проекте.
Также для Visual Studio были добавлены возможности по удобному управлению кэшированием. Теперь для того, чтобы добавить поддержку кэширования в приложение, необходимо открыть роль в дизайнере и отметить во вкладке Caching опцию Enable Caching, после чего определить с использованием слайдера размер кэша и совершить остальные настройки.
Можно использовать NuGet-пакет Windows Azure Caching Preview, который при установке совершает необходимые для кэширования настройки в файлах web/app.config. Подробнее про кэширование .
Установить всю эту радость можно как вручную, так и с помощью Web Platform Installer.
Для SDK Java добавлены клиентские библиотеки для использования сервиса таблиц.
Для SDK Node.js добавлены клиентские библиотеки Service Runtime.
Для SDK PHP добавлены клиентские библиотеки для использования сервисов хранилища, Service Bus и Service Runtime и командлетов Windows Azure PowerShell.
Для SDK Python добавлены командлеты PowerShell и клиентские библиотеки (Windows, Linux, Mac), поддержка Django, Windows Azure и Django в PTVS (http://pytools.codeplex.com) и IPython (с клиентов Windows, Linux и Mac) до виртуальных машин (Linux или Windows).
Обновления в ценообразовании
- Цены за Preview виртуальных машин. Во время preview-периода виртуальные машины с Windows Server и Linux будут оплачиваться, исходя из стоимости в .013 за xSmall,.08 для Small, .16 для Medium, .32 для Large и .64 для XLarge в час.
- Цены за Preview виртуальных машин SQL Server. Во время preview-периода SQL Server 2012 Eval Edition будет бесплатен, после чего, в GA, образа SQL Server 2012 Web и Standard Edition будут оплачиваться дополнительно.
- Цены за хранилище, CDN и сетевой трафик. Клиенты, использующие эти сервисы, автоматически будут видеть снижение стоимости при увеличении использования. При этом ничего не надо делать дополнительного – если клиент Pay As You Go, он автоматически получит это преимущество.
- Locally Redundant Storage. Локальное избыточное хранилище будет иметь 33%-ную скидку по сравнению с гео-избыточным хранилищем (Geo-Redundant Storage).
- Уменьшение стоимости транзакций. Стоимость транзакций хранилища и CDN уменьшена на 90%!!! (c .01 за 10,000 транзакций до .01 за 100,000 транзакций). Анонс команды разработки.
- Подробнее про ценообразование
·
Cloud9
На Node Summit Microsoft анонсировал поддержку развертывания в Windows Azure. Сегодня же было анонсировано, что Cloud9 имеет полную поддержку Windows Azure Websites – теперь в Cloud9 можно создавать веб-сайты и быстро развертывать их, используя Git. Новость.
Node.js-разработчики, обратите внимание на скриншоты ниже.
Известнейший в своих кругах Glenn Block говорит, что вам необходимо только развернуть ваше приложение. Система же возьмет package.json и загрузит все необходимые NPM-модули на сервер.
Team Foundation Service и мы в Windows Azure
После создания веб-сайта при переходе на его панель управления становится доступна опция Setup TFS Publishing (в правом нижнем углу). Нажатие приводит к запуску настройки подключения TFS-проекта к приложению в Azure.
В процессе настройки нам предлагается указать существующий аккаунт Team Foundation Service либо создать новый, после чего выбрать Team Project, в котором будут располагаться исходники приложения.
После этого аккаунты Windows Azure и Team Foundation Service будут связаны. Теперь можно создавать и развертывать приложение из Visual Studio, подключившись к аккаунту TFS.
Результаты развертывания можно изучить в отчете TFS, на портале windows Azure либо в веб-интерфейсе TFS.
По сути магии мало – для связывания TFS и Azure используется OAuth, который сейчас закрыт, но в будущем его собираются открыть.
Инструкция по настройке локального TFS Build для развертывания в Windows Azure .
Резюме:
То, что произошло вчера, должно изменить ситуацию небольшого застоя в облачных вычислениях (точнее, не застоя, а слишком уж плавного развития). Microsoft за один день выкатила столько, что зарубежные эксперты уже признали, что, если всё пойдёт хорошо, то корпорация выбьется не просто на один уровень с Amazon, но и станет лидером в индустрии.
До этого я публиковал сравнение сервисов хранилищ Windows Azure и Amazon – как видите, некоторые из «дырок» были успешно закрыты. Кроме этого, Amazon были на голову выше Windows Azure в контексте IaaS, но теперь получилось так, что Windows Azure выросло сразу головы на полторы. Я очень надеюсь, что всё произошедшее приведет к бурному развитию всех облачных платформ и светлому будущему.
Спасибо за внимание. Далее я постараюсь раскрыть использование нововведений в Windows Azure подробнее.
Большинство изображений невозбранно украдены у Скотта Гатри, Скотта Хансельмана и др. Надеюсь, никто не обидится. :)
Немного ссылок
- Windows Azure SDK: https://www.windowsazure.com/en-us/develop/overview/
- Windows Azure Portal: http://windows.azure.com
- Как работать с веб-сайтами, виртуальными машинами и т.д.: http://www.meetwindowsazure.com/DigitalChalkTalks