Microsoft Windows Azure

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

Показывать лекцию целиком

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 могут быть созданы одним из трех способов:

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

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

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

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

  • Создание с помощью шаблона из галереи (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) Панель администрирования

    Резервирование веб-сайта

    Для резервирования уже развернутых Web-сайтов и их содержимого существует сторонний сервис Cloud Cellar, доступный по адресу https://www.getcloudcellar.com/.

    С помощью сервиса Cloud Cellar разработчик получает бесплатную возможность резервировать 2 Web-сайта, 2 базы данных (SQL Azure Databases либо MySQL), 2 аккаунта хранилища. Для более гибких настроек сервис предоставляет платные подписки.

    Для того, чтобы получить доступ к функциональности Cloud Cellar, после создания аккаунта необходимо нажать Backup Azure Web Site и загрузить на сайт профиль публикации соответствующего Web-сайта, который можно получить с портала управления Windows Azure.

    (рис 3.3) Профиль публикации соответствующего Web-сайта (рис 3.4) Профиль публикации соответствующего Web-сайта

    Загрузив профиль публикации и таким образом указав сервису на тот Web-сайт, который необходимо резервировать, следующим шагом идет настройка хранилища, в которое будет резервироваться содержимое сайта. Пользователю доступно две опции – хранилище Cloud Cellar и собственное хранилище в Windows Azure.

    (рис 3.5) Выбор хранилища

    После выбора хранилища необходимо настроить периодичность резервирования.

    (рис 3.6) Передичность резервирования

    Последним шагом настройки резервирования с помощью Cloud Cellar является выбор тех частей сайта, которые необходимо резервировать – это может быть содержимое сайта или содержимое базы данных, ассоциированной с сайтом.

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

    (рис 3.7) Статус резервирования на панели управления сервисом

    Заключение

    Частым вопросом является "где разместить мой веб-сайт?". Облако не является конкурентом хостинговым провайдерам, если искать ответ на этот вопрос с позиции более низкой цены, но возможности, предоставляемые облаком (автомасштабирование, самообслуживание, балансировка нагрузки, высокие SLA), позволяют рассматривать Windows Azure как возможное место для развертывания корпоративных веб-сайтов.

    Вернуться к учебному плану