SlideShare uma empresa Scribd logo
1 de 43
Baixar para ler offline
Heroku.
Zen cloud.
Александр Коротких
@alexkorotkikh
#x1devclub
Эбаут ми
• Программист @
  X1 Group
• Организатор @
  X1 Dev Club
• Автор @
  SingletonPost.com
– это git push deployment
– это git push deployment
– это git push deployment
– это git push deployment
– это git push deployment
        – это PaaS
– это git push deployment
         – это PaaS
c фокусом на приложения
Это дзен-сад вашего приложения
Не беспокойся!
Не беспокойся!
• О внешних компонентах
Не беспокойся!
• О внешних компонентах
• О масштабировании
Не беспокойся!
• О внешних компонентах
• О масштабировании
• Об управлении релизами
$ heroku config
=== Application Config Vars

CLOUDAMQP_URL: amqp://
login:password@cloudamqp.com/vhost

DATABASE_URL: postgres://
login:password@ec2.amazonaws.com:5432/schema

JAVA_OPTS: -Xmx384m -Xss512k

LANG: en_US.UTF-8

LOG_LEVEL: DEBUG
etc...
$ heroku addons:add heroku-postgresql:basic
Adding heroku-postgresql:basic on
application... success
$ heroku addons:add heroku-postgresql:basic
Adding heroku-postgresql:basic on
application... success

$ heroku addons:add mongohq:small
Adding mongohq:small on application... success
$ heroku addons:add heroku-postgresql:basic
Adding heroku-postgresql:basic on
application... success

$ heroku addons:add mongohq:small
Adding mongohq:small on application... success

$ heroku addons:add memcache:100mb
Adding memcache:100mb on application... success
$ heroku addons:add heroku-postgresql:basic
Adding heroku-postgresql:basic on
application... success

$ heroku addons:add mongohq:small
Adding mongohq:small on application... success

$ heroku addons:add memcache:100mb
Adding memcache:100mb on application... success

$ heroku addons:add redistogo:mini
Adding redistogo:mini on application... success
$ heroku addons:add something-we-need:awesome
Adding something-we-need:awesome on kredito-
staging... failed
 !    Add-on not found.
$ heroku addons:add something-we-need:awesome
Adding something-we-need:awesome on kredito-
staging... failed
 !    Add-on not found.


:(
$ heroku addons:add something-we-need:awesome
Adding something-we-need:awesome on kredito-
staging... failed
 !    Add-on not found.


:(


– Hey, Amazon, do you have an instance for me?
$ heroku addons:add something-we-need:awesome
Adding something-we-need:awesome on kredito-
staging... failed
 !    Add-on not found.


:(


– Hey, Amazon, do you have an instance for me?


$ heroku config:add SOME_URL=something://...
$ heroku addons:add something-we-need:awesome
Adding something-we-need:awesome on kredito-
staging... failed
 !    Add-on not found.


:(


– Hey, Amazon, do you have an instance for me?


$ heroku config:add SOME_URL=something://...


:)
$ cat Procfile
web: java $JAVA_OPTS -jar web/target/
dependency/jetty-runner.jar --port $PORT web/
target/*.war
worker: sh worker/target/bin/worker
$ cat Procfile
web: java $JAVA_OPTS -jar web/target/
dependency/jetty-runner.jar --port $PORT web/
target/*.war
worker: sh worker/target/bin/worker

$ heroku scale web=4 worker=2
Scaling web processes... done, now running 4
Scaling worker processes... done, now running 2
$ heroku releases
=== Application Releases
v721 Deploy 37629dd                user   2012/10/29   13:54:51
v718 Deploy 4fe017d                user   2012/10/29   11:53:40
v717 Add mailgun add-on            user   2012/10/29   11:36:15
v712 Deploy bdb52aa                user   2012/10/26   11:18:01
v711 Deploy 0e099f4                user   2012/10/25   18:53:23
v708 Remove BUILDPACK_URL config   user   2012/10/25   15:00:20
v707 Deploy c5d145d                user   2012/10/25   14:53:37
$ heroku releases
=== Application Releases
v721 Deploy 37629dd                user   2012/10/29   13:54:51
v718 Deploy 4fe017d                user   2012/10/29   11:53:40
v717 Add mailgun add-on            user   2012/10/29   11:36:15
v712 Deploy bdb52aa                user   2012/10/26   11:18:01
v711 Deploy 0e099f4                user   2012/10/25   18:53:23
v708 Remove BUILDPACK_URL config   user   2012/10/25   15:00:20
v707 Deploy c5d145d                user   2012/10/25   14:53:37


$ heroku rollback
Rolled back to v718
$ heroku releases
=== Application Releases
v721 Deploy 37629dd                user   2012/10/29   13:54:51
v718 Deploy 4fe017d                user   2012/10/29   11:53:40
v717 Add mailgun add-on            user   2012/10/29   11:36:15
v712 Deploy bdb52aa                user   2012/10/26   11:18:01
v711 Deploy 0e099f4                user   2012/10/25   18:53:23
v708 Remove BUILDPACK_URL config   user   2012/10/25   15:00:20
v707 Deploy c5d145d                user   2012/10/25   14:53:37


$ heroku rollback
Rolled back to v718


$ heroku rollback v701
Rolled back to v701
Проблемы
Проблемы
•   Ограниченный выбор модулей (решаемо)
Проблемы
•   Ограниченный выбор модулей (решаемо)
•   Тонкий тюнинг (частично решаемо)
Проблемы
•   Ограниченный выбор модулей (решаемо)
•   Тонкий тюнинг (частично решаемо)
•   Ограничения платформы (не решаемо)
Проблемы
•   Ограниченный выбор модулей (решаемо)
•   Тонкий тюнинг (частично решаемо)
•   Ограничения платформы (не решаемо)
    • Router timeout = 30 sec
Проблемы
•   Ограниченный выбор модулей (решаемо)
•   Тонкий тюнинг (частично решаемо)
•   Ограничения платформы (не решаемо)
    • Router timeout = 30 sec
    • Startup time = 60 sec
Проблемы
•   Ограниченный выбор модулей (решаемо)
•   Тонкий тюнинг (частично решаемо)
•   Ограничения платформы (не решаемо)
    • Router timeout = 30 sec
    • Startup time = 60 sec
    • Slug size = 200 mb
Проблемы
•   Ограниченный выбор модулей (решаемо)
•   Тонкий тюнинг (частично решаемо)
•   Ограничения платформы (не решаемо)
    • Router timeout = 30 sec
    • Startup time = 60 sec
    • Slug size = 200 mb
•   Дороговато (субъективно)
Проблемы
•   Ограниченный выбор модулей (решаемо)
•   Тонкий тюнинг (частично решаемо)
•   Ограничения платформы (не решаемо)
    • Router timeout = 30 sec
    • Startup time = 60 sec
    • Slug size = 200 mb
•   Дороговато (субъективно)
    • 35$/mo/dyno
Проблемы
•   Ограниченный выбор модулей (решаемо)
•   Тонкий тюнинг (частично решаемо)
•   Ограничения платформы (не решаемо)
    • Router timeout = 30 sec
    • Startup time = 60 sec
    • Slug size = 200 mb
•   Дороговато (субъективно)
    • 35$/mo/dyno
    • Production DB от 50$/mo
Проблемы
•   Ограниченный выбор модулей (решаемо)
•   Тонкий тюнинг (частично решаемо)
•   Ограничения платформы (не решаемо)
    • Router timeout = 30 sec
    • Startup time = 60 sec
    • Slug size = 200 mb
•   Дороговато (субъективно)
    • 35$/mo/dyno
    • Production DB от 50$/mo
    • модули
?
Thx!
@alexkorotkikh
singletonpost.com

Mais conteúdo relacionado

Semelhante a Heroku. Zen cloud

Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2   кеширование для pro родионов игорьEasy authcache 2   кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорьdrupalconf
 
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2   кэширование для pro. Родионов ИгорьEasy authcache 2   кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов ИгорьPVasili
 
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)Ontico
 
Unit-тестирование скриншотами: преодолеваем звуковой барьер
Unit-тестирование скриншотами: преодолеваем звуковой барьерUnit-тестирование скриншотами: преодолеваем звуковой барьер
Unit-тестирование скриншотами: преодолеваем звуковой барьерRoman Dvornov
 
Олег Мохов "Драматическая история одной маленькой промостранички"
Олег Мохов "Драматическая история одной маленькой промостранички"Олег Мохов "Драматическая история одной маленькой промостранички"
Олег Мохов "Драматическая история одной маленькой промостранички"Yandex
 
Тестирование серверной конфигурации
Тестирование серверной конфигурацииТестирование серверной конфигурации
Тестирование серверной конфигурацииTimur Batyrshin
 
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"Provectus
 
Domain Specific Languages (for business rules)
Domain Specific Languages (for business rules)Domain Specific Languages (for business rules)
Domain Specific Languages (for business rules)Anton Arhipov
 
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлокиДоклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлокиGonchik Tsymzhitov
 
Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...
Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...
Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...Yandex
 
Системы управления версиями (VCS). Знакомство с Git.
Системы управления версиями (VCS). Знакомство с Git.Системы управления версиями (VCS). Знакомство с Git.
Системы управления версиями (VCS). Знакомство с Git.DrupalForumZP2012
 
MoscowJS 26 webpack presentation
MoscowJS 26 webpack presentationMoscowJS 26 webpack presentation
MoscowJS 26 webpack presentationlgordey
 
Moscow js 26 webpack
Moscow js 26   webpackMoscow js 26   webpack
Moscow js 26 webpacklgordey
 
Git для продолжающих
Git для продолжающихGit для продолжающих
Git для продолжающихIvan Evtukhovich
 
Изоморфные react-приложения
Изоморфные react-приложенияИзоморфные react-приложения
Изоморфные react-приложенияDenis Izmaylov
 
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ruБаба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ruYandex
 
Deployment to production with an unexpected load
Deployment to production with an unexpected loadDeployment to production with an unexpected load
Deployment to production with an unexpected loadGrid Dynamics
 
Баба Яга против!
Баба Яга против!Баба Яга против!
Баба Яга против!Roman Dvornov
 
Сергей Сергеев — Maintainer кода в большом проекте
Сергей Сергеев — Maintainer кода в большом проектеСергей Сергеев — Maintainer кода в большом проекте
Сергей Сергеев — Maintainer кода в большом проектеYandex
 

Semelhante a Heroku. Zen cloud (20)

Easy authcache 2 кеширование для pro родионов игорь
Easy authcache 2   кеширование для pro родионов игорьEasy authcache 2   кеширование для pro родионов игорь
Easy authcache 2 кеширование для pro родионов игорь
 
Easy authcache 2 кэширование для pro. Родионов Игорь
Easy authcache 2   кэширование для pro. Родионов ИгорьEasy authcache 2   кэширование для pro. Родионов Игорь
Easy authcache 2 кэширование для pro. Родионов Игорь
 
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
Vue.js и его брат-близнец Vue-server.js / Андрей Солодовников (НГС)
 
Unit-тестирование скриншотами: преодолеваем звуковой барьер
Unit-тестирование скриншотами: преодолеваем звуковой барьерUnit-тестирование скриншотами: преодолеваем звуковой барьер
Unit-тестирование скриншотами: преодолеваем звуковой барьер
 
Олег Мохов "Драматическая история одной маленькой промостранички"
Олег Мохов "Драматическая история одной маленькой промостранички"Олег Мохов "Драматическая история одной маленькой промостранички"
Олег Мохов "Драматическая история одной маленькой промостранички"
 
Приручаем Git
Приручаем GitПриручаем Git
Приручаем Git
 
Тестирование серверной конфигурации
Тестирование серверной конфигурацииТестирование серверной конфигурации
Тестирование серверной конфигурации
 
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
QA MeetUp - Тимур Батыршин: "Тестирование серверной конфигурации"
 
Domain Specific Languages (for business rules)
Domain Specific Languages (for business rules)Domain Specific Languages (for business rules)
Domain Specific Languages (for business rules)
 
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлокиДоклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
Доклады с прошедшей JiraMania: про обновления, зависимости и дедлоки
 
Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...
Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...
Олег Мохов "Куда идём мы с Пятачком, или О том, куда движется вёрстка и верст...
 
Системы управления версиями (VCS). Знакомство с Git.
Системы управления версиями (VCS). Знакомство с Git.Системы управления версиями (VCS). Знакомство с Git.
Системы управления версиями (VCS). Знакомство с Git.
 
MoscowJS 26 webpack presentation
MoscowJS 26 webpack presentationMoscowJS 26 webpack presentation
MoscowJS 26 webpack presentation
 
Moscow js 26 webpack
Moscow js 26   webpackMoscow js 26   webpack
Moscow js 26 webpack
 
Git для продолжающих
Git для продолжающихGit для продолжающих
Git для продолжающих
 
Изоморфные react-приложения
Изоморфные react-приложенияИзоморфные react-приложения
Изоморфные react-приложения
 
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ruБаба-Яга против! — Роман Дворнов, Ostrovok.ru
Баба-Яга против! — Роман Дворнов, Ostrovok.ru
 
Deployment to production with an unexpected load
Deployment to production with an unexpected loadDeployment to production with an unexpected load
Deployment to production with an unexpected load
 
Баба Яга против!
Баба Яга против!Баба Яга против!
Баба Яга против!
 
Сергей Сергеев — Maintainer кода в большом проекте
Сергей Сергеев — Maintainer кода в большом проектеСергей Сергеев — Maintainer кода в большом проекте
Сергей Сергеев — Maintainer кода в большом проекте
 

Heroku. Zen cloud

  • 2. Эбаут ми • Программист @ X1 Group • Организатор @ X1 Dev Club • Автор @ SingletonPost.com
  • 3.
  • 4. – это git push deployment
  • 5. – это git push deployment
  • 6. – это git push deployment
  • 7. – это git push deployment
  • 8. – это git push deployment – это PaaS
  • 9. – это git push deployment – это PaaS c фокусом на приложения
  • 10. Это дзен-сад вашего приложения
  • 12. Не беспокойся! • О внешних компонентах
  • 13. Не беспокойся! • О внешних компонентах • О масштабировании
  • 14. Не беспокойся! • О внешних компонентах • О масштабировании • Об управлении релизами
  • 15.
  • 16. $ heroku config === Application Config Vars CLOUDAMQP_URL: amqp:// login:password@cloudamqp.com/vhost DATABASE_URL: postgres:// login:password@ec2.amazonaws.com:5432/schema JAVA_OPTS: -Xmx384m -Xss512k LANG: en_US.UTF-8 LOG_LEVEL: DEBUG etc...
  • 17. $ heroku addons:add heroku-postgresql:basic Adding heroku-postgresql:basic on application... success
  • 18. $ heroku addons:add heroku-postgresql:basic Adding heroku-postgresql:basic on application... success $ heroku addons:add mongohq:small Adding mongohq:small on application... success
  • 19. $ heroku addons:add heroku-postgresql:basic Adding heroku-postgresql:basic on application... success $ heroku addons:add mongohq:small Adding mongohq:small on application... success $ heroku addons:add memcache:100mb Adding memcache:100mb on application... success
  • 20. $ heroku addons:add heroku-postgresql:basic Adding heroku-postgresql:basic on application... success $ heroku addons:add mongohq:small Adding mongohq:small on application... success $ heroku addons:add memcache:100mb Adding memcache:100mb on application... success $ heroku addons:add redistogo:mini Adding redistogo:mini on application... success
  • 21. $ heroku addons:add something-we-need:awesome Adding something-we-need:awesome on kredito- staging... failed ! Add-on not found.
  • 22. $ heroku addons:add something-we-need:awesome Adding something-we-need:awesome on kredito- staging... failed ! Add-on not found. :(
  • 23. $ heroku addons:add something-we-need:awesome Adding something-we-need:awesome on kredito- staging... failed ! Add-on not found. :( – Hey, Amazon, do you have an instance for me?
  • 24. $ heroku addons:add something-we-need:awesome Adding something-we-need:awesome on kredito- staging... failed ! Add-on not found. :( – Hey, Amazon, do you have an instance for me? $ heroku config:add SOME_URL=something://...
  • 25. $ heroku addons:add something-we-need:awesome Adding something-we-need:awesome on kredito- staging... failed ! Add-on not found. :( – Hey, Amazon, do you have an instance for me? $ heroku config:add SOME_URL=something://... :)
  • 26. $ cat Procfile web: java $JAVA_OPTS -jar web/target/ dependency/jetty-runner.jar --port $PORT web/ target/*.war worker: sh worker/target/bin/worker
  • 27. $ cat Procfile web: java $JAVA_OPTS -jar web/target/ dependency/jetty-runner.jar --port $PORT web/ target/*.war worker: sh worker/target/bin/worker $ heroku scale web=4 worker=2 Scaling web processes... done, now running 4 Scaling worker processes... done, now running 2
  • 28. $ heroku releases === Application Releases v721 Deploy 37629dd user 2012/10/29 13:54:51 v718 Deploy 4fe017d user 2012/10/29 11:53:40 v717 Add mailgun add-on user 2012/10/29 11:36:15 v712 Deploy bdb52aa user 2012/10/26 11:18:01 v711 Deploy 0e099f4 user 2012/10/25 18:53:23 v708 Remove BUILDPACK_URL config user 2012/10/25 15:00:20 v707 Deploy c5d145d user 2012/10/25 14:53:37
  • 29. $ heroku releases === Application Releases v721 Deploy 37629dd user 2012/10/29 13:54:51 v718 Deploy 4fe017d user 2012/10/29 11:53:40 v717 Add mailgun add-on user 2012/10/29 11:36:15 v712 Deploy bdb52aa user 2012/10/26 11:18:01 v711 Deploy 0e099f4 user 2012/10/25 18:53:23 v708 Remove BUILDPACK_URL config user 2012/10/25 15:00:20 v707 Deploy c5d145d user 2012/10/25 14:53:37 $ heroku rollback Rolled back to v718
  • 30. $ heroku releases === Application Releases v721 Deploy 37629dd user 2012/10/29 13:54:51 v718 Deploy 4fe017d user 2012/10/29 11:53:40 v717 Add mailgun add-on user 2012/10/29 11:36:15 v712 Deploy bdb52aa user 2012/10/26 11:18:01 v711 Deploy 0e099f4 user 2012/10/25 18:53:23 v708 Remove BUILDPACK_URL config user 2012/10/25 15:00:20 v707 Deploy c5d145d user 2012/10/25 14:53:37 $ heroku rollback Rolled back to v718 $ heroku rollback v701 Rolled back to v701
  • 32. Проблемы • Ограниченный выбор модулей (решаемо)
  • 33. Проблемы • Ограниченный выбор модулей (решаемо) • Тонкий тюнинг (частично решаемо)
  • 34. Проблемы • Ограниченный выбор модулей (решаемо) • Тонкий тюнинг (частично решаемо) • Ограничения платформы (не решаемо)
  • 35. Проблемы • Ограниченный выбор модулей (решаемо) • Тонкий тюнинг (частично решаемо) • Ограничения платформы (не решаемо) • Router timeout = 30 sec
  • 36. Проблемы • Ограниченный выбор модулей (решаемо) • Тонкий тюнинг (частично решаемо) • Ограничения платформы (не решаемо) • Router timeout = 30 sec • Startup time = 60 sec
  • 37. Проблемы • Ограниченный выбор модулей (решаемо) • Тонкий тюнинг (частично решаемо) • Ограничения платформы (не решаемо) • Router timeout = 30 sec • Startup time = 60 sec • Slug size = 200 mb
  • 38. Проблемы • Ограниченный выбор модулей (решаемо) • Тонкий тюнинг (частично решаемо) • Ограничения платформы (не решаемо) • Router timeout = 30 sec • Startup time = 60 sec • Slug size = 200 mb • Дороговато (субъективно)
  • 39. Проблемы • Ограниченный выбор модулей (решаемо) • Тонкий тюнинг (частично решаемо) • Ограничения платформы (не решаемо) • Router timeout = 30 sec • Startup time = 60 sec • Slug size = 200 mb • Дороговато (субъективно) • 35$/mo/dyno
  • 40. Проблемы • Ограниченный выбор модулей (решаемо) • Тонкий тюнинг (частично решаемо) • Ограничения платформы (не решаемо) • Router timeout = 30 sec • Startup time = 60 sec • Slug size = 200 mb • Дороговато (субъективно) • 35$/mo/dyno • Production DB от 50$/mo
  • 41. Проблемы • Ограниченный выбор модулей (решаемо) • Тонкий тюнинг (частично решаемо) • Ограничения платформы (не решаемо) • Router timeout = 30 sec • Startup time = 60 sec • Slug size = 200 mb • Дороговато (субъективно) • 35$/mo/dyno • Production DB от 50$/mo • модули
  • 42. ?