Continuous DeployUsing the cloud with Play! 2, Bitbucket,  Cloudbees and Heroku for FREE*
IntroductionMagnus AnderssonCo-founder Solvies ABBlog: magnusart.comTwitter: @magnusart
Overview● What is Continuous Deploy?● This is what we are doing today● Meet the tools  ○ Play! 2 Framework  ○ Atlassian Bi...
What is Continuous Deploy?To continuously deploy software into targetenvironment upon push/check in to blessedVCSContiniou...
This is what we are doing today
Meet the toolsRuby on Rails inspired web framework. Buildswith Scala Build Tool.Both Scala and Java, foundation rewritten ...
Meet the toolsGit hosting that allows for free privaterepositories. Free private git and mercurialrepos.The competitor, Gi...
Meet the toolsOnline Jenkins Continuous Integration serverhosting.Travis CI is an interesting alternative, butwould not wo...
Meet the toolsPolyglot cloud PAAS hosting. Supports Ruby,Java, Scala, Cloujure and Python in the CeladonCedar stackSolves ...
DEMO!
Is all this really for FREE*?Yes it is, but only for a give value for FREE...You may want to pay for the following1. Play!...
4. Heroku Dynos  a. 750 dyno hours/month free  b. Dynos cost $0.05/hour (~35$/month per dyno)  c. Dynos are charged per se...
4. Heroku Third Party addons  a. Convenient way to install third party addons  b. Heroku PgSQL database 5MB is included   ...
Appendix A          Continuous Deploy recipe1. Create Heroku App   a. Configure custom buildpack to keep Slug size down   ...
4. Create CloudBees job  a. Create job  b. Configure CloudBees access to Git repos (Heroku     and Atlassian/Github)  c. I...
Appendix B                  Links and resourcesHireFireApp support ticket describing API:https://hirefireapp.tenderapp.com...
Contact informationMagnus AnderssonCo-founder Solvies ABmagnus.andersson@solvies.seTwitter: @magnusartwww.solvies.sewww.ma...
Upcoming SlideShare
Loading in …5
×

Continuous Deploy

2,269 views

Published on

Presentation for Göteborgs Scalaentusiaster Meetup group.

http://www.meetup.com/Scala-Geats/events/58194182/

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,269
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Continuous Deploy

  1. 1. Continuous DeployUsing the cloud with Play! 2, Bitbucket, Cloudbees and Heroku for FREE*
  2. 2. IntroductionMagnus AnderssonCo-founder Solvies ABBlog: magnusart.comTwitter: @magnusart
  3. 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. 4. What is Continuous Deploy?To continuously deploy software into targetenvironment upon push/check in to blessedVCSContinious Integration, Continuous Deliveryand DevOps are are subset or supersets of thesame idéas, tools and methodologies
  5. 5. This is what we are doing today
  6. 6. Meet the toolsRuby on Rails inspired web framework. Buildswith Scala Build Tool.Both Scala and Java, foundation rewritten inPlay2.
  7. 7. Meet the toolsGit hosting that allows for free privaterepositories. Free private git and mercurialrepos.The competitor, Github, can be used as well butonly public repos are free
  8. 8. Meet the toolsOnline Jenkins Continuous Integration serverhosting.Travis CI is an interesting alternative, butwould not work well for this scenario as there isno private way to store private SSL keys.
  9. 9. Meet the toolsPolyglot cloud PAAS hosting. Supports Ruby,Java, Scala, Cloujure and Python in the CeladonCedar stackSolves package archiving (Git), deployautomation, rollback and provides a third partyadd-on community (DB, Logging, Messaging)Heroku runs in the Amazon cloud. Slug size foryour app is 100mb, inc. resources/artifacts
  10. 10. DEMO!
  11. 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 following1. Play! 2 Framework support a. Typesafe supscription. Price: info@typesafe.com2. Atlassian Bitbucket a. 5 collaborators free b. Paid plans ranging from $10 - $80/month3. 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. 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. 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 expensiveMore addons: https://addons.heroku.com/
  14. 14. Appendix A Continuous Deploy recipe1. 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. 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. 16. Appendix B Links and resourcesHireFireApp support ticket describing API:https://hirefireapp.tenderapp.com/discussions/questions/66-support-for-auto-scaling-web-dyno-for-java-play-app-running-on-cedar-stackHeroku Scala Build Packhttps://github.com/heroku/heroku-buildpack-scalaOpenShift, Heroku competitorhttps://openshift.redhat.comOpenShift DIY Cartridge Play2 Quickstarthttps://github.com/opensas/play2-openshift-quickstartThis presentation is available on SlideSharehttp://www.slideshare.net/magnusart/continuous-deploy
  17. 17. Contact informationMagnus AnderssonCo-founder Solvies ABmagnus.andersson@solvies.seTwitter: @magnusartwww.solvies.sewww.magnusart.com

×