Page tree
Skip to end of metadata
Go to start of metadata

Техническая информация о Ruby внутри Jelastic.

Сервера приложений Ruby

 

Jelastic поддерживает следующие сервера приложений Ruby

  • Apache2 + Passenger
  • Nginx + Passenger (will be added in the nearest future)
  • Puma (http://puma.io/) (will be added in the nearest future)
  • Nginx + Unicorn (will be added in the nearest future)

Примечание: Thin и Mongrel не поддерживаются из-за высокой нагрузки на CPU и память, создаваемой ими.

Управление версиями

 

RVM в качестве стандартной системы управления версиями. RVM ответственнен за выбор текущей версии в каждом контейнере. На текущий момент, поддерживаются следующие версии Ruby: 

  • 1.9.2-p320
  • 1.9.3-p429
  • 2.0.0-p195

Все эти версии предустановлены в каждом контейнере.

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

rvm use ${ruby_version}


При переключении версий, Jelastic так же разрешает зависимости.

При появлении минорных обновлений для вышеуказанных версий, Jelastic сам обновит Ruby.

Управление зависимостями

 

Управление зависимостями осуществляется с помощью Bundler. Вам необходимо указать список необходимых gem'ов в Gemfile и после этого Bundler разрешит все зависимости.

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

Когда вы деплоите свое приложение, Bundler осуществляет разрешение зависимостей, ища gem'ы в http://rubygems.org/ и устанавливает последнюю версию gem'а, если это необходимо.

Если вы не используете жесткое объявление версии в Gemfile (т.е. версия gem'а должна быть больше либо равна указанной, например "jquery-rails", "~> 2.0.2") - Bundler автоматически установит последнюю версию соответствующего gem'а

Если ваше приложение использоует особые зависимости, вам необходимо указать URL репозитория внутри Gemfile, для того что бы Bundler самостоятельно разрешил все зависимости. 

Jelastic поддерживает все стандартные типы деплойментов Ruby-приложений:

  • production
  • development
  • testing

Production являетяс типом деплоймента по умолчанию. Вы можете переключаться между типами деплоймента в панели управления Jelastic.

Bundler осуществляет разрешение зависимостей в следующих случаях:

  • Деплоймент приложения
  • Переключение между версиями Ruby
  • Изменениие типа деплоймента

 

Конфигурирование после деплоймента

Jelastic может конфигурировать уже задеплоенные приложения с помощью rake. Как правило, это необходимо для завершения конфигурирования сложных приложений, запуска дополнительных приложений или выполнения определенных шагов, например db:migrate.

Для этого введен новый файл, который называется rake_deploy. Он должен находиться в корне приложения, и содержать список команд, которые должны быть переданы rake. Каждая команда должна находиться в новой строке.

Jelastic выполняет команды из rake_deploy при каждом перезапуске apache/nginx, удаляя rake_deploy после этого. Если вам необходимо передать разные команды в rake во время каждого деплоймента, вам нужно создавать файл rake_deploy каждый раз, и добавлять необходимые команды в него.

Результаты выполнения каждого rake_delpoy сохраняются в соответствующий лог-файл. Их вы можете найти в разделе "Журнал" Jelastic:
 

Синтаксис rake_deploy:

$COMMAND_NAME_1
$COMMAND_NAME_2
...
$COMMAND_NAME_N

Jelastic выполнит следующие скрипты:

rake $COMMAND_NAME_1
rake $COMMAND_NAME_2
...
rake $COMMAND_NAME_N


В случае Redmine rake_deploy должен выглядить следующим образом:

generate_secret_token
db:migrate
redmine:load_default_data


Примечание: Для того, что бы "заморозить" gem'ы, вам необходимо добавить gems:unpack в rake_deploy

Log-файлы

В Jelastic вам доступны следующие файлы журнала:

  • access_log.log
  • error_log.log
  • rake_deploy.log
  • bundle_install.log

Доступные файлы в Jelastic File Manager

Jelastic делает доступными для изменения следующие файлы и директории:

  • /var/www/webroot/ - директория, где содержатся файлы пользовательских приложений
  • /etc/httpd/conf и/etc/httpd/conf.d/ - директории с конфигурационными файлами веб-серверов

Доступные фреймворки

Jelastic поддерживает любой Ruby-фреймворк - вам просто необходимо добавить соответствующую зависимость в ваш Gemfile. Среди наиболее популярных:

  • Ruby on Rails
  • Sinatra
  • Rack
  • therubyracer
  • Ramaze
  • ExecJS

 

  • No labels