Статьи

Новый Windows Azure SDK для PHP

Весеннее обновление для Windows Azure содержало множество обновлений, которые имеют отношение к разработчикам, использующим технологии с открытым исходным кодом (и, в частности, разработчикам PHP), и не в последнюю очередь это выпуск «нового» Windows Azure SDK для PHP . В этом посте я рассмотрю «почему», «что» и «что будет дальше» для нового SDK.

Почему «новый» SDK?

Если вы просматривали какие-либо посты, которые я написал, которые показывают, как каким-то образом использовать «старый» SDK, вы, вероятно, видели эту поправку к этим постам:

Обновление от 7 июня 2012: команда Microsoft Windows Azure выпустила новый Windows Azure SDK для PHP . Этот выпуск является частью усилий по обновлению клиентских библиотек PHP с новыми функциями Windows Azure и превращению PHP в первоклассного гражданина в Windows Azure. Последние клиентские библиотеки находятся на GitHub: https://github.com/WindowsAzure/azure-sdk-for-php . Хотя SDK, размещенный на CodePlex, будет продолжать работать в обозримом будущем, настоятельно рекомендуется, чтобы новое приложение PHP / Windows Azure использовало SDK, размещенный на GitHub.

Работа, проделанная Maarten Balliauw и другими участниками проекта по созданию SDK, размещенного на CodePlex, имела решающее значение для объединения опыта разработчиков PHP для Windows Azure. Команда Windows Azure благодарит этих участников за новаторскую работу и надеется на их постоянную поддержку (и вашу!) В добавлении нового SDK на GitHub.

Спасибо, команда Windows Azure

Команда Windows Azure делает хочет , чтобы сделать PHP первого класса гражданин на Windows Azure. Я думаю, что работа, проделанная для  поддержки PHP на сайтах Windows Azureэто всего лишь одно свидетельство того, что команда серьезно относится к этому. Тот факт, что группа выделила ресурсы для создания и поддержки нового Windows Azure SDK для PHP, является еще одним доказательством. Но почему «новый» SDK? Как вы, возможно, поняли из весеннего обновления, команда Windows Azure усердно работает над тем, чтобы объединить опыт разработчиков для Windows Azure. Создание SDK, параллельного SDK для других языков, является частью этой работы. На практике это облегчит разработчику использование нескольких языков с Windows Azure. Кроме того, команда Windows Azure быстро продвигается, и им нужен был способ, чтобы все клиентские библиотеки (включая PHP) могли быть в курсе последних изменений. С появлением множества новых изменений в весеннем обновлении, начало работы над новым SDK казалось лучшим способом.Это дало команде Windows Azure возможность стандартизировать клиентские библиотеки с помощью нового REST API (часть усилий по унификации взаимодействия с разработчиками).

Как отмечается в примечании выше, команда Windows Azure в долгу перед Мартеном Баллиау (и другими участниками) за новаторскую работу, которую он проделал в начале этой работы. Я также должен поблагодарить Мартена. Именно с помощью SDK он начал много узнавать о создании приложений для Windows Azure. Конечно, мы надеемся, что Мартен и другие продолжат свою работу, внеся свой вклад в новый SDK на GitHub.

Что в новом SDK?

Новый Windows Azure SDK для PHP состоит из нескольких компонентов:

  • Клиентские библиотеки PHP для Windows Azure
  • Средства командной строки Windows Azure для Mac и Linux
  • Windows Azure PowerShell (только для Windows)
  • Эмуляторы Windows Azure (только для Windows)

Я опишу их более подробно ниже, но если вы хотите просто начать, см. Как загрузить Windows Azure SDK для PHP .

Клиентские библиотеки PHP для Windows Azure

Клиентские библиотеки PHP для Windows Azure размещены на GitHub и предоставляют интерфейс для доступа к функциям Windows Azure, таким как облачное хранилище и облачные службы. Поскольку большинство из этих классов обертывают API REST Windows Azure, их можно использовать из любого приложения на любой платформе, поддерживающей PHP. В настоящее время клиентские библиотеки поддерживают следующие функции Windows Azure:

  • Службы хранилища Windows Azure (BLOB-объекты, таблицы и очереди). Вы можете узнать, как использовать классы для использования служб Blob, Tables и Queue в следующих статьях:

  • Сервис Runtime. Класс ServiceRuntime представляет среду Windows Azure, в которой работает экземпляр роли. Класс предоставляет информацию о конфигурации, конечных точках и состоянии запущенных экземпляров ролей, а также функциональные возможности для настройки конечных точек. (Ищите пост о том, как использовать этот класс в ближайшее время.)
  • Управление Сервисом.  Эти классы позволяют программно управлять службами Windows Azure (например, создавать или удалять учетную запись хранения). (Опять же, скоро поищите пост о том, как использовать эти классы.)

Классы, которые поддерживают Service Runtime и Service Management, предназначены для приложений PHP, которые будут работать как облачные службы Windows Azure (то есть как приложения Platform-as-a-Service (PaaS)). Однако классы, которые поддерживают службы хранилища Windows Azure, предназначены для использования из любого приложения PHP, независимо от того, где оно работает.

Вы можете установить клиентские библиотеки PHP для Windows Azure как пакет PEAR (при условии, что у вас установлен PEAR):

    pear channel-discover pear.windowsazure.com

    pear install pear.windowsazure.com/WindowsAzure-0.1.0

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

Справочную документацию по API см. В документации по Windows Azure SDK для PHP .

Средства командной строки Windows Azure для Mac и Linux

Средства командной строки Windows Azure для Mac и Linux представляют собой набор инструментов командной строки для развертывания и управления службами Windows Azure, такими как веб-сайты Windows Azure и виртуальные машины Windows Azure. Эти инструменты работают на любой платформе, включая Mac, Linux и Windows. Обратите внимание, что на данный момент в эти инструменты не включены команды для управления веб-ролями и рабочими ролями.

Вы можете узнать, как использовать эти инструменты здесь: Как использовать инструменты командной строки Windows Azure для Mac и Linux .

Windows Azure PowerShell (только для Windows)

Windows Azure PowerShell — это набор командлетов PowerShell для развертывания и управления службами Windows Azure, такими как облачные службы и виртуальные машины. Хорошим дополнением к этим инструментам является командлет Add-AzurePHPWebRole . Это создает готовую к развертыванию веб-роль, настроенную для приложений PHP. Все, что вам нужно сделать, это добавить код приложения. (Скоро появится более подробный пост.) Обратите внимание, что в настоящее время эти командлеты не предоставляют функции для управления веб-сайтами Windows Azure.

Дополнительные сведения см. В разделе « Как использовать Windows Azure PowerShell» .

Эмуляторы Windows Azure (только для Windows)

Эмуляторы вычислений и хранения являются локальными эмуляторами облачных сервисов и облачного хранилища, которые позволяют тестировать приложение локально. Эмуляторы Windows Azure работают только в Windows. Для получения дополнительной информации см. Запуск приложения Windows Azure в эмуляторе вычислений и Запуск приложения Windows Azure с эмулятором хранилища . (Скоро рассмотрим пост о том, как использовать эмуляторы с новым SDK.)

Что дальше для SDK?

Windows Azure SDK для PHP все еще находится на стадии бета-тестирования, поэтому в ближайшем будущем будет множество улучшений. Вот что вы тоже можете увидеть:

  • Клиентские библиотеки:

    • Поддержка дополнительных функций Windows Azure (например, служебная шина).
    • Поддержка установки с помощью Composer .
  • Инструменты командной строки для Mac и Linux

    • Поддержка веб / рабочих ролей.
  • Windows Azure PowerShell

    • Поддержка рабочих ролей PHP
    • Поддержка веб-сайтов Windows Azure

Чтобы увидеть подробный список того, что команда на самом деле отслеживает, см. Их список на GitHub . Конечно, если у вас есть предложения, мы будем рады их услышать. Или вы можете зайти на GitHub и внести предложения (или раскошелиться на проект и предоставить свой собственный патч!).

Это все на данный момент. Как я уже упоминал в посте, в ближайшем будущем поищите более глубокие погружения в некоторые из этих областей.

Спасибо.