Windows azure, покрокове керівництво для початківців

Вітаю всіх Хабра-користувачів в цьому скромненький топіку. Тут я спробую «на пальцях» пояснити, що ж таке Windows Azure і як писати під неї програми.

На написання статті мене підштовхнула наступна ситуація: вивчити щось Azure хочеться, але в інтернетах не вдалося знайти покрокового керівництва з поясненням принципів, що відбувається, тому довелося напружити мізки і розібратися самому, про що вам і розповім.

Інструменти для роботи:

Введення в Azure

І так, що ж таке Windows Azure? Якщо зовсім по-простому, то це операційна система. Таке визначення нас не влаштує, тому дивимося далі: що вона робить? А робить вона те, що надає ось таку ось хмарну платформу: www.windowsazure.com. Зовнішній вигляд веб-інтерфейсу приблизно такий:

Windows azure, покрокове керівництво для початківців

Суть платформи в тому, щоб надати деякі послуги в обмін на деяку суму грошей. і так, що ж це за послуги? Дивимося на скріншот і перераховуємо:

Все інше, що є на скріншоті - не описувати, так як не уявляю для чого це.

починаємо кодувати

Процедуру створення ролей в Azure пропущу, в ній немає нічого складного. Просто перерахую необхідне:

  • Cloud Service - одна штука
  • Storage - одна штука

Створювати вкрай бажано в одному регіоні.

Створення проекту в Visual Studio

Коли ми придумали, що робитимемо, потрібно це зробити. для початку запускаємо Visual Studio і йдемо в File - New - Project - Cloud - Windows Azure Cloud Service. Даємо будь-яке ім'я і тикаємо «Ок». Після того, як з'явиться віконце з тим, що повинна вміти роль, додайте їй тільки Worker Role (мова C #):

Windows azure, покрокове керівництво для початківців

Тиснемо «Ок» і створюємо проект. Коли проект створили, у нас є тільки Worker Role, тобто то, що працює постійно у фоновому режимі. Давайте додамо до неї веб-інтерфейс:

ПКМ на вирішенні - Add - New Project

Windows azure, покрокове керівництво для початківців

Web - ASP.NET Empty Web Application

Windows azure, покрокове керівництво для початківців

Як тільки був створений веб-інтерфейс, потрібно зв'язати його з Azure-проектом, для чого робимо наступні кроки:
ПКМ по папці Roles в проекті Azure - Add - Web Role Project in this Solution і вибираємо наш веб-інтерйейс:

Windows azure, покрокове керівництво для початківців

Подивимося що вийшло в результаті:

Windows azure, покрокове керівництво для початківців

  1. Налаштування WebRole, дозволяє налаштовувати рядки підключення, кінцеві точки та інше. Налаштування зберігаються в файлах 3 і 4
  2. Налаштування Worker Role, дозволяє робити те ж саме, що і пункт 1, тільки для фонової служби. Налаштування зберігаються там же.
  3. Зберігає настройки хмарного проекту для конфігурації Cloud (конфігурація використовується при розгортанні проекту в хмару)
  4. Зберігає настройки хмарного проекту лдя конфігурації Local (використовується при налагодженні на локальній машині в емуляторі windows Azure)
  5. Містить визначення всіх частин, що входять в хмарний проект (веб-інтерфейс і фонова служба).
  6. Вихідний код нашої служби

Для настройки тикаємо два рази ЛФМ на WebApplication1 в папці Roles, і зі списку Service Confoguration вибираємо All Configurations. Після цього тиснемо AddSetting, і даємо ім'я рядка DataConnectionString. після чого змінюємо її тип на ConnectionString:

Windows azure, покрокове керівництво для початківців

Тепер тиснемо кнопку з трьома крапками праворуч від нашої DataConnectionString. у вікні виберемо Windows Azure Storage Emulator і натискаємо «Ок»:

Windows azure, покрокове керівництво для початківців

Рядок підключення повинна змінитися на UseDevelopmentStorage = true. Всі перераховані вище дії виконуємо і для WorkerRole1.

Тепер необхідно визначити т.зв. кінцеві точки: точки, через які буде здійснюватися обмін даними в нашому проекті.

Для проекту WebApplication1

Для веб-інтерфейсу проекту необхідна як мінімум одна точка - для підключення до неї користувача. Друга точка буде використовуватися для обміну даними з фонової службою. Налаштовуємо точки відповідно до скріншотом:

Windows azure, покрокове керівництво для початківців

Трохи пояснень: точка з іменем Incoming - найголовніша. Саме через неї користувач буде заходити на веб-інтерфейс. Власне кажучи ім'я точки може бути будь-яким ...

Друга точка, UdpCheck. буде використовуватися для прийому даних від фонової служби, її тип Internal говорить про те, що вона доступна тільки всередині датацентру, відповідно трафік по цій точці не враховуватиметься білінгової системою.

Для проекту WorkerRole1

Для ролі робимо ті ж самі дії, тільки точка буде всього одна, Internal, тому що служба не буде взаємодіяти з потойбічним світом:

Windows azure, покрокове керівництво для початківців

Пишемо код служби

Відкриваємо файл WorkerRole.cs і міняємо в ньому код на нижченаведений. Код коментована, так що, думаю, проблемс розумінням суті проісходящено виникнути не повинно.

Пояснення: усипеніе потоку потрібно для того, щоб не перевантажувати марною роботою процесор. Так як процесорний час в Azure оплачується, то ця дія буде не зайвим.

Метод OnStart () ініціалізує службу, налаштовуючи її до того моменту, як вона починає працювати.

Метод Run () - сам робочий процес служби. Для служб в ньому зазвичай знаходиться нескінченний цикл, запитувач точки прийому даних.

Створюємо веб-інтерфейс

У проект WebApplication1 додаємо порожню веб-форму (ПКМ по проекту - Add - Web Form) і даємо їй ім'я Default.aspx, тому що в Azure все-таки працює IIS, то імена сторінок за замовчуванням регламентовані.

Міняємо HTML розмітку на ту, що вказана нижче:

Код форми (кнопка F7) змінюємо на цей:

От і все! Запускаємо наш проект по F5, в розпочатому веб-інтерфейсі тикаємо кнопочку «Отримати інформацію», чекаємо близько 10 секунд і бачимо результат.

Windows azure, покрокове керівництво для початківців

Публікація проекту в Azure

Налаштування досить проста, і полягає всього лише в додаткових налаштувань конфігурації (в нашому випадку налаштовується тільки DataConnectionString). Поїхали.

WindowsAzure1 - Roles - два рази ЛКМ по WebApplication1 - Settings - зі списку Cloud - кнопка з трьома крапками:

Windows azure, покрокове керівництво для початківців

Відкриваємо WorkerRole1 і робимо те ж саме для її DataConnectionString, тільки цього разу завантажувати профіль н потрібно, тому що настройки вже збережені в проекті. Досить просто вибрати подпсіку і ім'я ролі.

Зберігаємо зміни, тиснемо ПКМ на WindowsAzure1 і вибираємо Publish:

Windows azure, покрокове керівництво для початківців

У вікні вибираємо нашу підписку:

Windows azure, покрокове керівництво для початківців

Ставимо все як на скрині нижче:

Windows azure, покрокове керівництво для початківців

Дивимося сумарну інформацію і натискаємо Publish:

Windows azure, покрокове керівництво для початківців

azurelabr.cloudapp.net - додаток в Азур
Вихідні тексти програми не надаю, так як рядки доступу і ключі є унікальними для кожного користувача.

Написано за матеріалами MSDN і книги «Платформа Windows Azure», авт. Теджасві Редкар і Тоні Гвідічі, изд. «ДМК-прес».

Схожі статті