Microsoft Azure
Облачный бизнес
Вам понадобится

Microsoft Azure

Попробуйте платформу Microsoft Azure совершенно бесплатно.

Visual Studio

Бесплатная версия Visual Studio, позволяющая создавать приложения для платформы Microsoft Azure.

SDKs и дополнительные
инструменты

Инструменты разработки приложений для платформы Microsoft Azure.

Руководство по миграции сервера Parse для разработчиков


Дата публикации: 11.02.2016

Если вы использовали услуги хостинга Parse в качестве бэкенда для своих мобильных приложений, то сейчас вероятно настал идеальный момент попробовать Azure App Service. В связи с последними новостями, ребята из Parse предложили пути миграции существующих бэкендов с Parse на другие площадки. Мы рассчитываем, что когда вы станете искать такую альтернативную площадку, то попробуете и Azure.

Легкий путь миграции

Как предлагается в руководстве по миграции, вы можете мигрировать бэкенд Parse вашего приложения на другой хост, на котором развернут сервер с Parse API размещенный на базе Express. Azure App Service предлагает замечательную альтернативу для хостинга вашей реализации сервера Parse. В конце концов, Node.js-бэкенд предлагаемый в Mobile App в сервисе Azure App Service – это тоже Express. Для того чтобы еще сильнее упростить первые шаги, команда Azure App Service предложила готовый процесс развертывания, который сильно упрощает для вас запуск первого сервера Parse в App Service.

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

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

Перед тем, как начать

Перед тем, как вы начнете процесс создания нового сервера Parse на базе Azure, вам потребуется сделать следующие шаги:

Создать свою учетную запись Azure

Если у вас еще нет учетной записи Azure, то вам потребуется оформить подписку. Доступен и  бесплатный пробный период.

Настроить MongoDB

Одним из текущий требований сервера Parse является использование MongoDB (Parse предлагает руководство для соответствия требованиям MongoDB). Parse так же предлагает инструмент миграции для переноса ваших данных с хостинга на MongoDB. Если вам подходит этот вариант, команда Parse рекомендует начать с сервиса MongoLab, полностью управляемой облачной службы БД, на которую можно легко подписаться через  Azure Marketplace. Что бы вы не выбрали для хостинга своего сервера MongoDB, вам потребуется информация о подключении для запуска своего сервера Parse.

В будущем, вы можете попробовать использование встроенной службы Azure DocumentDB, управляемой NoSQL документ-ориентированной службы БД. В следующих постах мы раскроем больше деталей о том, как мигрировать ваши данные на DocumentDB и использовать DocumentDB с вашим сервером Parse.

Получить учетную запись GitHub

Путь миграции в Azure, который демонстрируется в этой статье требует от вас наличие учетной записи  GitHub. Вам поможет так же понимание того, как клонировать Git-репозиторий, отправлять и подтверждать изменения.

Создание нового бэкенда App Service

Первый шаг – это создание нового бэкенда в App Service для хостинга вашего сервера Parse. На портале Azure щелкните + New >Web + Mobile > Web App и введите уникальное имя для своего бэкенда, затем нажмите Create.



Этот шаг создаст новый экземпляр службы бэкенда, который будет хостить ваш сервер Parse. Перед этим действием вам может быть интересно создать свой собственный план оплаты App Service, который  влияет на ценообразование сервиса. Вы всегда можете поменять свой план App Service в будущем. Для большей информации ознакомьтесь с  подробным обзором планов App Service.

После того как развертывание экземпляра сервиса завершиться вы увидите панель для управления вашим бэкендом.



App Service предлагает несколько путей для размещения ваших приложений. Далее вам потребуется настроить развертывание из репозитория сервера Parse.

Клонирование репозитория сервера Parse и развертывание в Azure

Чтобы упросить процедуру публикации сервера Parse в Azure, команда App Service форкнула репозиторий с примером сервера Parse для создания кастомизированного сервера, который будет корректно работать в App Service. На GitHub форкните  репозиторий с примером сервера Parse в своей учетной записи.



Вы будете использовать этот форк в качестве источника для развертывания своего бэкенда. Вернитесь на панель Settings в своем бэекнде, переместитесь вниз и нажмите на Continuous deployment > Choose source > GitHub, затем нажмите Authorization>Authorize, передайте права порталу управления Azure в появившемся окне GitHub (возможно, вам потребуется указать пароль), затем нажмите OK.



Теперь, когда портал подключен к вашей учетной записи GitHub, выберите ваш форк parse-server-example в качестве проекта, выберите ветку master и нажмите OK.



После этого, развертывание будет завершено и код сервера Parse будет взят с проекта на GitHub и опубликован в Azure. Если, по какой-то причине, развертывание не запуститься автоматически, вы можете запустить синхронизацию вручную, нажав на кнопку Syncа панели Deployments.

Конфигурирование бэкенда

Сервер Parse требует некоторый набор данных, которые лучше всего передать в виде переменных окружения, доступных в виде настроек app settings в App Service. Эти данные включают в себя информацию о подключении к MongoDB и значения ID приложения и ключа master key. Использование app settings предлагает больший уровень безопасности, так как эта важная информация не остается в вашем коде, где она может быть не защищенной и случайно размещенной в публичном репозитории. Для создания новой настройки app settings в панели Settings нажмите Application Settings, спуститесь вниз к секции App settings и создайте новую пару ключ/значение для следующих настроек и затем нажмите Save.

Key
Value
DATABASE_URIстрока подключения к MongoDB
PARSE_APP_IDВаш идентификатор Parse app Id
PARSE_MASTER_KEYВаш ключ Parse master key




После этого вы должно получить возможность доступа к вашему серверу Parse с помощью REST-клиентов. Если ваш сервер Parse требует другие заранее установленные значения, например, Facebook App ID, вы можете включить эти значения в app settings.

Попробуйте Hello, world!

Демонстрационный проект сервера Parse содержит функцию hello, которую вы можете вызвать с помощью curl:

$ curl -X POST \
>   -H "X-Parse-Application-Id: dsXH3syuEuuIZvXi1niEtX49LLilneJK5oIBcLM3" \
>   -H "Content-Type: application/json" \
>   -d '{}' \
>   http://parse-on-azure.azurewebsites.net/parse/functions/hello



Для разработчиков использующих Parse это должно быть знакомо. Но в этот раз ответ от сервера будет совершенно другим:

{«result»:«Hello from Azure.»}

Теперь, когда вы убедились, что сервер Parse корректно работает на Azure, самое время добавить ваш облачный код в бэкенд.

Добавление вашего облачного кода Parse

Так как у вас теперь сконфигурировано непрерывное развертывание вашего форка сервера Parse, то простейшим способом добавить ваш облачный код в бэкенд будет использование этого репозитория.

Для добавления кода в бэкенд, клонируйте ваш форк сервера Parse на локальный компьютер с помощью клиента Git или инструмента командной строки типа GitBush.

Из вашего локального развертывания Parse скопируйте подпапки Cloud и /Public в свой новый локальный клон. Затем добавьте, зафиксируйте (commit) и отправьте изменения назад (push) на GitHub. После отправки изменений на GitHub, вы увидите что развертывание в Azure было запущено автоматически. После завершения развертывания вы сможете использовать ваш облачный код.

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

Обновление Parse SDK в клиентских приложениях

Новый сервер Parse и новая среда хостинга требуют обновления в Parse SDK, которые используется вашими мобильными приложениями. Убедитесь, что вы следуете инструкциям в статье  Использование Parse SDK с сервером Parse

Что насчет пуш-уведомлений?

Когда вы  прочитаете руководство по миграции Parse, то найдете там следующее:

Сервер Parse не реализует функционал пуш-уведомлений. Мы рекомендуем миграцию на других пуш-провайдеров.

Не паникуйте. Azure предлагает высокомасштабируемый сервис Azure Notification Hubs спроектированный специально для рассылки пуш-уведомлений для мобильных приложений. Как вы делали это в Parse, Notification Hubs так же хранит информацию аутентификации для каждого сервиса Push Notification Service (PNS): APNS, GCM, WNS, даже Kindle, Chrome и Baidu. Библиотека Notification Hubs для Node.js позволит вам легко отправлять пуш-уведомления из вашего облачного кода или из любого другого бэкенд-сервиса. Мы предложим вам подробное руководство по применению Notification Hubs для рассылки уведомлений из сервера Parse в ближайшем будущем.

Заключение

Начав использовать облачный сервис Azure App Service для своего сервера Parse, рассмотрите и другие сервисы Azure, которые предлагают некоторые функции, которых не было в Parse или не стало в сервере Parse. Например: аналитика, фоновые задачи по расписанию, интеграция со сторонними сервисами, такими как Twilio и SendGrid. App Service так же предлагает больше встроенных опций по аутентификации.

Мы надеемся, что вам понравится опыт работы с Azure для хостинга вашего сервера Parse. Желаем вам удачи в миграции с Parse в новый дом бэкенда для вашего приложения.

Автор статьи: Владимир Юнев