Continuous Delivery in the Cloud with                      ®Grails and CloudBees09/12/11            ©2011 Cloud Bees, Inc....
About MarcoEnterprise Java developer.Now working primarily with Groovy & Grails.Advocate of using G&G on Linux!Previously:...
About NicolasSenior Engineer Cloudbees  ● customer support  ● conferences & evangelism  ● DEV@Cloud contributorJenkins con...
Overview ● All things Continuous: some terminology ● The Deployment Pipeline ● Our Quest in taking it to the Cloud ● The M...
All Things Continuous...Continuous Integration (CI):                What is it?                ©2011 CloudBees, Inc. All R...
All Things Continuous...Continuous Integration (CI):Coined by Kent Beck as part of eXtreme Programming.   ● integrate work...
All Things Continuous...Continuous Deployment:  "...is actually deploying every change into production,                eve...
All Things Continuous...Continuous Delivery:      "...is about keeping your application in a state     where it is always ...
The Deployment Pipeline            ©2011 CloudBees, Inc. All Rights Reserved
The Deployment Pipeline                                                        DEV                                        ...
Implementing efficient build pipeline                      ● smaller jobs                      ● parallelism              ...
The Quest ● PaaS not IaaS ● Groovy & Grails support ● Robust Developer Tooling ● Hosted Continuous Integration (CI) soluti...
The MatrixSide-by-side comparison of Cloud Vendors   Vendor      PaaS/IaaS    Deployment       Availability        Tooling...
About CloudBees     Our Mission        Become the leading Java™ Platform                        as a Service (PaaS)       ...
CloudBees PaaS        Continuous Development - Continuous Deployment        Code            Build        Test           St...
CloudBees founding team
Grails cloud-bees Plugin● Provides CloudBees SDK with no installation● Handy CLI scripts from within Grails project● Allow...
Grails cloud-bees PluginApplications can be Deployed and Deleted:grails bees-app-deploygrails bees-app-deleteApplications ...
Grails cloud-bees PluginApplication logs tailed in real time!grails bees-app-tailDec 5, 2011 3:30:42 PM com.staxnet.appser...
Grails cloud-bees PluginDatabases can be Provisioned and Deleted:grails bees-db-creategrails bees-db-deleteDatabases can b...
Grails cloud-bees Plugin           Demo!            ©2011 CloudBees, Inc. All Rights Reserved
Deploying the BeelineSetup  ● Open your CloudBees account.  ● Add config to: $HOME/.grails/settings.groovycloudbees.accoun...
Deploying the BeelineThe Plugingrails install-plugin cloud-beesResolving plugin cloud-bees. Please wait......Plugin cloud-...
Deploying the BeelineCreate a Database in the Cloud!grails bees-db-createDatabase created successfully.Database ID : beeli...
Deploying the BeelineTo the Cloud we go!grails bees-app-deployPreparing the BeesClient ...Deploying hashcode/beeline tagge...
Grails cloud-bees Plugin           Q&A            ©2011 CloudBees, Inc. All Rights Reserved
Upcoming SlideShare
Loading in...5
×

Continuous Delivery with Grails and CloudBees

1,556

Published on

A presentation given at the 2011 Grails Exchange on Continuous Delivery in the Cloud with Grails using CloudBees PaaS.

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

No Downloads
Views
Total Views
1,556
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
15
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Continuous Delivery with Grails and CloudBees

  1. 1. Continuous Delivery in the Cloud with ®Grails and CloudBees09/12/11 ©2011 Cloud Bees, Inc. All Rights Reserved
  2. 2. About MarcoEnterprise Java developer.Now working primarily with Groovy & Grails.Advocate of using G&G on Linux!Previously: Shazam, Associated NewspapersCurrently: BurberryMaintainer:Groovy, Grails and Griffon PPA for UbuntuGrails plugins: cloud-bees, itunes-service, jmock@marcoVermeulen ©2011 CloudBees, Inc. All Rights Reserved
  3. 3. About NicolasSenior Engineer Cloudbees ● customer support ● conferences & evangelism ● DEV@Cloud contributorJenkins contributorMaven committerJUG-Leader ©2011 CloudBees, Inc. All Rights Reserved
  4. 4. Overview ● All things Continuous: some terminology ● The Deployment Pipeline ● Our Quest in taking it to the Cloud ● The Matrix ● About CloudBees ● The Grails cloud-bees plugin ● Demo 1: grails cloud-bees ● Demo 2: Continuous Deployment ● The Web Console ©2011 CloudBees, Inc. All Rights Reserved
  5. 5. All Things Continuous...Continuous Integration (CI): What is it? ©2011 CloudBees, Inc. All Rights Reserved
  6. 6. All Things Continuous...Continuous Integration (CI):Coined by Kent Beck as part of eXtreme Programming. ● integrate work frequently into mainline ● multiple integrations per day ● integration verified by automated tests ● results in subsequent build ● detect integration errors early! ● results in cohesive software more rapidly -Martin Fowlerhttp://martinfowler.com/articles/continuousIntegration.html ©2011 CloudBees, Inc. All Rights Reserved
  7. 7. All Things Continuous...Continuous Deployment: "...is actually deploying every change into production, every day or more frequently." -Martin Fowlerhttp://martinfowler.com/delivery.html ©2011 CloudBees, Inc. All Rights Reserved
  8. 8. All Things Continuous...Continuous Delivery: "...is about keeping your application in a state where it is always able to deploy into production." -Martin Fowlerhttp://martinfowler.com/delivery.html ©2011 CloudBees, Inc. All Rights Reserved
  9. 9. The Deployment Pipeline ©2011 CloudBees, Inc. All Rights Reserved
  10. 10. The Deployment Pipeline DEV Integ. build, test, analyse,... Staging PROD ©2011 CloudBees, Inc. All Rights Reserved
  11. 11. Implementing efficient build pipeline ● smaller jobs ● parallelism ● build promotion
  12. 12. The Quest ● PaaS not IaaS ● Groovy & Grails support ● Robust Developer Tooling ● Hosted Continuous Integration (CI) solution ● Support for Continuous Deployment ● Cloud based ● Holistic Solution ● Runtime monitoring and tooling ©2011 CloudBees, Inc. All Rights Reserved
  13. 13. The MatrixSide-by-side comparison of Cloud Vendors Vendor PaaS/IaaS Deployment Availability Tooling Hosted CI DatabaseEC2 Iaas Deploy any Fully Available Eclipse None, may be Amazon RDS: WAR provisioned MySQL,OracleElastic PaaS Fully Available NoneBeanstalkCloudBees PaaS Deploy and Fully Available Eclipse Plugin Jenkins & MySQL, WAR Nectar 3rd party DSCloudFoundry PaaS Any Spring or Still in Beta Spring Source None MySQL, Grails app. Tool Suite Mongo, Redis +CLIGoogle App PaaS Java + Servlet Fully Available Eclipse + CLI None BigTable,Engine environment MySQL with JPA or JDOGaelyk PaaS Java + Servlet Fully Available Eclipse + CLI None BigTable, env + Groovy! MySQL with JPA or JDOHeroku PaaS Not JEE Fully Available CLI None Postgres, compliant! No 3rd party SaS WARs! ©2011 CloudBees, Inc. All Rights Reserved
  14. 14. About CloudBees Our Mission Become the leading Java™ Platform as a Service (PaaS) ● CloudBees services the complete lifecycle of Cloud application development and deployment. Strategy ● Focus on Applications ● Transparent management of servers, VMs and IT. DEV@cloud: Cloud Services for Developers Why were different RUN@cloud: Frictionless runtime PaaS for Java apps
  15. 15. CloudBees PaaS Continuous Development - Continuous Deployment Code Build Test Stage Deploy Manage DEV@cloud Repositories Jenkins MySQL Java EE 6 WP Core Services Scalability Availability Reliability Monitoring Alerting Billing Deployment Manager ©2011 CloudBees, Inc. All Rights Reserved
  16. 16. CloudBees founding team
  17. 17. Grails cloud-bees Plugin● Provides CloudBees SDK with no installation● Handy CLI scripts from within Grails project● Allow for interaction with Apps and DBs● All provided scripts can be called from within a Jenkins build! ©2011 CloudBees, Inc. All Rights Reserved
  18. 18. Grails cloud-bees PluginApplications can be Deployed and Deleted:grails bees-app-deploygrails bees-app-deleteApplications can be Interrogated:grails bees-app-infograils bees-app-listApplications can be Controlled:grails bees-app-startgrails bees-app-stopgrails bees-app-restart ©2011 CloudBees, Inc. All Rights Reserved
  19. 19. Grails cloud-bees PluginApplication logs tailed in real time!grails bees-app-tailDec 5, 2011 3:30:42 PM com.staxnet.appserver.utils.AppServerConfiguration readAppServerConfigINFO: loading app config: /var/staxapps/8995/appserver.xmlDec 5, 2011 3:30:42 PM com.staxnet.appserver.TomcatServerBase initConfigurationINFO: Creating Tomcat server configuration at /var/staxapps/8995/staxcat/workDec 5, 2011 3:30:42 PM net.stax.appserver.admin.AdminEngine createAdminHttpConnectorINFO: Initializing admin-http-connector protocol: org.apache.coyote.http11.Http11ProtocolDec 5, 2011 3:30:43 PM net.stax.appserver.webapp.WebAppEngine createWebContextsINFO: loading app [] from /var/staxapps/8995/staxcat/install/webapp.warDec 5, 2011 3:30:43 PM net.stax.appserver.webapp.WebAppEngine... ©2011 CloudBees, Inc. All Rights Reserved
  20. 20. Grails cloud-bees PluginDatabases can be Provisioned and Deleted:grails bees-db-creategrails bees-db-deleteDatabases can be Interrogated:grails bees-db-infograils bees-db-list ©2011 CloudBees, Inc. All Rights Reserved
  21. 21. Grails cloud-bees Plugin Demo! ©2011 CloudBees, Inc. All Rights Reserved
  22. 22. Deploying the BeelineSetup ● Open your CloudBees account. ● Add config to: $HOME/.grails/settings.groovycloudbees.account = ACCOUNTcloudbees.api.key = KEYcloudbees.api.secret = SECRETThe ProjectClone the project from GitHub:git clone git@github.com:marcoVermeulen/beeline.git ©2011 CloudBees, Inc. All Rights Reserved
  23. 23. Deploying the BeelineThe Plugingrails install-plugin cloud-beesResolving plugin cloud-bees. Please wait......Plugin cloud-bees-0.5 installedPlugin provides the following new scripts:------------------------------------------grails bees-app-stopgrails bees-app-listgrails bees-app-restartgrails bees-app-deletegrails bees-db-infograils bees-app-startgrails bees-test-appgrails bees-app-checksumsgrails bees-db-creategrails bees-app-tailgrails bees-db-deletegrails bees-app-deploygrails bees-app-infograils bees-db-list ©2011 CloudBees, Inc. All Rights Reserved
  24. 24. Deploying the BeelineCreate a Database in the Cloud!grails bees-db-createDatabase created successfully.Database ID : beelinezgrails bees-db-infoDatabase Name : beelinez created : Wed Dec 07 23:10:57 GMT 2011 owner : hashcode username : beelinez password : changeme! master : ec2-174-129-9-255.compute-1.amazonaws.com port : 3306 slaves : [] status : activeAlso gives a handy datasource definition to copy and pasteinto your DataSource.groovy file!!! ©2011 CloudBees, Inc. All Rights Reserved
  25. 25. Deploying the BeelineTo the Cloud we go!grails bees-app-deployPreparing the BeesClient ...Deploying hashcode/beeline tagged at version 0.1........................uploaded 25%........................uploaded 50%........................uploaded 75%........................upload completeddeploying application to server(s)...Application uploaded successfully to: http://beeline.hashcode.cloudbees.net Thats all there is to it! ©2011 CloudBees, Inc. All Rights Reserved
  26. 26. Grails cloud-bees Plugin Q&A ©2011 CloudBees, Inc. All Rights Reserved
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×