Nicola Bertazzo
Solution Architect / Engineering Group
Implementing a Continuous Delivery Pipeline
using OW2 Infrastructure
www.eng.it
www.eng.it
Spago4Q Team Leader
Engineering Group Solution Architect
DevOps enthusiasts
● DevOps Foundation Certificate
● Docker Administration and Operations
● Certified 2016 Jenkins Engineer
Nicola Bertazzo
- Continuous Integration and Continuous Delivery
- Continuous Delivery in OW2 Infrastructure
- Demo
www.eng.it
www.eng.it
Continuous Integration
is a software development practice where members of a team integrate their work
frequently, usually each person integrates at least daily - leading to multiple integrations
per day
Martin Fowler - Continuous Integration
CI and CD / Continuous Integration
www.eng.it
Continuous Delivery
Is a software development discipline where you build software in such a way that the
software can be released to production at any time.
You’re doing continuous delivery when:
●
Your software is deployable throughout its lifecycle
●
Your team prioritizes keeping the software deployable over working on new features
●
Anybody can get fast, automated feedback on the production readiness of their
systems any time somebody makes a change to them
●
You can perform push-button deployments of any version of the software to any
environment on demand
Martin Fowler - Continuous Delivery
CI and CD / Continuous Delivery
www.eng.it
CI and CD / Continuous Delivery vs Deployment
https://www.atlassian.com/continuous-delivery/ci-vs-ci-vs-cd
www.eng.it
CI and CD / Requirements
Source Code
Management
Project
Automation
Scripts
Automation
Server and
slaves
- Continuous Integration and Continuous Delivery
- Continuous Delivery in OW2 Infrastructure
- Demo
www.eng.it
www.eng.it
CD in OW2 Infrastructure / OW2 IT Infrastructure
https://www.ow2.org/view/IT_Infrastructure/
www.eng.it
CD in OW2 Infrastructure / Requirements
Source Code
Management
Project
Automation
Scripts
Automation
Server and
slaves
www.eng.it
CD in OW2 Infrastructure / OW2 IT Infrastructure
https://www.ow2.org/view/IT_Infrastructure/
✔CD APPROVED
- Continuous Integration and Continuous Delivery
- Continuous Delivery in OW2 Infrastructure
- Demo
www.eng.it
www.eng.it
Demo / Intro
●
Simple Java web application
●
Released as Docker container
www.eng.it
Agents (Automation slave):
●
1 agent to build the project (maven_3_3_9)
●
1 agent to build and push the docker image (docker_build)
●
1 agent for each environment to release the container
(docker_production, docker_staging)
maven_3_3_9 docker_build docker_staging docker_production
Demo / Set Up
www.eng.it
https://youtu.be/klsbZU_hkyA
Demo / Set Up
www.eng.it
Demo / Pipeline Definition
https://gitlab.ow2.org/spago4q/demoapp/blob/master/.gitlab-ci.yml
Build
- mvn clean package
Registry
- docker build
- docker tag and push
Staging
- docker run
Production
- ask for the deploy
- deploy
maven_3_3_9
docker_build
docker_staging
docker_production
any branches
master branch
www.eng.it
Demo / Execution
https://youtu.be/qtKvbU1GpjA
@EngineeringSpa
Engineering Ingegneria
Informatica Spa
gruppo.engineering
www.eng.it
@nicolabertazzo
Nicola Bertazzo
Nicola Bertazzo

Implementing a Continuous Delivery pipeline using OW2 infrastructure, OW2con'18, June 7-8, 2018, Paris

  • 1.
    Nicola Bertazzo Solution Architect/ Engineering Group Implementing a Continuous Delivery Pipeline using OW2 Infrastructure www.eng.it
  • 2.
    www.eng.it Spago4Q Team Leader EngineeringGroup Solution Architect DevOps enthusiasts ● DevOps Foundation Certificate ● Docker Administration and Operations ● Certified 2016 Jenkins Engineer Nicola Bertazzo
  • 3.
    - Continuous Integrationand Continuous Delivery - Continuous Delivery in OW2 Infrastructure - Demo www.eng.it
  • 4.
    www.eng.it Continuous Integration is asoftware development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day Martin Fowler - Continuous Integration CI and CD / Continuous Integration
  • 5.
    www.eng.it Continuous Delivery Is asoftware development discipline where you build software in such a way that the software can be released to production at any time. You’re doing continuous delivery when: ● Your software is deployable throughout its lifecycle ● Your team prioritizes keeping the software deployable over working on new features ● Anybody can get fast, automated feedback on the production readiness of their systems any time somebody makes a change to them ● You can perform push-button deployments of any version of the software to any environment on demand Martin Fowler - Continuous Delivery CI and CD / Continuous Delivery
  • 6.
    www.eng.it CI and CD/ Continuous Delivery vs Deployment https://www.atlassian.com/continuous-delivery/ci-vs-ci-vs-cd
  • 7.
    www.eng.it CI and CD/ Requirements Source Code Management Project Automation Scripts Automation Server and slaves
  • 8.
    - Continuous Integrationand Continuous Delivery - Continuous Delivery in OW2 Infrastructure - Demo www.eng.it
  • 9.
    www.eng.it CD in OW2Infrastructure / OW2 IT Infrastructure https://www.ow2.org/view/IT_Infrastructure/
  • 10.
    www.eng.it CD in OW2Infrastructure / Requirements Source Code Management Project Automation Scripts Automation Server and slaves
  • 11.
    www.eng.it CD in OW2Infrastructure / OW2 IT Infrastructure https://www.ow2.org/view/IT_Infrastructure/ ✔CD APPROVED
  • 12.
    - Continuous Integrationand Continuous Delivery - Continuous Delivery in OW2 Infrastructure - Demo www.eng.it
  • 13.
    www.eng.it Demo / Intro ● SimpleJava web application ● Released as Docker container
  • 14.
    www.eng.it Agents (Automation slave): ● 1agent to build the project (maven_3_3_9) ● 1 agent to build and push the docker image (docker_build) ● 1 agent for each environment to release the container (docker_production, docker_staging) maven_3_3_9 docker_build docker_staging docker_production Demo / Set Up
  • 15.
  • 16.
    www.eng.it Demo / PipelineDefinition https://gitlab.ow2.org/spago4q/demoapp/blob/master/.gitlab-ci.yml Build - mvn clean package Registry - docker build - docker tag and push Staging - docker run Production - ask for the deploy - deploy maven_3_3_9 docker_build docker_staging docker_production any branches master branch
  • 17.
  • 18.