SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
Continuous Delivery in the Cloud with
                      ®
Grails and CloudBees
09/12/11




            ©2011 Cloud Bees, Inc. All Rights Reserved
About Marco
Enterprise Java developer.
Now working primarily with Groovy & Grails.
Advocate of using G&G on Linux!

Previously: Shazam, Associated Newspapers
Currently: Burberry

Maintainer:
Groovy, Grails and Griffon PPA for Ubuntu
Grails plugins: cloud-bees, itunes-service, jmock

@marcoVermeulen




                       ©2011 CloudBees, Inc. All Rights Reserved
About Nicolas
Senior Engineer Cloudbees
  ● customer support
  ● conferences & evangelism
  ● DEV@Cloud contributor

Jenkins contributor
Maven committer
JUG-Leader




                      ©2011 CloudBees, Inc. All Rights Reserved
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
All Things Continuous...
Continuous Integration (CI):




                What is it?




                ©2011 CloudBees, Inc. All Rights Reserved
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 Fowler
http://martinfowler.com/articles/continuousIntegration.html




                              ©2011 CloudBees, Inc. All Rights Reserved
All Things Continuous...
Continuous Deployment:


  "...is actually deploying every change into production,
                every day or more frequently."

                                                                          -Martin Fowler


http://martinfowler.com/delivery.html




                              ©2011 CloudBees, Inc. All Rights Reserved
All Things Continuous...
Continuous Delivery:


      "...is about keeping your application in a state
     where it is always able to deploy into production."

                                                                          -Martin Fowler


http://martinfowler.com/delivery.html




                              ©2011 CloudBees, Inc. All Rights Reserved
The Deployment Pipeline




            ©2011 CloudBees, Inc. All Rights Reserved
The Deployment Pipeline
                                                        DEV



                                                        Integ.
               build, test,
               analyse,...
                                                        Staging



                                                        PROD




            ©2011 CloudBees, Inc. All Rights Reserved
Implementing efficient build pipeline
                      ● smaller jobs
                      ● parallelism
                      ● build promotion
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
The Matrix
Side-by-side comparison of Cloud Vendors
   Vendor      PaaS/IaaS    Deployment       Availability        Tooling      Hosted CI      Database
EC2          Iaas          Deploy any      Fully Available Eclipse          None, may be   Amazon RDS:
                           WAR                                              provisioned    MySQL,Oracle

Elastic      PaaS                          Fully Available                  None
Beanstalk

CloudBees    PaaS          Deploy and      Fully Available Eclipse Plugin   Jenkins &      MySQL,
                           WAR                                              Nectar         3rd party DS

CloudFoundry PaaS          Any Spring or   Still in Beta  Spring Source None               MySQL,
                           Grails app.                    Tool Suite                       Mongo, Redis
                                                          +CLI
Google App   PaaS          Java + Servlet Fully Available Eclipse + CLI None               BigTable,
Engine                     environment                                                     MySQL with
                                                                                           JPA or JDO
Gaelyk       PaaS          Java + Servlet Fully Available Eclipse + CLI     None           BigTable,
                           env + Groovy!                                                   MySQL with
                                                                                           JPA or JDO
Heroku       PaaS          Not JEE         Fully Available CLI              None           Postgres,
                           compliant! No                                                   3rd party SaS
                           WARs!




                              ©2011 CloudBees, Inc. All Rights Reserved
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 we're different   RUN@cloud: Frictionless runtime
                        PaaS for Java apps
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
CloudBees founding team
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
Grails cloud-bees Plugin
Applications can be Deployed and Deleted:
grails bees-app-deploy
grails bees-app-delete

Applications can be Interrogated:
grails bees-app-info
grails bees-app-list

Applications can be Controlled:
grails bees-app-start
grails bees-app-stop
grails bees-app-restart




                          ©2011 CloudBees, Inc. All Rights Reserved
Grails cloud-bees Plugin
Application logs tailed in real time!
grails bees-app-tail

Dec 5, 2011 3:30:42 PM com.staxnet.appserver.utils.AppServerConfiguration readAppServerConfig
INFO: loading app config: /var/staxapps/8995/appserver.xml
Dec 5, 2011 3:30:42 PM com.staxnet.appserver.TomcatServerBase initConfiguration
INFO: Creating Tomcat server configuration at /var/staxapps/8995/staxcat/work
Dec 5, 2011 3:30:42 PM net.stax.appserver.admin.AdminEngine createAdminHttpConnector
INFO: Initializing admin-http-connector protocol: org.apache.coyote.http11.Http11Protocol
Dec 5, 2011 3:30:43 PM net.stax.appserver.webapp.WebAppEngine createWebContexts
INFO: loading app [] from /var/staxapps/8995/staxcat/install/webapp.war
Dec 5, 2011 3:30:43 PM net.stax.appserver.webapp.WebAppEngine
...




                                     ©2011 CloudBees, Inc. All Rights Reserved
Grails cloud-bees Plugin
Databases can be Provisioned and Deleted:
grails bees-db-create
grails bees-db-delete

Databases can be Interrogated:
grails bees-db-info
grails bees-db-list




                        ©2011 CloudBees, Inc. All Rights Reserved
Grails cloud-bees Plugin



           Demo!


            ©2011 CloudBees, Inc. All Rights Reserved
Deploying the Beeline
Setup
  ● Open your CloudBees account.
  ● Add config to: $HOME/.grails/settings.groovy

cloudbees.account = 'ACCOUNT'
cloudbees.api.key = 'KEY'
cloudbees.api.secret = 'SECRET'

The Project
Clone the project from GitHub:

git clone git@github.com:marcoVermeulen/beeline.git




                         ©2011 CloudBees, Inc. All Rights Reserved
Deploying the Beeline
The Plugin
grails install-plugin cloud-bees
Resolving plugin cloud-bees. Please wait...
...
Plugin cloud-bees-0.5 installed
Plugin provides the following new scripts:
------------------------------------------
grails bees-app-stop
grails bees-app-list
grails bees-app-restart
grails bees-app-delete
grails bees-db-info
grails bees-app-start
grails bees-test-app
grails bees-app-checksums
grails bees-db-create
grails bees-app-tail
grails bees-db-delete
grails bees-app-deploy
grails bees-app-info
grails bees-db-list




                                         ©2011 CloudBees, Inc. All Rights Reserved
Deploying the Beeline
Create a Database in the Cloud!
grails bees-db-create
Database created successfully.
Database ID : beelinez


grails bees-db-info
Database 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 : active

Also gives a handy datasource definition to copy and paste
into your DataSource.groovy file!!!




                                    ©2011 CloudBees, Inc. All Rights Reserved
Deploying the Beeline
To the Cloud we go!
grails bees-app-deploy
Preparing the BeesClient ...
Deploying hashcode/beeline tagged at version 0.1
........................uploaded 25%
........................uploaded 50%
........................uploaded 75%
........................upload completed
deploying application to server(s)...
Application uploaded successfully to: http://beeline.hashcode.cloudbees.net




                                    That's all there is to it!




                                    ©2011 CloudBees, Inc. All Rights Reserved
Grails cloud-bees Plugin



           Q&A


            ©2011 CloudBees, Inc. All Rights Reserved

Contenu connexe

Tendances

Spring Cloud Function: Where We Were, Where We Are, and Where We’re Going
Spring Cloud Function: Where We Were, Where We Are, and Where We’re GoingSpring Cloud Function: Where We Were, Where We Are, and Where We’re Going
Spring Cloud Function: Where We Were, Where We Are, and Where We’re GoingVMware Tanzu
 
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5Shaun Smith
 
Welcome to the Metrics
Welcome to the MetricsWelcome to the Metrics
Welcome to the MetricsVMware Tanzu
 
Spring Native and Spring AOT
Spring Native and Spring AOTSpring Native and Spring AOT
Spring Native and Spring AOTVMware Tanzu
 
Pivotal Cloud Foundry 2.0: First Look
Pivotal Cloud Foundry 2.0: First LookPivotal Cloud Foundry 2.0: First Look
Pivotal Cloud Foundry 2.0: First LookVMware Tanzu
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemBruno Borges
 
Java EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudJava EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudBruno Borges
 
NetDevOps Development Environments
NetDevOps Development EnvironmentsNetDevOps Development Environments
NetDevOps Development EnvironmentsJoel W. King
 
Migrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFXMigrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFXBruno Borges
 
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemTecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemBruno Borges
 
Peering Inside the Black Box: A Case for Observability
Peering Inside the Black Box: A Case for ObservabilityPeering Inside the Black Box: A Case for Observability
Peering Inside the Black Box: A Case for ObservabilityVMware Tanzu
 
Improving Your Company’s Health with Middleware Takeout
Improving Your Company’s Health with Middleware TakeoutImproving Your Company’s Health with Middleware Takeout
Improving Your Company’s Health with Middleware TakeoutVMware Tanzu
 
Oracle ravello overview
Oracle ravello overviewOracle ravello overview
Oracle ravello overviewwk c
 
Spring Boot Loves K8s
Spring Boot Loves K8sSpring Boot Loves K8s
Spring Boot Loves K8sVMware Tanzu
 
Not Just Initializing
Not Just InitializingNot Just Initializing
Not Just InitializingVMware Tanzu
 
Introduce yourself to java 17
Introduce yourself to java 17Introduce yourself to java 17
Introduce yourself to java 17ankitbhandari32
 
MicroProfile for MicroServices
MicroProfile for MicroServicesMicroProfile for MicroServices
MicroProfile for MicroServicesMert Çalışkan
 
Micronaut: A new way to build microservices
Micronaut: A new way to build microservicesMicronaut: A new way to build microservices
Micronaut: A new way to build microservicesLuram Archanjo
 

Tendances (20)

Spring Cloud Function: Where We Were, Where We Are, and Where We’re Going
Spring Cloud Function: Where We Were, Where We Are, and Where We’re GoingSpring Cloud Function: Where We Were, Where We Are, and Where We’re Going
Spring Cloud Function: Where We Were, Where We Are, and Where We’re Going
 
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
 
Welcome to the Metrics
Welcome to the MetricsWelcome to the Metrics
Welcome to the Metrics
 
Spring Native and Spring AOT
Spring Native and Spring AOTSpring Native and Spring AOT
Spring Native and Spring AOT
 
Pivotal Cloud Foundry 2.0: First Look
Pivotal Cloud Foundry 2.0: First LookPivotal Cloud Foundry 2.0: First Look
Pivotal Cloud Foundry 2.0: First Look
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na Nuvem
 
Java EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudJava EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The Cloud
 
NetDevOps Development Environments
NetDevOps Development EnvironmentsNetDevOps Development Environments
NetDevOps Development Environments
 
Migrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFXMigrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFX
 
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na NuvemTecnologias Oracle em Docker Containers On-premise e na Nuvem
Tecnologias Oracle em Docker Containers On-premise e na Nuvem
 
Peering Inside the Black Box: A Case for Observability
Peering Inside the Black Box: A Case for ObservabilityPeering Inside the Black Box: A Case for Observability
Peering Inside the Black Box: A Case for Observability
 
Improving Your Company’s Health with Middleware Takeout
Improving Your Company’s Health with Middleware TakeoutImproving Your Company’s Health with Middleware Takeout
Improving Your Company’s Health with Middleware Takeout
 
Oracle ravello overview
Oracle ravello overviewOracle ravello overview
Oracle ravello overview
 
Spring Boot Loves K8s
Spring Boot Loves K8sSpring Boot Loves K8s
Spring Boot Loves K8s
 
Not Just Initializing
Not Just InitializingNot Just Initializing
Not Just Initializing
 
Introduce yourself to java 17
Introduce yourself to java 17Introduce yourself to java 17
Introduce yourself to java 17
 
MicroProfile for MicroServices
MicroProfile for MicroServicesMicroProfile for MicroServices
MicroProfile for MicroServices
 
Ma forge++ : @Cloud
Ma forge++ : @CloudMa forge++ : @Cloud
Ma forge++ : @Cloud
 
From Monolith to K8s - Spring One 2020
From Monolith to K8s - Spring One 2020From Monolith to K8s - Spring One 2020
From Monolith to K8s - Spring One 2020
 
Micronaut: A new way to build microservices
Micronaut: A new way to build microservicesMicronaut: A new way to build microservices
Micronaut: A new way to build microservices
 

Similaire à Continuous Delivery with Grails and CloudBees

GigaSpaces Cloudify - The PaaS Jailbreaker
GigaSpaces Cloudify - The PaaS Jailbreaker GigaSpaces Cloudify - The PaaS Jailbreaker
GigaSpaces Cloudify - The PaaS Jailbreaker Uri Cohen
 
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012Arun Gupta
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishVMware Tanzu
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVMware Tanzu
 
.NET Application Modernization with PAS and Azure DevOps
.NET Application Modernization with PAS and Azure DevOps.NET Application Modernization with PAS and Azure DevOps
.NET Application Modernization with PAS and Azure DevOpsVMware Tanzu
 
Successful PaaS and CI in the Cloud - EclipseCon 2012
Successful PaaS and CI in the Cloud - EclipseCon 2012Successful PaaS and CI in the Cloud - EclipseCon 2012
Successful PaaS and CI in the Cloud - EclipseCon 2012CloudBees
 
Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins
Journée DevOps : De l'intégration continue au déploiement continu avec JenkinsJournée DevOps : De l'intégration continue au déploiement continu avec Jenkins
Journée DevOps : De l'intégration continue au déploiement continu avec JenkinsPublicis Sapient Engineering
 
Comparing open source private cloud platforms
Comparing open source private cloud platformsComparing open source private cloud platforms
Comparing open source private cloud platformsOSCON Byrum
 
Stairway to heaven webinar
Stairway to heaven webinarStairway to heaven webinar
Stairway to heaven webinarCloudBees
 
Mobile Application Testing in the Cloud - Oct 2012
Mobile Application Testing in the Cloud - Oct 2012Mobile Application Testing in the Cloud - Oct 2012
Mobile Application Testing in the Cloud - Oct 2012CloudBees
 
DevNexus 2017 - Building and Deploying 12 Factor Apps in Scala, Java, Ruby, a...
DevNexus 2017 - Building and Deploying 12 Factor Apps in Scala, Java, Ruby, a...DevNexus 2017 - Building and Deploying 12 Factor Apps in Scala, Java, Ruby, a...
DevNexus 2017 - Building and Deploying 12 Factor Apps in Scala, Java, Ruby, a...Neil Shannon
 
Intalio create and cloudfoudry - short
Intalio create and cloudfoudry - shortIntalio create and cloudfoudry - short
Intalio create and cloudfoudry - shorthmalphettes
 
Enterprise software needs a PaaS
Enterprise software needs a PaaSEnterprise software needs a PaaS
Enterprise software needs a PaaShmalphettes
 
Implementing DevOps – How it came to the fore, its key elements and example d...
Implementing DevOps – How it came to the fore, its key elements and example d...Implementing DevOps – How it came to the fore, its key elements and example d...
Implementing DevOps – How it came to the fore, its key elements and example d...Barton George
 
Custom Runtimes for the Cloud
Custom Runtimes for the CloudCustom Runtimes for the Cloud
Custom Runtimes for the CloudCloudBees
 
Getting Started with PaaS
Getting Started with PaaSGetting Started with PaaS
Getting Started with PaaSCloudBees
 
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)CloudBees
 
Getting Started with Platform-as-a-Service
Getting Started with Platform-as-a-ServiceGetting Started with Platform-as-a-Service
Getting Started with Platform-as-a-ServiceCloudBees
 

Similaire à Continuous Delivery with Grails and CloudBees (20)

GigaSpaces Cloudify - The PaaS Jailbreaker
GigaSpaces Cloudify - The PaaS Jailbreaker GigaSpaces Cloudify - The PaaS Jailbreaker
GigaSpaces Cloudify - The PaaS Jailbreaker
 
CloudBees
CloudBeesCloudBees
CloudBees
 
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
 
.NET Application Modernization with PAS and Azure DevOps
.NET Application Modernization with PAS and Azure DevOps.NET Application Modernization with PAS and Azure DevOps
.NET Application Modernization with PAS and Azure DevOps
 
Successful PaaS and CI in the Cloud - EclipseCon 2012
Successful PaaS and CI in the Cloud - EclipseCon 2012Successful PaaS and CI in the Cloud - EclipseCon 2012
Successful PaaS and CI in the Cloud - EclipseCon 2012
 
Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins
Journée DevOps : De l'intégration continue au déploiement continu avec JenkinsJournée DevOps : De l'intégration continue au déploiement continu avec Jenkins
Journée DevOps : De l'intégration continue au déploiement continu avec Jenkins
 
Comparing open source private cloud platforms
Comparing open source private cloud platformsComparing open source private cloud platforms
Comparing open source private cloud platforms
 
Stairway to heaven webinar
Stairway to heaven webinarStairway to heaven webinar
Stairway to heaven webinar
 
Mobile Application Testing in the Cloud - Oct 2012
Mobile Application Testing in the Cloud - Oct 2012Mobile Application Testing in the Cloud - Oct 2012
Mobile Application Testing in the Cloud - Oct 2012
 
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško VukmanovićJavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
JavaCro'14 - WebLogic-GlassFish-JaaS Strategy and Roadmap – Duško Vukmanović
 
DevNexus 2017 - Building and Deploying 12 Factor Apps in Scala, Java, Ruby, a...
DevNexus 2017 - Building and Deploying 12 Factor Apps in Scala, Java, Ruby, a...DevNexus 2017 - Building and Deploying 12 Factor Apps in Scala, Java, Ruby, a...
DevNexus 2017 - Building and Deploying 12 Factor Apps in Scala, Java, Ruby, a...
 
Intalio create and cloudfoudry - short
Intalio create and cloudfoudry - shortIntalio create and cloudfoudry - short
Intalio create and cloudfoudry - short
 
Enterprise software needs a PaaS
Enterprise software needs a PaaSEnterprise software needs a PaaS
Enterprise software needs a PaaS
 
Implementing DevOps – How it came to the fore, its key elements and example d...
Implementing DevOps – How it came to the fore, its key elements and example d...Implementing DevOps – How it came to the fore, its key elements and example d...
Implementing DevOps – How it came to the fore, its key elements and example d...
 
Custom Runtimes for the Cloud
Custom Runtimes for the CloudCustom Runtimes for the Cloud
Custom Runtimes for the Cloud
 
Getting Started with PaaS
Getting Started with PaaSGetting Started with PaaS
Getting Started with PaaS
 
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
 
Getting Started with Platform-as-a-Service
Getting Started with Platform-as-a-ServiceGetting Started with Platform-as-a-Service
Getting Started with Platform-as-a-Service
 

Dernier

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 

Dernier (20)

Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 

Continuous Delivery with Grails and CloudBees

  • 1. Continuous Delivery in the Cloud with ® Grails and CloudBees 09/12/11 ©2011 Cloud Bees, Inc. All Rights Reserved
  • 2. About Marco Enterprise Java developer. Now working primarily with Groovy & Grails. Advocate of using G&G on Linux! Previously: Shazam, Associated Newspapers Currently: Burberry Maintainer: Groovy, Grails and Griffon PPA for Ubuntu Grails plugins: cloud-bees, itunes-service, jmock @marcoVermeulen ©2011 CloudBees, Inc. All Rights Reserved
  • 3. About Nicolas Senior Engineer Cloudbees ● customer support ● conferences & evangelism ● DEV@Cloud contributor Jenkins contributor Maven committer JUG-Leader ©2011 CloudBees, Inc. All Rights Reserved
  • 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. All Things Continuous... Continuous Integration (CI): What is it? ©2011 CloudBees, Inc. All Rights Reserved
  • 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 Fowler http://martinfowler.com/articles/continuousIntegration.html ©2011 CloudBees, Inc. All Rights Reserved
  • 7. All Things Continuous... Continuous Deployment: "...is actually deploying every change into production, every day or more frequently." -Martin Fowler http://martinfowler.com/delivery.html ©2011 CloudBees, Inc. All Rights Reserved
  • 8. All Things Continuous... Continuous Delivery: "...is about keeping your application in a state where it is always able to deploy into production." -Martin Fowler http://martinfowler.com/delivery.html ©2011 CloudBees, Inc. All Rights Reserved
  • 9. The Deployment Pipeline ©2011 CloudBees, Inc. All Rights Reserved
  • 10. The Deployment Pipeline DEV Integ. build, test, analyse,... Staging PROD ©2011 CloudBees, Inc. All Rights Reserved
  • 11. Implementing efficient build pipeline ● smaller jobs ● parallelism ● build promotion
  • 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. The Matrix Side-by-side comparison of Cloud Vendors Vendor PaaS/IaaS Deployment Availability Tooling Hosted CI Database EC2 Iaas Deploy any Fully Available Eclipse None, may be Amazon RDS: WAR provisioned MySQL,Oracle Elastic PaaS Fully Available None Beanstalk CloudBees PaaS Deploy and Fully Available Eclipse Plugin Jenkins & MySQL, WAR Nectar 3rd party DS CloudFoundry PaaS Any Spring or Still in Beta Spring Source None MySQL, Grails app. Tool Suite Mongo, Redis +CLI Google App PaaS Java + Servlet Fully Available Eclipse + CLI None BigTable, Engine environment MySQL with JPA or JDO Gaelyk PaaS Java + Servlet Fully Available Eclipse + CLI None BigTable, env + Groovy! MySQL with JPA or JDO Heroku PaaS Not JEE Fully Available CLI None Postgres, compliant! No 3rd party SaS WARs! ©2011 CloudBees, Inc. All Rights Reserved
  • 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 we're different RUN@cloud: Frictionless runtime PaaS for Java apps
  • 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
  • 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. Grails cloud-bees Plugin Applications can be Deployed and Deleted: grails bees-app-deploy grails bees-app-delete Applications can be Interrogated: grails bees-app-info grails bees-app-list Applications can be Controlled: grails bees-app-start grails bees-app-stop grails bees-app-restart ©2011 CloudBees, Inc. All Rights Reserved
  • 19. Grails cloud-bees Plugin Application logs tailed in real time! grails bees-app-tail Dec 5, 2011 3:30:42 PM com.staxnet.appserver.utils.AppServerConfiguration readAppServerConfig INFO: loading app config: /var/staxapps/8995/appserver.xml Dec 5, 2011 3:30:42 PM com.staxnet.appserver.TomcatServerBase initConfiguration INFO: Creating Tomcat server configuration at /var/staxapps/8995/staxcat/work Dec 5, 2011 3:30:42 PM net.stax.appserver.admin.AdminEngine createAdminHttpConnector INFO: Initializing admin-http-connector protocol: org.apache.coyote.http11.Http11Protocol Dec 5, 2011 3:30:43 PM net.stax.appserver.webapp.WebAppEngine createWebContexts INFO: loading app [] from /var/staxapps/8995/staxcat/install/webapp.war Dec 5, 2011 3:30:43 PM net.stax.appserver.webapp.WebAppEngine ... ©2011 CloudBees, Inc. All Rights Reserved
  • 20. Grails cloud-bees Plugin Databases can be Provisioned and Deleted: grails bees-db-create grails bees-db-delete Databases can be Interrogated: grails bees-db-info grails bees-db-list ©2011 CloudBees, Inc. All Rights Reserved
  • 21. Grails cloud-bees Plugin Demo! ©2011 CloudBees, Inc. All Rights Reserved
  • 22. Deploying the Beeline Setup ● Open your CloudBees account. ● Add config to: $HOME/.grails/settings.groovy cloudbees.account = 'ACCOUNT' cloudbees.api.key = 'KEY' cloudbees.api.secret = 'SECRET' The Project Clone the project from GitHub: git clone git@github.com:marcoVermeulen/beeline.git ©2011 CloudBees, Inc. All Rights Reserved
  • 23. Deploying the Beeline The Plugin grails install-plugin cloud-bees Resolving plugin cloud-bees. Please wait... ... Plugin cloud-bees-0.5 installed Plugin provides the following new scripts: ------------------------------------------ grails bees-app-stop grails bees-app-list grails bees-app-restart grails bees-app-delete grails bees-db-info grails bees-app-start grails bees-test-app grails bees-app-checksums grails bees-db-create grails bees-app-tail grails bees-db-delete grails bees-app-deploy grails bees-app-info grails bees-db-list ©2011 CloudBees, Inc. All Rights Reserved
  • 24. Deploying the Beeline Create a Database in the Cloud! grails bees-db-create Database created successfully. Database ID : beelinez grails bees-db-info Database 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 : active Also gives a handy datasource definition to copy and paste into your DataSource.groovy file!!! ©2011 CloudBees, Inc. All Rights Reserved
  • 25. Deploying the Beeline To the Cloud we go! grails bees-app-deploy Preparing the BeesClient ... Deploying hashcode/beeline tagged at version 0.1 ........................uploaded 25% ........................uploaded 50% ........................uploaded 75% ........................upload completed deploying application to server(s)... Application uploaded successfully to: http://beeline.hashcode.cloudbees.net That's all there is to it! ©2011 CloudBees, Inc. All Rights Reserved
  • 26. Grails cloud-bees Plugin Q&A ©2011 CloudBees, Inc. All Rights Reserved