Обновленный облачный сервис Azure Web Sites для размещения сайтов PHP, Java, .NET, Node.js и Python

Это статья является дополнением и продолжением статьи Единая облачная PaaS-платформа для ASP.NET, PHP, Node.js и Python. С момента написания предыдущего материала сервис Azure Web Sites значительно обновился и его возможности расширились сразу во многих направлениях. Об этих изменениях и пойдет речь в данной статье.

Далее рассматриваются следующие функциональные возможности:

  • поддержка проектов на Java;
  • интеграция с онлайн-редактором Visual Studio Online “Monaco”;
  • функция создания резервных копий сайта;
  • дополнительные развертывания сайтов, стейджинг и другие окружения;   
  • выполнение фоновых задач на базе скриптов, кода python, .net, php или node.js;
  • удаленная отладка размещенных сайтов;
  • поддержка wildcard доменов и бесплатные SSL;
  • функция AlwaysOn и поддержка web-сокетов;
  • администрирование, Kudu, доступ по IP, управление с помощью Azure Management Libraries;   
  • новое ценообразование Azure Web Sites.

Рассмотрим каждую из новых функций более подробно.

Что такое Azure Web Sites?

Для тех, кто не читал предыдущей статьи с описанием возможностей Azure Web Sites перечислим кратко эти возможности:

Azure Web Sites – готовая платформа для хостинга ваших приложений (PaaS). Поддерживаются проекты на базе .NET, PHP, Node.js, Python, Java с предоставлением для каждой из платформ opensource SDK.

Платформа интегрируется с системами контроля версий: Git, TFS, Visual Studio Online, BitBucket, GitHub, Codeplex, Dropbox предлагая разработчикам функции непрерывной интеграции и размещения кода.

Платформа предлагает набор CMS и фреймворков от WordPres и Drupal до Django и DotNetNuke готовых к развертыванию из галереи шаблонов.

Являясь PaaS-платформой Azure Web Sites берет на себя все задачи по управлению и обновлению ОС, БД, средами исполнения, в том числе задачи балансировки нагрузки между несколькими размещенными экземплярами вашего кода.

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

Платформа имеет доступ ко всем другим сервисам Microsoft Azure. что позволяет расширять возможности ваших сайтов за счет большого числа облачных инструментов: идентификации, блобов, таблиц, big data, аналитики, служб обмена сообщениями и другими.

Портал Azure Web Sites и платформа предлагают богатые средства администрирования, диагностики сайтов и мониторинга.

Все эти возможности доступны пользователям по первому запросу в течении нескольких секунд. При этом базовый тариф Azure Web Sites бесплатен, что позволяет начать разрабатывать или прототипировать сайты бесплатно, масштабируя их по мере требования без внесения каких-либо изменений в код.

Далее идет описание новых возможностей, которые появились у платформы за последние полгода.

Поддержка проектов на Java

В дополнение к поддержке размещения PHP, Node.js, .NET и Python стала доступна поддержка кода на языке Java.

Разработчики могут размещать как 32-битный так и 64-битный код на Java 7 (настраивается через файл конфигурации) и выбирать между предлагаемыми по умолчанию серверами Tomcat или Jetty. Вместе с этим, разработчик может загрузить свою собственную версию Java (в том числе 6 или 8) или свой собственный сервер приложений на выбор.

В настоящее время существую следующие ограничения поддержки Java на Azure Web Sites: приложения могут слушать только HTTP(S)-траффик, нет поддержки обмена сообщений JMX или JMS, нет поддержки удаленной отладки JDWP или JDI,

Несколько вводных статей на тему размещения Java-проектов в Azure Web Sites можно найти на официальном портале.

Интеграция с Visual Studio Online “Monaco”

С выходом в тестирование нового визуального онлайн-редактора Visual Studio Online “Monaco” появилась возможность редактировать размещенные веб-сайты Azure Web Sites прямо в браузере.

Для получения доступа к коду сайта через веб-редактор необходимо включить соответствующую настройку в параметрах вашего Azure Web Sites.

image

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

При переходе на страницу редактора Monaco вы сможете управлять Git-репозиторием кода, если он есть или создать его, если его еще нет.

Для управления Git и другими функциями разработчикам доступна встроенная консоль администрирования:

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

Одной из возможностей редактора кода является мгновенное применение изменений без необходимости сохранять изменения явно. Другой возможностью является работа с Git-репозиторием (git push):

Использование Monaco может быть очень удобным способом для доступа к коду сайта и возможности быстро внести изменения из любого браузера на любой ОС или платформе.

Функция создания резервных копий сайта

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

image

Разработчикам предлагается возможность выбрать место (учетную запись хранилища) для сохранения резервных копий, частоту создания копии в день, дату с которой следует начать создание бэкапов и базы данных, которые необходимо включить в резервную копию.

Стейджинг и другие дополнительные развертывания

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

image

Дополнительные развертывания кода предназначены для тестирования и обкатки кода в реальном облачном окружении с возможностью быстрой смены продакшн-развертывания на любое из дополнительных и обратно.

image

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

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

image image

Некоторые подробности использования стейджинг-окружений, в том числе управление через команды командной строки и PowerShell можно узнать из этой статьи.

Выполнение фоновых задач (Web Jobs)

Кроме выполнения основного кода размещенного веб-приложения, Azure Web Sites имеют возможность исполнять фоновые задачи (Web Jobs) по запросу, по расписанию или непрерывно. Исполняться могут скрипты командной строки или Python, код на базе PHP или Node.js, а так же любой код приложения на .NET или Win32, который может быть запущен в Windows Server (файлы с расширениями *.exe *.cmd *.bat *.sh *.php *.py *.js).

Веб-задания могут быть особенно полезны для выполнения фоновых задач для сайтов, которые не нагружены на 100% и имеют возможность выделить часть ресурсов на дополнительные задачи. Например, сайт может иметь веб-задачу для обработки загруженных пользователями сообщения. Этим разработчик не только утилизирует неиспользуемые мощности своего сайта, но и экономит средства на облачных мощностях, так как ему не приходится создавать для задачи обработки изображений отдельную рабочую роль.

Добавить новое веб-задание в Azure Web Sites очень просто через портал управления:

image Schedule Particular Week Days on Particular Weeks in a Month

Задачи могут выполняться по требованию, по расписанию или непрерывно в зависимости от их назначения. Размещение веб-задания может быть удобно интегрировано в процесс публикации веб-сайта из Visual Studio. Для этой цели предназначено расширение WebJobsVS:

image

После его установки разработчик может использовать новую функцию настройки веб-проекта в Solution Explorer:

image

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

image

Особенную пользу для разработчиков, которые желают использовать веб-задачи может принести пакет инструментов Azure WebJobs SDK, Вы можете установить его с помощью команды Nuget:

Install-Package Microsoft.WindowsAzure.Jobs.Host –pre

Установленная библиотека позволит вам использовать дополнительные возможности по интеграции кода веб-задачи с облачным окружением, например, с очередями или блобами хранилища Azure Storage.

image

Например, код выше использует специальные атрибуты, которые позволяют сопоставить входные параметры фоновой задачи с определенными очередями и контейнерами блобов в хранилище Azure. Эти возможности WebJobs SDK позволяют разработчику очень быстро построить консольное приложение, которое будет обрабатывать данные на основе очереди сообщений и складывать результаты в определенный контейнер хранилища. При этом все действия по передаче данных, выборке из очереди и сохранению результатов возьмут на себя инструменты SDK.

Дополнительная информация:

Подробности использования Azure WebJobs SDK можно найти в статье Getting Started with the Azure WebJobs SDK.

Удаленная отладка

Богатые возможности работы с Azure Web Sites из Visual Studio пополнены функцией удаленной отладки размещенного в облаке кода, как в продакшн-окружении, так и в любом из дополнительных стейджинг-окружений.

Из соображений безопасности удаленная отладка должна быть явно включена в панели администрирования сайтом, по этой же причине после включения функция остается работающей только на 48 часов:

image

После включения удаленной отладки для веб-сайта вы можете подключаться отладчиком к сайту в облаке напрямую из Visual Studio:

image

Возможность отладки кода в рабочем облачном окружении – очень мощный инструмент. Дополнительную силу ему придает функция стейджинг-окружений Web Sites, что позволяет отлаживать в реальном облачном окружении стейджинг-код без влияния на работу сайта в продакшне.

Поддержка wildcard доменов и бесплатные SSL-сертификаты

Теперь пользователи стандартной редакции Web Sites получают бесплатную возможность включить поддержку SSL-режима для своих веб-приложений. Пользователи могут рассчитывать на один бесплатный IP-адрес и 5 SNI.

Кроме того в Azure Web Sites была представлено поддержка wildcard-доменов, что позволяет привязать к сайту домен и обращаться к нему через домены более высокого уровня.

Подробности о поддержке и настройке использования wildcard-доменов можно найти в этой статье.

Функция AlwaysOn

Новая функция Web Sites под названием Always On позволяет поддерживать размещенной веб-приложение в активном запущенном состоянии.

image

После включения этой функции Windows Azure будет периодически пинговать ваш сайт для того, чтобы он не выключался или не засыпал и всегда был “прогретым”.

Поддержка web-сокетов

Технология веб-сокетов позволяет веб-приложениям в браузере обмениваться с серверным бэкендом данными в реальном времени. Поддержка веб-сокетов была добавлена в Windows Server 2012, чуть ранее она была доступна облачным службам Windows Azure. Теперь веб-приложения размещенные в Windows Azure Web Sites так же получили возможность использования веб-сокетов.

image

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

Администрирование

Несколько новых функций администрирования Azure Web Sites включают в себя настройку доступа к сайтам по IP-адреса и расширенную панель управления сайтами – Kudu.

Ограничение доступа по IP 

Для веб-сайтов Windows Azure Web Sites включена возможность использовать функции IP and Domain Restrictions сервера IIS. Эти дополнительные настройки могут быть использованы совместно с представленной ранее функцией Dynamic IP address restriction (DIPR).

Теперь разработчики могут ограничивать или предоставлять доступ к сайтам с помощью указания набора или диапазона определенных IP-адресов. Подробное описание этой функции сервера IIS можно найти тут.

Встроенная панель администрирования Kudu

Для каждого веб-сайта запущенного в Azure Web Sites есть панель управления Kudu, которая позволяет легко управлять рядом параметров сайта, получать диагностическую информацию и логи. Вы можете обратиться к панели Kudu через адрес https://ВАШСАЙТ.scm.azurewebsites.net/.

image

В недавнем обновлении Kudu была представлена новая возможность просмотра и управления списком процессов, загрузки дампов памяти процессов, прекращении работы процессов. А через https://ВАШСАЙТ.scm.azurewebsites.net/azurejobs/ стало возможным управлять и диагностировать работу веб-заданий Web Jobs.

Управление с помощью Azure Management Libraries

С выпуском библиотек Azure Management Libraries широкая часть облачной инфраструктуры Microsoft Azure может быть доступна и автоматизирована из приложений на .NET. Эти библиотеки работают поверх функций открытого REST API платформы и их выпуск предназначен для облегчения работы разработчика с облачной инфраструктурой.

Библиотеки Azure Management Libraries предлагают возможность управления следующими облачными мощностями:

  • Microsoft Azure Virtual Machine
  • Hosted Services
  • Infrastructure services
  • Scheduler
  • учетные записи Storage Accounts
  • информация о подписках;
  • сети Virtual Networks;
  • Web Sites.

Если вам захочется управлять только одним из аспектов Azure, то вместо того, чтобы добавлять все библиотеки, вы можете установить только один специфический пакет, например, Microsoft.WindowsAzure.Management.WebSites, который предлагает функциональность для управления только инфраструктурой Azure Web Sites.

Исходные коды библиотеки доступны на GitHub.

Библиотеки Azure Management Libraries предлагают прекрасный слой автоматизации между вашим кодом и Microsoft Azure. Вы можете использовать эти библиотеки для задач автоматизации всего спектра процессов создания и удаления компонент Azure. В текущей версии мы предлагаем библиотеки для управления вычислительными мощностями и облачным хранилищем, а так же компонентами Azure Web Sites. Со временем, мы добавим в библиотеки больше функций. Наша цель – предоставить вам возможность автоматизировать выполнения любой задачи в Microsoft Azure.

Подробное описание использование библиотек Azure Management Libraries можно найти в этой статье. Хороший пример управления Web Sites из собственных веб-сайтов можно найти в этой статье.

Новое ценообразование

Ценообразование Web Sites было слегка изменено, был добавлен новый уровень предоставления сервиса Basic, который предлагает выделенные вычислительные мощности, однако стоит до 50% дешевле стандартного уровня за счет недоступности ряда функциональных возможностей, например, автоматического масштабирования.

image

Подробнее о новом ценообразовании Azure Web Sites можно узнать на официальной странице. Подробнее про хостинг-планы можно почитать в этом анонсе.

image image

Стандартный план размещения веб-сайтов получил обновление: кроме бесплатного предложения использования SSL был увеличен объем выделенного для веб-сайта пространства хранилища с 10 ГБ до 50 ГБ.

image

Кроме новых хостинг-планов был представлен и новый подход к объединению нескольких веб-сайтов с разным ценообразованием – группы ресурсов (Resource Groups). Эта возможность поможет управлять ресурсами и выделять их по-разному для разных задач. Подробнее о новой возможности можно узнать из этой статьи.

Полезные ссылки

Ниже вы найдете ссылки на ресурсы, которые помогут вам в использовании облачной платформы Microsoft:

А если вы уже разрабатываете на Windows Azure  или хотите найти разработчиков своего сервиса, посетите сервис appprofessionals.ru.

Мы будем рады ответить на ваши  вопросы по адресу azurerus@microsoft.com. И ждем вас в Сообществе Windows Azure на Facebook. Здесь вы найдете экспертов (не забудьте задать им вопросы), фотографии и много-много новостей.