Page 1
Хероковая жизнь
Юрий Литвиненко Kreditech
@surg https://linkedin.com/in/lytvynenko http://github.com/surg/
Page 2
* Слайд для проверки пульта
Page 5
Кто я?• Программист
Page 6
Кто я?• Программист
• Менеджер
Page 7
Кто я?• Программист
• Менеджер
• @surg
Page 8
Кто я?• Программист
• Менеджер
• @surg
Page 9
Кто я?• Программист
• Менеджер
• @surg
Page 15
Heroku
• PAAS
• git push
Page 16
Heroku
• PAAS
• git push
• Инфраструктура
Page 23
Инфраструктура
https://addons.heroku.com/
Page 24
heroku addons:add mongolab
Page 27
Как это работает• Создать приложение
Page 28
Как это работает• Создать приложение
• Добавить remote в свой гит
Page 29
Как это работает• Создать приложение
• Добавить remote в свой гит
• Создать Procfile
Page 30
Как это работает• Создать приложение
• Добавить remote в свой гит
• Создать Procfile
• Пуш
Page 31
Как это работает• Создать приложение
• Добавить remote в свой гит
• Создать Procfile
• Пуш
• Задать количество нод
Page 32
Как это работает• Создать приложение
• Добавить remote в свой гит
• Создать Procfile
• Пуш
• Задать количество нод
• PROFIT!
Page 34
Procfile
• Определяет процессы приложения
Page 35
Procfile
• Определяет процессы приложения
• Одна строчка -> один процесс -> одна виртуалка (дино)
Page 36
Procfile
• Определяет процессы приложения
• Одна строчка -> один процесс -> одна виртуалка (дино)
• web: java -jar jetty-runner.jar --port $PORT <my-webapp>.war
Page 37
Procfile
• Определяет процессы приложения
• Одна строчка -> один процесс -> одна виртуалка (дино)
• web: java -jar jetty-runner.jar --port $PORT <my-webapp>.war
• worker: java -jar <my-bg-jobs>.jar
Page 45
…
…
Production
…
…
…
Page 46
……
…
Production
…
…
…
Page 47
……
…
Production
…
…
…
Page 48
……
…
Production
…
…
…
66 dynos
Page 49
……
…
Production
…
…
…
66 dynos
150 dynos
Page 52
Сокровища
• Масштабирование
Page 53
Сокровища
• Масштабирование
• Инфраструктура
Page 54
Сокровища
• Масштабирование
• Инфраструктура
• Continuous Delivery
Page 56
Ограничения• Время сборки: 15 минут
Page 57
Ограничения• Время сборки: 15 минут
• Размер собранного приложения: 300М
Page 58
Ограничения• Время сборки: 15 минут
• Размер собранного приложения: 300М
• Время поднятия приложения: 1 минута
Page 59
Ограничения• Время сборки: 15 минут
• Размер собранного приложения: 300М
• Время поднятия приложения: 1 минута
• 30 секунд на ответ
Page 60
Ограничения• Время сборки: 15 минут
• Размер собранного приложения: 300М
• Время поднятия приложения: 1 минута
• 30 секунд на ответ
• Только http
Page 62
Подводные камни• Раз в сутки - рестарт
Page 63
Подводные камни• Раз в сутки - рестарт
• “Мистика”
Page 64
Подводные камни• Раз в сутки - рестарт
• “Мистика”
• Нет контроля над софтом
Page 65
Подводные камни• Раз в сутки - рестарт
• “Мистика”
• Нет контроля над софтом
• Нет контроля над обновлениями
Page 66
Подводные камни• Раз в сутки - рестарт
• “Мистика”
• Нет контроля над софтом
• Нет контроля над обновлениями
• Ценник
Page 68
RoutingLoad Balancer
Page 69
RoutingLoad Balancer
Router Router Router…
Page 70
RoutingLoad Balancer
Router Router Router…
Page 71
RoutingLoad Balancer
Router Router Router…
Web Web Web Web
Page 72
RoutingLoad Balancer
Router Router Router…
Web Web Web Web
Page 74
Вердикт
• Жить можно
Page 75
Вердикт
• Жить можно
• С определенными ограничениями
Page 76
Вердикт
• Жить можно
• С определенными ограничениями
• До определенного размера
Page 77
Вердикт
• Жить можно
• С определенными ограничениями
• До определенного размера
• Мы собираемся съезжать