Skip to content

Latest commit

 

History

History
177 lines (99 loc) · 6.31 KB

hosting.md

File metadata and controls

177 lines (99 loc) · 6.31 KB
layout title id
default
Хостинг (размещение в Интернете)
hosting

Хостинг (размещение в Интернете)

Всегда хочется разместить то что заработало локально - где-нибудь в интернете. Конечно хорошо бы иметь выделенный сервер с настроенным Ruby и Sinatra. Но для начала есть и бесплатные альтернативы (для тестовых целей).

Это - Heroku и недавно анонсированный CloudFoundry проект. Это PaaS платформы, то есть они содержат всё необходимо для работы фреймворка - от разработчика требуется лишь загрузить необходимый код на сервис - и получить работающее приложение.

Heroku

Для работы необходимо:

  • зарегистрировать аккаунт на Heroku.com
  • установить Git
  • сгенерировать ключ
  • установить gem heroku

Это - необходимо задокументировать ( Getting Started with Heroku on Windows ) - TODO.

После того как всё это проделано, для развёртывания приожения достаточно - создать папку тестового приложения, например sinatra-test.

Создать тестовый файл hello.rb:

require 'rubygems'
require 'sinatra'

get '/' do
  'Hello from Heroku!'
end

Создать конфигурационный файл для Rack (Синатра является Rack-совместимым приложением) - config.ru:

require 'hello'
run Sinatra::Application

И создать файл для Heroku в котором указаны требуемые гемы .gems:

sinatra

Устанавливаем гем для работы с Heroku сервисом:

gem install heroku

Теперь мы готовы загрузить код на сервис Heroku. Для загрузки кода приложения Heroku использует систему контроля версий - Git.

Внутри этой папки необходимо инициализировать Git хранилище:

git init

Добавляем наши файлы в коммит:

git add .
git commit -m 'sinatra test'

Создаём приложение на Heroku, команда:

heroku create

Загружаем наш коммит в сервис Heroku в созданное приложение:

git push heroku master

После загрузки на сервис происходит запуск приложения, теперь мы можем открыть наше приложение с помощью команды:

heroku open 

Урл который Heroku присвоил приложению - можно изменить. Единственное после этого необходимо будет поменять настройки git для обновления кода.

Cloud Foundry

Недавно открытый сервис - cloudfoundry.com

Необходимо зарегистрироваться - после этого придёт письмо с паролем доступа на сервис.

Далее устанавливаем gem:

gem install vmc

Создаём папку sinatra-test-cf, в ней файл hello.rb:

require 'rubygems'
require 'sinatra'

get '/' do
  'Hello from Cloud Foundry!'
end

Инициализируем целевое "облако":

vmc target api.cloudfoundry.com

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

Авторизуемся:

vmc login

Указываем емейл и пароль, что получили в письме.

Проверяем подключение:

vmc info

Должна отображиться информация по доступным приложениям, и сервису, например:

VMware's Cloud Application Platform
For support visit [email protected]

Target:   http://api.cloudfoundry.com (v0.999)
Client:   v0.3.10

User:     [email protected]
Usage:    Memory   (128.0M of 2.0G total)
          Services (0 of 16 total)
          Apps     (1 of 20 total)

Теперь мы можем "разворачивать" приложения на CloudFoundry.

Каждое приложение имеет, имя и этому имени соответствует суб-домен, например, если название приложения sinatra-test-cf, то это значит оно находится по адресу:

http://sinatra-test-cf.cloudfoundry.com

Но так же возможно размещать приложения на другом урле.

Выполним "пуш" нашего приложения, мы находимся в папке sinatra-test-cf:

vms push

На вопрос "Would you like to deploy from the current directory?", отвечаем Y - т.к. наше приложение находится в этой же папке.

Application Name: - указываем название нашего приложения.

Application Deployed URL: - урл, по которому приложение будет размещено.

На вопрос Would you like to bind any services отвечаем n - т.к. мы пока не подключаем какие-либо сервисы к нашему приложению.

Происходит упаковка, передача, распаковка, и развёртывание приложения.

Если всё прошло успешно, то мы можем открыть наше тестовое приложение по указанному доменному имени.