Опубликован: 28.01.2014 | Уровень: для всех | Доступ: свободно
Лекция 3:

Быстрый старт в облаке с Windows Azure Web Sites

Аннотация: Использование сервиса Windows Azure Web Sites, описание сценария простого веб-сайта ASP.NET MVC 4, который необходимо развернуть в облако и в дальнейшем производить его масштабирование.

Windows Azure Web Sites являются базовым сервисом платформы Windows Azure, который предоставляет среду для размещения веб-сайтов в облаке с использованием знакомых средств разработки и развертывания. Конечно, есть возможность размещения веб-сайтов с помощью сервисов Windows Azure, реализующих модели IaaS (Virtual Machines) или PaaS (Cloud Services). Для облачных сервисов, как правило, требуется редизайн архитектуры и внесение соответствующих изменений в программный код. Если разработчик использует Virtual Machines, то возникает противоположная ситуация – нет необходимости менять архитектуру приложения, но на разработчика ложится другая задача – задача управления виртуальной инфраструктурой. Поэтому использование сервиса, воплотившего в себя простоту и мощь IaaS и PaaS, может быть обосновано, если планируется разворачивать в облаке простое двухслойное приложение.

Характерными преимуществами Windows Azure Web Sites для простых проектов является скорость развертывания (создание и развертывание веб-сайта занимает меньше минуты, так как уже используется готовая преднастроенная виртуальная машина), поддержка партнерских предложений (на портале управления при создании веб-сайта доступна целая галерея партнерских предложений, например, развертывание веб-сайта из шаблона Joomla или Wordpress), простота и скорость различных методов развертывания – Windows Azure Web Sites поддерживает развертывание с помощью FTP, Web Deploy, Team Foundation Services, DropBox, Mercurial, Git, при этом доступны опции "отката" на предыдущих версии развертывания.

Разработчику, использующему Windows Azure Web Sites, не требуется изучать никаких новых технологий – последовательность шагов для развертывания с помощью, например, Web Deploy из Visual Studio, в Windows Azure Web Sites ничем не отличается от развертывания на локальный IIS или IIS, размещенный на сервере разработки.

Windows Azure Web Sites реализуют модель SaaS, когда пользователю предоставляется сервис (в случае Windows Azure Web Sites это облачная инфраструктура на основе IIS), которым он пользуется и при необходимости проводит настройку под свои нужды. Веб-сайты можно разрабатывать на ASP.NET, Node.js или PHP (либо CMS – WebMatrix, Joomla, Drupal, WordPress, DotNetNuke, Umbraco и др.). При этом первичное использование бесплатно, далее же веб-сайты могут быть масштабированы согласно потребностям пользователя. Для доступа к управлению Web-сайтами возможно использовать инструментарий командной строки для Windows, Mac, Linux.

Использование Windows Azure Web Sites возможно в трех режимах:

  • Free (бесплатный), в котором веб-сайты работают вместе с веб-сайтами других пользователей облачного сервиса. Бесплатный режим налагает жесткие ограничения на использование CPU, оперативной памяти и исходящий трафик, который ограничен 165 мегабайт в день. Входящий трафик неограничен.
  • Shared (разделяемый), в котором веб-сайты работают вместе с веб-сайтами других пользователей. Разделяемый режим налагает ограничение в 1 гигабайт хранилища. Количество исходящего трафика не учитывается. Сайты в разделяемом режиме могут быть настроены с собственным доменным именем. Данный режим является условно бесплатным до определенного порога использования, но имеет свои недостатки – поскольку мощности разделяются между многими пользователями, этот режим не имеет смысла использовать для серьёзных веб-сайтов, которые могут испытывать большую нагрузку.
  • Standard (стандартный). В стандартном режиме веб-сайты гарантированно работают на изолированных ресурсах с использованием отдельных виртуальных машин, что позволяет гарантировать то, что пользователя не будут использовать одни и те же ресурсы в один момент времени. Веб-сайт, настроенный в режиме Standard, предоставляет наибольшую функциональность – при настройке веб-сайта в этом режиме пользователь может указать размер виртуальной машины, которая будет обслуживать веб-сайт, после чего при необходимости масштабировать его, и количество экземпляров этой виртуальной машины для осуществления балансировки нагрузки и устойчивости к ошибкам. Режим Standard является платным и предоставляет отдельные мощности для веб-сайта, не находящиеся в общеиспользуемом пуле ресурсов.

Веб-сайты в Windows Azure Web Sites могут быть созданы одним из трех способов:

  1. Быстрое создание (Quick Create)

    Для того, чтобы использовать способ быстрого создания, достаточно на портале управления Windows Azure нажать New=>Compute=>Web Site=>Quick Create. Таким образом будет создан стандартный веб-сайт, на который можно развернуть любым из поддерживаемых методов развертывания разрабатываемый проект.

  2. Настраиваемое создание (Custom Create)

    Разработчик может создавать веб-сайты, проводя дополнительные настройки еще на стадии создания веб-сайта. Способ Custom Create позволяет настроить, необходимо ли настраивать новую базу данных для веб-сайта или использовать уже существующую при создании веб-сайта. Также есть возможность выбора, будет ли эта база данных MySQL либо Windows Azure SQL Database, и будет ли использоваться для создаваемого веб-сайта система контроля версий. Сервис БД MySQL предоставляется партнером Microsoft ClearDB, поэтому при выборе этой опции предлагается принять соглашения ClearDB.

  3. Создание с помощью шаблона из галереи (From Gallery)

    Третий способ создания веб-сайта – это создание на основе шаблона из галереи шаблонов на портале управления Windows Azure. Шаблоны в галерее разделены на вкладки, названные по основной функциональности, которую несет в себе преднастроенный шаблон.

Создание сайта из шаблона

увеличить изображение
Рис. 3.1. Создание сайта из шаблона

Необходимо учитывать, что, если для создания веб-сайта используется шаблон из галереи, например, Wordpress, и не создается база данных, но используется старая база, которая уже использовалась ранее другим блогом, то возникнет информационное пересечение – созданный блог будет автоматически настроен и наполнен информацией, что может быть полезным в сценарии миграции.

Файловая система Windows Azure Web Sites основана на базе сервиса блобов хранилища Windows Azure, поэтому все данные, используемые веб-сайтом, реплицируются в три экземпляра, как и все другие сущности внутри хранилища Windows Azure.

Дополнительную же меру безопасности для веб-сайта в Windows Azure можно обеспечить, настроив блокировку IP-адресов. Это реализуется с помощью специального модуля Dynamic IP Restrictions для IIS 8. Динамическая блокировка IP-адресов предоставляет возможность блокировки IP-адресов на основе количества параллельных запросов либо количества запросов в течении определенного периода. Таким образом, настроив динамическую блокировку IP-адресов, можно реализовать дополнительный уровень защиты от атак, ориентированных на отказ в сервисе. Разработчик может включить использование этого модуля, внеся соответствующие изменения в файл web.config веб-сайта:

<system.webServer>
  <security>
    <dynamicIpSecurity>
      <denyByConcurrentRequests enabled="true" maxConcurrentRequests="10"/>
    </dynamicIpSecurity>
  </security>
</system.webServer>

После активации изменений IIS будет автоматически блокировать IP-адреса, когда с них будет приходить количество параллельных запросов, указанное в настройке. Аналогично настраивается динамическая блокировка IP-адресов на основе максимального количества запросов, произведенных в течении одного периода времени:

<dynamicIpSecurity>
  <denyByRequestRate enabled="true" maxRequests="10" requestIntervalInMiliseconds="2000" />
</dynamicIpSecurity>

В особых случаях может появиться необходимость в использовании обоих типов блокировки:

<dynamicIpSecurity>
    <denyByConcurrentRequests enabled="true" maxConcurrentRequests="10"/>
    <denyByRequestRate enabled="true" maxRequests="10" requestIntervalInMiliseconds="2000" />
    </dynamicIpSecurity>

Необходимо уточнить, что адреса блокируются до наступления следующего периода. Для того, чтобы во время блокировки отправить HTTP-ответ, разработчик может добавить специальный атрибут denyAction:

<dynamicIpSecurity denyAction="NotFound | AbortRequest | Unauthorized | Forbidden" >
  <denyByRequestRate enabled="true" maxRequests="10" requestIntervalInMiliseconds="2000" />
</dynamicIpSecurity>

Масштабирование веб-сайта в облаке

Каждый веб-сайт в Windows Azure имеет панель администрирования Dashboard, в которой можно получить различную информацию о веб-сайте: метрики, загрузку, URL, расположение в датацентре, а также выполнить различные действия: остановку или запуск веб-сайта, удаление, переход на веб-сайт, масштабирование веб-сайта и так далее. C июля 2013 года для Windows Azure Web Sites, находящихся в режиме Standard, доступна опция автоматического масштабирования на основе параметра нагрузки на CPU. Используя панель управления сайтом на портале управления Windows Azure, разработчик должен задать так называемые цели масштабирования, определяемые минимальным и максимальным значением нагрузки CPU, при которых будет инициирован процесс масштабирования. Разработчик может также ограничить количество автоматически выделяемых экземпляров, указав минимальное и максимальное их количество.

Например, если разработчик устанавливает минимальное значение цели масштабирования в 10%, а максимальный в 85%, то платформа начнет выделять и автоматически настраивать дополнительные экземпляры тогда, когда нагрузка на CPU превысит 85%, и удалять экземпляры, когда нагрузка будет ниже 10%.

Панель администрирования

увеличить изображение
Рис. 3.2. Панель администрирования
Руслан Муравьев
Руслан Муравьев

Сайт dreamspark пишет что код истек :(

Andriy Zymenko
Andriy Zymenko

Этот курс требует оновления https://portal.azure.com/#create/hub здесь нет пункта Web Site в разделе Compute. К тому же для создание трубуется подписка

Дмитрий Матвеев
Дмитрий Матвеев
Россия, Москва, 1100, 2009