Upload
zykin-ilya
View
50
Download
3
Embed Size (px)
Citation preview
deploy.rbTry Rails 5 on a production server in 30 mins
Зыкин Ильяgithub.com/the-teacher
Доклад состоит из 2 частей
2
Доклад состоит из 2 частей
1. Первая часть
3
Доклад состоит из 2 частей
1. Первая часть2. Вторая часть
4
5
Здорова, пацаны! Можно ехать!
Ну, давай, давай … удачи …
6
Ребят,Rails 5
зарелизился
ещесыроват
мигрируем, не?
на-до про-то-тип
7
Не понимаю Capistrano
Redis для ActionCable?
Надо пройти 2-х годичные
экспресс курсы Надо было на Joomla делать
Мам! Мам! На проде 500-ка
Цель
Помочь людям поскорее попробовать Rails 5
Сократить время на запуск прототипа
и демо стенда
8
Основная задача
Обеспечить запуск Rails 5 приложения на production сервере не более чем за 30 минут
9
РешениеПрототип Rails 5 приложения
• ActionCable• Redis• Sidekiq• Sphinx• Whenever• Devise• Kaminari
10
Решение
Быстро создать сервер и установить ПО
11
Решение
Обеспечить простой деплой
12
О проекте
Демонстрационный пример полного жизненного цикла Rails 5 приложения от rails new до deploy.
open-source проект для образовательных и демонстрационных целей.
13
deployrb.github.io
Граничные условия
1.Простая инфраструктура. ALL IN ONE.1 сервер
14
Граничные условия
1.Простая инфраструктура. ALL IN ONE.1 сервер
2. Production-like сервер на простом хостинге / VDS / VPS
15
Граничные условия
1.Простая инфраструктура. ALL IN ONE.1 сервер
2. Production-like сервер на простом хостинге / VDS / VPS
3.Простота реализации
16
Результат
1.Прототип Rails приложения
17
Результат
1.Прототип Rails приложения
2.Скрипт установки сервера и руководство
18
Результат
1.Прототип Rails приложения
2.Скрипт установки сервера и руководство
3. RUBY скрипт автоматизирующий процесс деплоя в стиле Capistrano
19
20
deployrb.github.ioПопробуй Rails 5 в production
уже через 30 минут!
21
Нюр, эта ля дЯплой?
Это Жаваскрипт! Вябсокяты! Деревня!
ОПЫТ, СЫН ОШИБОК ТРУДНЫХ
22
“Configuration of Rails 5 applications is the greatest problem facing the world today!”
— D. T.
23
Типичные конфигурационные файлы
1.application.rb2.environments/3.initializers/4.database.yml5.secrets.yml6.spring.rb
24
Типичные конфигурационные файлы
25
1.redis.config2.schedule.rb3.sidekiq.yml4.thinking_sphinx.yml….
Новые конфигурационные файлы
1.cable.yml2.puma.rb3.initializers/
application_controller_renderer.rb4.assets/config/manifest.js
26
application_controller_renderer.rb
27
WebSockets + NignX
28
broadcast / render
29
broadcast / render
30
31
Deploy Tool
Deploy Tool
Capistrano
Недостаточно подходит для демонстрационных нужд
Целая экосистема модулей
Большой уровень сложности (DSL, Before/After hooks)
32
Deploy Tool
Chef / Puppet
Явный overkill в рамках данной задачи. Не подходит для демонстрационных нужд.
33
Deploy Tool
Ansible
Очень привлекательный вариант с системой конфигурирования и шаблонизацией из коробки
Не руби
34
Deploy Tool
35
Deploy Tool1. Централизованное управление конфигурацией деплоя
через YML файлы.
2. Шаблонизация ERB
3. Копирование файла на сервер SCP
4. Обращение к серверу по SSH
5. Выполнение простых операций на сервере:создание каталогов, клонирование проекта, линковка файлов и каталогов и перезапуск сервисов.
36
SSH helper
37
Thinking Sphinx Start / Stop
38
39
40
DEPLOY_ENV=production ruby deploy.rb
Bonus
41
kaminari. Issue #804 (fixed)
42
Проблема в SLIM и HAML
Bundler. Issue #4966 (fixed)bundler 1.11.2 — bundler 1.13.2
43
44
deployrb.github.ioПопробуй Rails 5 в production
уже через 30 минут!
Q & A
45
Спасибо!
46