Краткое сравнение Microsoft Azure Web Sites/Cloud Services/Virtual Machines
По мере того, как ваш проект, развернутый в Microsoft Azure как веб-сайт, разрастается, соответственно увеличивается потребность в ресурсах и степени контроля. В то время, как веб-сайты являются новой функциональностью платформы, в Microsoft Azure доступен ещё один вариант развертывания приложения – с использованием Worker-ролей и Web-ролей – называющийся Cloud Services.
Для того, чтобы решить, когда переходить с веб-сайтов на Cloud Services, необходимо провести сравнительный анализ их функциональности.
Web Sites |
Cloud Services |
Virtual Machines |
|
Модель использования |
SaaS |
PaaS |
IaaS |
Тип приложений |
Веб-сайты отлично подходят для размещения веб-приложений, состоящих из клиентской разметки и какой-либо обработки на стороне сервера. Можно масштабировать весь сервис, но не часть его. |
Многослойные приложения, каждый слой которых необходимо масштабировать отдельно от других. Например, в момент большой нагрузки можно масштабировать только обработчик на стороне сервера, конвертирующий видеофайлы, но оставить количество экземпляров для веб-интерфейса. |
Сложные серверные приложения – например, SQL Server, Sharepoint Server. Приложения, которым необходимо сохранение состояния (stateful), организация ферм серверов, legacy-приложения. |
Модель развертывания |
· Quick Create – создание пустого сайта, · Quick Create with Database – создание пустого сайта и ассоциированной с ним базы данных MySQL/Windows Azure SQL Database, · Using the Gallery – создание сайта из подготовленного образа галереи образов Windows Azure Web Sites |
· Web-роль – слой приложения, выполняющий роль веб-интерфейса, взаимодействующего с пользователем, · Worker-роль – слой приложения, выполняющий роль обработчика данных. |
Виртуальная машина. |
Сложность миграции существующего приложения |
Низкая. Существующее веб-приложение можно мигрировать в Web Sites без изменений. |
Средняя/высокая. В зависимости от ситуации может быть необходимо переосмысление архитектуры существующего приложения для эффективного разделения на Web/Worker-роли. |
Низкая. Любое существующее приложение может быть мигрировано в составе подготовленного образа. |
Администрирование |
Низкая степень контроля – масштабирование сервиса, сервисы FTP, Team Foundation Services, Git. Запуск веб-сайта (например, WordPress или Drupal) можно осуществить в несколько кликов мышкой. |
Средняя степень контроля – администраторский доступ, доступ по удаленному рабочему столу RDP к экземплярам ролей, запуск кода с повышенными правами, start-up задачи. Возможна автоматизация администрирования. |
Высокая степень контроля – пользователь самостоятельно подготавливает, загружает и обслуживает образ системы. |
Возможность развертывания приложений с использованием Git/FTP |
Да |
Да |
- |
Поддержка дополнительных сервисов платформы |
Caching, Service Bus, SQL Azure Database, CDN, Traffic Management |
Caching, Service Bus, SQL Azure Database, CDN, Traffic Management, Azure Network |
- |
Поддержка распространенных языков программирования |
IIS-совместимые технологии, ASP.NET, ASP, Node.js, PHP, Python |
IIS-совместимые технологии, ASP.NET, ASP, Node.js, PHP |
- |
Поддержка MySQL |
Встроенная, с использованием портала управления |
Есть, но с использованием ClearDB. На портале управления интегрировать сервис с MySQL нельзя. |
- |
Ячейки развертывания (тестовая, production) |
Нет |
Да |
- |
Доступ по RDP |
Нет |
Да |
- |
Возможность интеграции сторонних фреймворков |
Нет |
Да |
- |
Ориентировочное время развертывания |
Около минуты. |
5-10 минут. |
10-20 минут (+ задержка, связанная со скоростью интернет-подключения) |
ОС |
Windows Server |
Windows Server |
Windows Server/Linux |
SLA |
99.95% |
99.95% |
99.95% |
Резюме:
Выбирайте Web Sites, если ваш веб-сайт не требует сложного администрирования платформы, если вам необходим только IIS и то, что веб-сайт будет до момента перевода в режим Reserved выполняться в одном виртуальном (но изолированном) пространстве вместе с веб-сайтами других пользователей.
Выбирайте Cloud Apps, если у вас веб-сайт или приложение, которое требует определенных задач по автоматизации, администрированию и дальнейшему обслуживанию. По умолчанию работает на собственном, изолированном от других пользователей, оборудовании.
Выбирайте Virtual Machines, если хотите иметь полный контроль над своими приложениями любой сложности, в том числе теми, адаптировать которые под «облако» не представляется возможным.