Хероковая жизнь
Юрий Литвиненко Kreditech
@surg https://linkedin.com/in/lytvynenko http://github.com/surg/
* Слайд для проверки пульта
Кто я?• Программист
Кто я?• Программист
• Менеджер
Кто я?• Программист
• Менеджер
• @surg
Кто я?• Программист
• Менеджер
• @surg
Кто я?• Программист
• Менеджер
• @surg
Heroku
• PAAS
• git push
Heroku
• PAAS
• git push
• Инфраструктура
Инфраструктура
https://addons.heroku.com/
heroku addons:add mongolab
Как это работает• Создать приложение
Как это работает• Создать приложение
• Добавить remote в свой гит
Как это работает• Создать приложение
• Добавить remote в свой гит
• Создать Procfile
Как это работает• Создать приложение
• Добавить remote в свой гит
• Создать Procfile
• Пуш
Как это работает• Создать приложение
• Добавить remote в свой гит
• Создать Procfile
• Пуш
• Задать количество нод
Как это работает• Создать приложение
• Добавить remote в свой гит
• Создать Procfile
• Пуш
• Задать количество нод
• PROFIT!
Procfile
• Определяет процессы приложения
Procfile
• Определяет процессы приложения
• Одна строчка -> один процесс -> одна виртуалка (дино)
Procfile
• Определяет процессы приложения
• Одна строчка -> один процесс -> одна виртуалка (дино)
• web: java -jar jetty-runner.jar --port $PORT <my-webapp>.war
Procfile
• Определяет процессы приложения
• Одна строчка -> один процесс -> одна виртуалка (дино)
• web: java -jar jetty-runner.jar --port $PORT <my-webapp>.war
• worker: java -jar <my-bg-jobs>.jar
…
…
Production
…
…
…
……
…
Production
…
…
…
……
…
Production
…
…
…
……
…
Production
…
…
…
66 dynos
……
…
Production
…
…
…
66 dynos
150 dynos
Сокровища
• Масштабирование
Сокровища
• Масштабирование
• Инфраструктура
Сокровища
• Масштабирование
• Инфраструктура
• Continuous Delivery
Ограничения• Время сборки: 15 минут
Ограничения• Время сборки: 15 минут
• Размер собранного приложения: 300М
Ограничения• Время сборки: 15 минут
• Размер собранного приложения: 300М
• Время поднятия приложения: 1 минута
Ограничения• Время сборки: 15 минут
• Размер собранного приложения: 300М
• Время поднятия приложения: 1 минута
• 30 секунд на ответ
Ограничения• Время сборки: 15 минут
• Размер собранного приложения: 300М
• Время поднятия приложения: 1 минута
• 30 секунд на ответ
• Только http
Подводные камни• Раз в сутки - рестарт
Подводные камни• Раз в сутки - рестарт
• “Мистика”
Подводные камни• Раз в сутки - рестарт
• “Мистика”
• Нет контроля над софтом
Подводные камни• Раз в сутки - рестарт
• “Мистика”
• Нет контроля над софтом
• Нет контроля над обновлениями
Подводные камни• Раз в сутки - рестарт
• “Мистика”
• Нет контроля над софтом
• Нет контроля над обновлениями
• Ценник
RoutingLoad Balancer
RoutingLoad Balancer
Router Router Router…
RoutingLoad Balancer
Router Router Router…
RoutingLoad Balancer
Router Router Router…
Web Web Web Web
RoutingLoad Balancer
Router Router Router…
Web Web Web Web
Вердикт
• Жить можно
Вердикт
• Жить можно
• С определенными ограничениями
Вердикт
• Жить можно
• С определенными ограничениями
• До определенного размера
Вердикт
• Жить можно
• С определенными ограничениями
• До определенного размера
• Мы собираемся съезжать