История о Ruby на Windows Azure

Ruby-разработчики могли использовать Windows Azure с самой ранешней стадии развития платформы, и с каждым годом поддержка Ruby платформой увеличивалась как средством сотворения и развития инструментов разработки Ruby для Windows Azure, так и косвенным образом – к примеру, с релизом виртуальных машин появилась возможность разработки Ruby-приложений в IaaS-окружении. Для тех, кто не желает озадачивать себя реалиями инфраструктурными, существует уже преднастроенный образ для Ruby в хранилище виртуальных машин VMDepot. Ниже я расскажу о нескольких методах разработки Ruby в Windows Azure, какой из этих методов будет удобнее – решать вам.

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

• Создание Windows Azure SDK для Ruby (Windows Azure SDK Ruby), при помощи которой можно использовать разные сервисы Windows Azure из Ruby-приложения. Это очень принципиальная веха, потому что без труда, которые вносит сам вендор платформы в конкретное направление, не получится гласить о том, что это направление является всеполноценным “обитателем” экосистемы. Как и многие другие инструменты Microsoft, Ruby SDK — Open Source, и размещена на GitHub — github.com/WindowsAzure/azure-sdk-for-ruby
• Выход в свет IaaS в виде виртуальных машин. С этим все понятно – можно сделать под себя виртуальный сервер.
• Выход в свет хранилища образов VMDepot. Для тех, кто желает получить готовый образ и начать работать сходу.

Метод 1: Windows Azure Linux-сервер, Ubuntu 12.04 LTS

Развернем вручную Linux-сервер и настроим под себя рабочую среду. Для этого перейдем на портал управления Windows Azure и нажмем New=>COMPUTE=>VIRTUAL MACHINE => QUICK CREATE.

Введем данные:

• DNS NAME: имя, под которым виртуальная машина будет доступна снаружи
• IMAGE: образ, из которого будет развернута виртуальная машина. Избираем Ubuntu Server 12.04 LTS.
• SIZE: один из доступных размеров ВМ. Избираем Medium.
• USER NAME: по дефлоту azureuser. Поменять на портале нельзя.
• NEW PASSWORD/CONFIRM: пароль.
• REGION/AFFINITY GROUP: регион, в каком будет размещаться ВМ, или аффинная группа (для обеспечения наибольшей близости снутри датацентра).

Для более четкой настройкой характеристик выбирайте FROM GALLERY – будет доступно большее количество опций.

История о Ruby на Windows Azure
Прирастить

Данные для подключения (к примеру, по Putty) получаются после нажатия на заглавие ВМ в разделе SSH Details на вкладке Dashboard.

Выполним команду sudo apt-get update. Не запамятовывайте использовать sudo на ВМ под Linux, это дополнительная безопасность и уверенность. Далее лучше установить для удобства window manager:

sudo apt-get install ubuntu-desktop

Включим RDP-доступ к GUI. Это делается на вкладке Endpoints: необходимо надавить Add и ввести данные – точку доступа по протоколу TCP и значение порта 3389.
В ВМ установим xrdp:

sudo apt-get install xrdp

Сейчас можно установить окружение для Ruby On Rails:

sudo apt-get upgrade
sudo apt-get install ruby1.9.1 ruby1.9.l-dev build-essential libsqlite3-dev nodejs -y
sudo gem install bundler –no-rdoc –no-ri
sudo apt-get -y install git-core curl
curl -L https://get.rvm.io | bash -s stable

Мы также установим Ruby Version Manager (RVM), что полезно для управления различными версиями Ruby и других функций. Добавим RVM в окружение:

echo ‘source ~/.rvm/scripts/rvm’ >> ~/.bash_aliases && bash

И проверим, все ли установлено для корректной работы:

rvm requirements

Если все в порядке, можно установить Ruby и указать ее для использования умолчанию:

rvm install 1.9.3
rvm use 1.9.3 –default

Метод 2: Установка ВМ из VMDepot

Из VMDepot можно установить преднастроенные коммьюнити образы ВМ, и они будут автоматом развернуты и запущены на Windows Azure в вашем аккаунте.
Перейдем сходу на страничку нужного вида.
Нажмем DEPLOYMENT SCRIPT для получения скрипта развертывания. Скрипт предназначен для Azure CLI, и, если у вас не установлен CLI, то пользоваться им не получится (загрузить его можно по ссылке).
Запустите CLI. Далее выполним последующие команды для опции окружения для CLI:

azure account download (будет загружен файл с опциями подписки)
azure account import [путь_к_файлу_с_настройками]
azure storage account list (будет выведен перечень аккаунтов хранилища, если таких нет, нужно сделать)
azure storage account set [имя_аккаунта_хранилища]

После выполнения всех команд можно выполнить скрипт, скопированный с VMDepot,. Это займет некое время, после этого новенькая ВМ появится в перечне ВМ на портале управления Windows Azure. Эта ВМ является хорошим набором разных сред разработки и окружений, включая PHP, Ruby, Python, Java и разных фреймворков, также таких СУБД как mysql, postgresql, и apache/nginx.

Метод 3: PaaS, Ruby + Sinatra + Azure

В качестве PaaS на Windows Azure употребляется концепция Cloud Service – приложения, состоящего из нескольких обычных проектов (фронтенда и бэкенда, к примеру) и 1-го нового – фактически, Cloud Service, в каком содержится вся конфигурация, использующаяся платформой для развертывания и опции приложения в облаке. Подробнее можно почитать здесь.

Сделаем Cloud Service проект в Visual Studio и добавим в него Worker Role. В этом проекте-роли будет происходить установка окружения и приложения Ruby. Сейчас необходимо загрузить установщик Ruby – мы положим его в Worker Role, на ВМ которой потом и будет развернуто окружение. Установщик можно загрузить с RubyInstaller.com. Добавим установщик в проект Worker Role и установим атрибут Copy to output directory в Copy if newer для того, чтоб он включился в пакет. Добавим также файл install.cmd с этим же значением атрибута Copy to output directory и последующим содержанием:

rubyinstaller-2.0.0-p0-x64.exe /silent
D:Ruby200-x64bingem.bat install sinatra –no-ri –no-rdoc

Сохранять все файлы необходимо с шифровкой US-ASCII, по другому могут появляться ошибки.
Добавим файл main.rb в Worker Role со значением атрибута copy if newer и содержанием:

require ‘sinatra’
set :environment, :production
set :port, 8080
get ‘/’ do
«Hello World!»
end

Добавим файл start.cmd с этим же значением атрибута и последующим содержанием:

D:Ruby200-x64binruby.exe main.rb

Но автоматом все не запустится, потому необходимо внести коррективы в конфигурацию самой роли в проекте Cloud Service. Откроем файл ServiceDefinition.csdef и добавим код, выделенный ниже:

Таким макаром мы выполнили настройку таким макаром, что при запуске ВМ будут запущены с завышенными преимуществами файлы install.cmd и start.cmd, также открыт порт 80 (для наружных клиентов), который будет перенаправлять трафик на внутренний порт 8080.
Сейчас, если у вас установлен эмулятор Windows Azure, можно надавить F5 (во время пуска направьте внимание на запускающиеся файлы – это результаты выполнения install.cmd и start.cmd) и пронаблюдать итог по адресу localhost:81 (локальный эмулятор автоматом делает ремаппинг с 80 порта на 81 во избежание конфликтов).

Процесс предстоящей разработки можно разбить на несколько шагов:
1) Создание программного кода и файлов .rb
2) Выполнение модификации файлов install.cmd и start.cmd, или разработка новых исполняемых файлов, для автоматизации внесения конфигураций либо сотворения совсем нового окружения разработки и редактирование соответственной секции в ServiceDefinitions.csdef
3) Внесение команд по управлению программным кодом в start.cmd

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

Аналогичный товар: Комментирование на данный момент запрещено, но Вы можете оставить ссылку на Ваш сайт.

Комментарии закрыты.