3. Overview
● What is Continuous Deploy?
● This is what we are doing today
● Meet the tools
○ Play! 2 Framework
○ Atlassian Bitbucket
○ CloudBees
○ Heroku
● DEMO!
● Is all this really for FREE*?
● Appendix A - Continuous Deploy recipe
● Appendix B - Links and resources
4. What is Continuous Deploy?
To continuously deploy software into target
environment upon push/check in to blessed
VCS
Continious Integration, Continuous Delivery
and DevOps are are subset or supersets of the
same idéas, tools and methodologies
6. Meet the tools
Ruby on Rails inspired web framework. Builds
with Scala Build Tool.
Both Scala and Java, foundation rewritten in
Play2.
7. Meet the tools
Git hosting that allows for free private
repositories. Free private git and mercurial
repos.
The competitor, Github, can be used as well but
only public repos are free
8. Meet the tools
Online Jenkins Continuous Integration server
hosting.
Travis CI is an interesting alternative, but
would not work well for this scenario as there is
no private way to store private SSL keys.
9. Meet the tools
Polyglot cloud PAAS hosting. Supports Ruby,
Java, Scala, Cloujure and Python in the Celadon
Cedar stack
Solves package archiving (Git), deploy
automation, rollback and provides a third party
add-on community (DB, Logging, Messaging)
Heroku runs in the Amazon cloud. Slug size for
your app is 100mb, inc. resources/artifacts
11. Is all this really for FREE*?
Yes it is, but only for a give value for FREE...
You may want to pay for the following
1. Play! 2 Framework support
a. Typesafe supscription. Price: info@typesafe.com
2. Atlassian Bitbucket
a. 5 collaborators free
b. Paid plans ranging from $10 - $80/month
3. CloudBees
a. 300 minutes of build time, 10 developers free/month
b. Plans ranging from $15 - $100/month
c. Paid plans are fixed base price + pay as you go
12. 4. Heroku Dynos
a. 750 dyno hours/month free
b. Dynos cost $0.05/hour (~35$/month per dyno)
c. Dynos are charged per second
d. If you spin up a Dyno Heroku will charge for it until
you manually spin it down again.
e. If you have less than two web Dynos, Heroku will
spin down your Dyno after a period of inactivity.
Starts up upon first subsequent request (5-10 sec).
f. HireFireApp is a 3rd party Ruby application that
can scale your Dynos based on response time and job
queue. It will poll your app with HTTP requests, so
Dyno spin down should not be an issue. Costs
amounts to HireFireApp $10/month + Heroku
$0.05/h. Only supports Ruby stack natively, but uses
a simple JSON api your app can implement.
13. 4. Heroku Third Party addons
a. Convenient way to install third party addons
b. Heroku PgSQL database 5MB is included
i. $200/month for 1TB and 1.7GB Cache
c. MongoLab 250MB free DB
i. $10/month for 0.5GB and upwards
d. IronMQ 250 000 request/month free
i. $9.99/month for 10 000 000 requests/month
ii. Both RabbitMQ and CloudAMQP are in private
betas
e. For file storage Heroku recommends Amazon S3
f. In general the add-ons can be pricy, but there is no
lockin, you can get started in Heroku and move to
those things that turns out to be too expensive
More addons: https://addons.heroku.com/
14. Appendix A
Continuous Deploy recipe
1. Create Heroku App
a. Configure custom buildpack to keep Slug size down
b. Is it deployed?
2. Create Git repos
a. Create remote repo
b. Clone repo
c. Add Heroku remote
d. Create Play Application in subfolder
e. Move files to parent dir
f. Add Procfile config for Play!
g. Add gitignore
h. git push heroku master
15. 4. Create CloudBees job
a. Create job
b. Configure CloudBees access to Git repos (Heroku
and Atlassian/Github)
c. Install Jenkins SBT plugin to CloudBees
d. Add Git Plugin
e. Configure job Git remotes
f. Add tagging
g. Fire up build!
5. Commit, push to trigger a build followed by
deploy into Heroku
16. Appendix B
Links and resources
HireFireApp support ticket describing API:
https://hirefireapp.tenderapp.com/discussions/questions/66-support-for-
auto-scaling-web-dyno-for-java-play-app-running-on-cedar-stack
Heroku Scala Build Pack
https://github.com/heroku/heroku-buildpack-scala
OpenShift, Heroku competitor
https://openshift.redhat.com
OpenShift DIY Cartridge Play2 Quickstart
https://github.com/opensas/play2-openshift-quickstart
This presentation is available on SlideShare
http://www.slideshare.net/magnusart/continuous-deploy