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