27 лютого 2011 р.

Welcome to Azure. «Hello, Azure»!

Интересно то, что как только я начал писать аб Azure многие начали кричать что теоретические знания - фигня, а надо практические. А ажура нету у нас в стране, и вообще:) Вообще все это выглядит как lame excuses:)


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


Зачем кодить под эмулятор?
Честно скажу - как работает на эмуляторе, и как работает на клауде - разные вещи. Особенно если эмулятор крутиться на той же машине :) Хотя механизм разработки - один и тот же для обоих вариантов.
Эм, клауды очень активно входят в нашу жизнь! Через несколько лет - любое программирование будет расчитанно на то что Ваши приложения можна будет использовать хоть на клаудах, хоть минимум на веб фермах. Лучше готовится к этом сейчас, чем когда придет время начинать учиться :) Так что , хочеш мира - готовся к войне.


Вступительное слово на этом будем считать оконченным:) Теперь вперед к созданию нашего первого приложения!
Для начала хочу Вас обрадывать - если Выкогда нибудь создавлаи приложение ASP.Net, ты Вам нехватало всего лишь процентов 10 чтобы запустить его на клаудах:) Вероятнее всего - любое приложение можна запустить на клаудах, и это отлично:) Но дорого. Помните - мы платим за то что мы используем. Приложение которое оптимизированно для клауда - может делать тоже самое что и Ваше приложение, но при этом стоить в несколько раз дешевле. В будущем я попытаюсь написать цикл статей которые будут рассказывать о том как программировать приложение именно для облачных сервисов. Как сказал, один из тренеров по Azure :" Ажур, клевая система , хоть и дорогая - зато учит писать клевый код".
Так что, чем не мотивация?:)


Итак, что нам необходимо для начала разработки под Azure:
1. Visual Studio 2010
2. Windows 7, 2008
3. Azure SDK. Скачать можно тут: http://www.microsoft.com/windowsazure/getstarted/default.aspx


Ну вот мы собственно и вооружены, и готовы принять бой.
После установки SDK дополнительно устанавливаются такие аппликации:


Compute Emulator - это эмулятор Azure Compute Services. Собственно та часть Ажура где будут крутится сервисы, сайты, и тп.


Storage Emulator - эмулятор сторадж сервисов. С помощью этого эмулятора Вы можете пользовать Queue, Blobs, Tables на своем компьютере.


С SDK конечно же поставляются и темплейты для проектов Visual Studio.



ASP .NET Web Role - тип веб роли для веб сайтов написанных на ASP.Net
ASP .NET MVC 2.0 Web Role - тип веб роли для веб сайтов написанных на ASP.NET MVC 2.0
WCF Service Web Role - тип веб роли для WCF сервисов
Worker Role - тип проекта для воркеров
CGI Web Role - превед похапе:)


Как я уже говорил работа приложения на эмуляторе и на реальном клауде - очень отличается. Потому нашел небольшую табличку которая описывает различия:


Feature Local Environment Cloud Environment
Storage environment
access
The local storage environment uses
a special account key for access.
This will be different from your
cloud key.
Storage environment
access
The local storage does not support
the use of HTTPS.
Cloud storage supports both HTTP
and HTTPS.
Storage performance The performance of the local storage
is not representative of cloud
storage. It is only meant for a few local connections, nothing more.
The performance of the cloud
based storage should be expected
to be much faster
URI management Because of the lack of the Azure
DNS system locally, storage URI's
are different in the local
environment.
URI’s are based on Azure DNS
system.
Storage management The local storage subsystem will not
provide extended error information.
Cloud storage provides extended
error information.
Blob storage Blobs in the local store are limited to
2GB in size.
BLOBs in the cloud can be as big
as 50GB.
Table authentication Local tables only use Shared Key
Lite authentication.
Uses Shared Key and Shared Key
Lite authentication.

Вот такая табличка вышла:)


Ну, че, погнали создавать новый проект?


Как и все новые проекты Visual Studio - все начинается с создания нового проекта:)


После установки SDK в проектах у нас появилась такая штука как Cloud, где есть только один тип проекта: Windows Azure Project.


После выбора этого проекта, Вы увидите табличку про которую я писал раньше. Чтобы долго не парится, давайте выберем ASP .Net Web Role. Если её перетянуть в колонку справа - есть супер фича - переименовать:) Называем проект так как нам удобно.


После того как мы создали проект, мы должны увдиеть что-то вроде этого:



Давайте разберем структуру новосозданного проекта:
TestApplication1 - обычная ASP .Net аппликация, ничем не примечательна.
WindowsAzureProject1 - вот тут интересней, это апплкация , которая знает про все веб и воркер роли в проекте. Именно через нее мы можем создавать пекеджи для Ажура, конфигурировать и ещё много всяких вкусностей про которые я ещё поговорю:)


Я думаю, что не буду писать много , как написать простейшее приложение на ASP.Net , потому запустим пустой сайт. Просто чтобы посмотреть что ж творится потом.


Итак, вы увидите, что сайт запустился на отлично, так же в правом углу запестились Compute emulator и Storage Emulator.


Как Ажур знает о том какая конфигурация нашей аппликации?
Если посмотреть в проект Azure, вы увидите два конфигурационных файла:
ServiceConfiguration.cscfg - этот файл поределяет конфигурацию Вашего сервиса, и как им будет управлять Azure. Например, там указывается количество веб ролей, для каждой специфической веб роли ( понимаю, что звучит глупо, но так и есть. Вы задаете сколько виртуахльных машин поднять для заданной веб роли.) Если открыть этот файл, то мы увидим что это обычный XML. Диву даюсь, как люди раньше жили без XML:)


ServiceDefinition.csdef - определяет какие сервисы, являются частью вашей аппликации, и если есть енд поинты, то ихнюю конфигурацию.


Когда мы запустили аппликацию, то можна увидеть, что вместе с ниё дополнительно запустилась консоль эмулятора:




Для начала , давайте покажем UI Storage сервисов.



Здесь мы видим все возможные сервисы хранилищ которые можна сэмулировать, и собственно ихние аддреса. На использование этих сервисом мы остановимся позже, пока хватает то, что мы знаем что они есть!


Compute Emulator UI. Think it Geek way!:) Ведь действительно выглядит по-гиковски!


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


Для того чтобы начать деплоймент процесс ваше аппликации на ажур, следует всего лиш кликнуть правой кнопкой на проект Ажура, и выбрать меню Publish. Тут вы можете выбрать две опции:
а. Создать обычный паблиш пакет(Create Service Package Only ). Эта опция будет Вами использована скорее всего только в первый раз. Если выбрать этот пункт, и нажать Ok - откроется папка с двумя фйлами: пекеджом и его конфигурационным файлом, а так же веб портал, на котором вы сможете загрузить ваш пакет, и разместить Ваше приложение на Ажуре.


б. Deploy your Windows Azure project to Windows Azure. Вот это один из самых интересных пунктов меню - с помощью него вы можете загружать свой сервис напрямую через Visual Studio. Причем загружать вы его можете не только сразу на Compute сервисы, но и на сервисы хранения информации. В будущем я более детально остановлюсь на этом, потому как уж больно вкусно это звучит!


Отдельно мне бы хотелось остановится на логировании. Как я уже сказал, то что работает на эмуляторе - будет слегка по другому работать когда захощщенно на Ажуре. Собственно дебагером вы подключиться к коду который крутится в облаках тоже не сможете. Разработчики Ажура не оставили нас, и потому у Ажура есть очень полное АПИ для диагностики. С помощью него вы сможете собирать метрики IIS, Windows Events. Хранить же их можно в любом сервисе хранения данных - это может быть сохранение этих данных в таблицах, и архивация их в блобы:) Вообщем Вы можете фантазировать:)


Полезные ссылки:
http://www.microsoft.com/windowsazure/windowsazure/default.aspx - что такое, и с чем едят, и как использовать Compute сервисы


http://www.microsoft.com/windowsazure/storage/default.aspx - описание сервисов хранения данных в Windows Azure.


http://www.microsoft.com/windowsazure/pricing/ - цены на сервисы.
Кстати, если у Вас есть друзья в Америке, или в любой стране где есть Azure, или может кредитная карточка той страны в которой есть Ажур - сейчас стартует интересная акция - бесплатный Azure до июня:
Sign-up Now For the Free Windows Azure Platform Trial till June 30th, 2011.
Sign-up now to get free access to the following Windows Azure platform resources:


Compute:


  • 750 hours of an Extra Small Compute Instance
  • 25 hours of a Small Compute Instance

Storage:


  • 500MB
  • 10k Storage transactions

Data Transfers:


  • 500MB in / 500MB out

Relational Database:


  • 1G Web Edition SQL Azure database (for 90 days only)

AppFabric Access Control transactions:


  • 100k

AppFabric Service Bus connections:


  • 2

Больше информации Вы можете найти тут: http://www.microsoft.com/windowsazure/free-trial/default.aspx


http://www.ditii.com/2010/09/03/windows-azure-compute-service-level-agreement-sla/ - Windows Azure Compute Service Level Agreement (SLA). На самом деле очень важный документ, который описывает что Вам гарантирует Azure. Допустим если Вы ожидаете что Ваш сайт - сервис будет доступен в теченеии 99.95% времени, стоит обратить внимание что Вы должны использовать как минимум 2 веб роли.


http://www.microsoft.com/web/platform/phponwindows.aspx?templang=ru-ru - очень интересные компоненты которые позволяют раскручивать решения на PHP. Особенно мне понравилось как об этом написанно на сайте Микрософта, цитирую:


"Да, PHP также работает на Windows Azure, и Microsoft сотрудничает с сообществом в разработке инструментов и SDKs, чтобы облекчить жизнь PHP-разработчикам."


Тут приводится достаточно инетерсный список компонент, среди которых:


Хранилище Windows Azure для WordPress - использование сервисов хранилища Azure, для своих медиа объектов для Wordpress. Собствено, мне кажется об этом стоит задуматься, потому как сервисы хранения в Azure - дешевые как борщ.



PHP-примеры для Windows Azure - а куда без примеров?



Windows Azure AppFabric SDK для PHP - SDK которое позволяет конектится к Azure Service Bus с PHP.



Windows Azure SDK для PHP - используем возможности Azure Compute и Azure Storage Services в своем PHP приложении



Это я просто не мог обойти стороной:


Средства командной строки Windows Azure для PHP - красноглазие вперед! Собственно то что в Visual Studio можна сделать с помощью мышки ( по честняку, в винде все делается точно так же, просто обернуто в красивую упаковку:) ), тут делается через коммандную строку. Хотя думаю ненадолго, и скоро ( а может быть уже ) появятся плагины. Эту штука для создание пакетов для Ажура с Вашим PHP приложением.





На этом на сегодня все! Дальше будет интереснее!

1 коментар:

  1. Я так розумію, що Ви один мій коментар до першої статті назвали "многие начали кричать" :)
    Ну це я так написав, до слова...просто прикро, що Україна знову серед африканських країн і що ми розглядаємось лише як джерело дешевої девелоперської сили.
    На рахунок Ажур, то так...можна нормально девелопити локально. Що і робимо :)

    ВідповістиВидалити