SlideShare a Scribd company logo
1 of 45
Download to read offline
Continuous Delivery in Enterprise Environments
using Docker, Ansible and Jenkins_
Dennis Schulte, Marcel Birkner
codecentric AG
2
Our Project Experience
3
Our experiences using Docker_
4
Build/Test/Deployment
Infrastructure
Getting Started with Docker
JBoss / Java EE
Standardization, Conformity, Compliance
(Security)
Dashboard
Microservices, Lightweight, Technology
Flexibility
Greenfield Enterprise Speed, Flexibility, Duplicated Environments
20 % Learning / using new technologies
Our experiences using Docker_
5
Build/Test/Deployment
Infrastructure
Getting Started with Docker
JBoss / Java EE
Standardization, Conformity, Compliance
(Security)
Dashboard
Microservices, Lightweight, Technology
Flexibility
Greenfield Enterprise Speed, Flexibility, Duplicated Environments
20 % Learning / using new technologies
JBoss / Java EE_
CI/CD Pipeline
Jenkins GitLab SonarQube Nexus SeleniumHub
Backend
DB2
ERP
LDAP
IMS
Applications
JBoss EE JBoss EEJBoss EE JBoss EE JBoss EE
JBoss EE JBoss EEJBoss EE JBoss EE JBoss EE
JBoss EE JBoss EEJBoss EE JBoss EE JBoss EE
JBoss EE JBoss EEJBoss EE JBoss EE JBoss EE
Platform
VMWareVagrant
Our experiences using Docker_
7
Build/Test/Deployment
Infrastructure
Getting Started with Docker
JBoss / Java EE
Standardization, Conformity, Compliance
(Security)
Dashboard
Microservices, Lightweight, Technology
Flexibility
Greenfield Enterprise Speed, Flexibility, Duplicated Environments
20 % Learning / using new technologies
Platform
CI/CD Pipeline
Jenkins
GitHub EE
SonarQube Nexus SeleniumHub
Backend
JIRA
WordPress
Xing
IMS
OpenStack
Dashboard_
Application
ReactJS Spring Boot Cassandra Spring Boot
AngularJS Scala Postgres Spring Boot
Static HTML NodeJS SpringBatch Keycloak
Neo4J JBoss EE NginxReactJS
Our experiences using Docker_
9
Build/Test/Deployment
Infrastructure
Getting Started with Docker
JBoss / Java EE
Standardization, Conformity, Compliance
(Security)
Dashboard
Microservices, Lightweight, Technology
Flexibility
Greenfield Enterprise Speed, Flexibility, Duplicated Environments
20 % Learning / using new technologies
Greenfield Enterprise_
Application
ReactJS Spring Boot DB2
SpringBatch
PostgresNginx
HSQL
SpringBatch
SpringBatch
SpringBatch
SpringBatch
SpringBatch
SpringBatch
SpringBatch
Spring Boot
Spring Boot
Admin
Platform
OpenStack
Backend
WebServices
Oracle
SAP
LDAP
Vagrant VMWare
CI/CD Pipeline
Jenkins
GitHub EE
SonarQube Nexus SeleniumHub
INFRASTRUCTURE AS CODE
11
12
WRITE, PLAN, AND CREATE
INFRASTRUCTURE AS CODE
13
OpenStack
AWS
VMWare
Platform
Compute
Instances
Compute
Instances
Compute
Instances
Compute
Instances
JBoss EE
Spring Boot
ReactJS
Neo4j
Infrastructure Automation_
Terraform :: Define Region & SSH Key Pair_
14
Terraform :: Define Security Group_
15
Terraform :: Define Resource_
16
Terraform :: Roll out_
•terraform plan
•terraform apply
17
18
APP DEPLOYMENT, CONFIGURATION
MANAGEMENTAND ORCHESTRATION
Ansible :: CD Infrastructure Provisioning_
•ansible-playbook site.yml
19
CI/CD Pipeline
Jenkins GitLab SonarQube Nexus SeleniumHub
Ansible :: Jenkins Role (directory listing)_
20
Ansible :: Jenkins Role (Ansible Task Excerpt)_
21
Ansible :: Application Provisioning_
•ansible-playbook site.yml
22
Application
ReactJS Spring Boot Postgres
Ansible :: Spring Boot Role (excerpt)_
23
Ansible :: Application Deployment_
•ansible-playbook deploy-example-application.yml

--extra-vars "version=1.0.0"
•ansible-playbook undeploy-example-application.yml
24
ReactJS Spring Boot Postgres
25
Ansible :: Infrastructure Repository :: Inventory & Playbooks_
Ansible Playbooks & Settings
{Environment specific settings
{
Continuous Delivery
using Docker
26
Software Development Process_
27
Developer
GitLab Jenkins
SonarQube
Nexus
Build and Release
SeleniumHub
Docker Registry
Deployment
Jenkins
GitLab
Staging
Spring Boot
Test
Spring Boot
Prod
Spring Boot
Dev
Spring Boot
Live Demo
28
29
Jenkins :: Docker Images Build Jobs_
30
Jenkins :: Example App Build & Deploy Jobs_
31
Jenkins :: Application Deployment Job_
32
Jenkins :: Example Spring Boot Application_
Demo End
33
Docker :: Image Hierarchy_
34
centos:7
jre:8jdk:8
jenkins-master:LTS example-application:
1.0.0
nexus:LTS sonarqube:LTS example-application:
1.0.0
example-application:
1.0.0
example-application:
1.0.0
example-application:
1.0.0
Docker :: JRE & Example Application Dockerfile_
35
jre:8
example-application:
1.0.0
Docker :: Image Hierarchy :: JBoss Migration_
rhel:7.2
jre:8jdk:8
jenkins-master:LTS eap:6.4nexus:LTS sonarqube:LTS
jboss-application:
1.0.0
jboss-application:
1.1.0
jboss-application:
1.2.0
Docker :: EAP Dockerfile_
37
eap:6.4
Docker :: JBoss Dockerfile_
38
jboss-application:1.0.0
Best Practices
39
•Everything is in version control
•Use Ansible inventory for environment specific information
•Use Ansible Vault for secure storage for passwords
•Generate Jenkins Jobs automatically via Job DSL
• GitLab REST API
•One Click Release & Deployments
Best practices_
40
Automate Everything
•All application run in Docker container
•Environment independent Docker images
•Use latest OS version (recent Kernel)
•Use fixed Docker / Ansible versions
•Have a clone of every system for testing new versions
• incl. CI/CD Pipeline
•Create User / Group (uid/gid) per Application Type
• required for volume mount permissions
•Do not run Docker Container under root!
Docker_
41
Stable Docker Setup
42
•Company Proxies
• HTTPs / Man-in-the-Middle
•Self-signed Certificates (HTTPs)
•Freedom to spin up servers using Terraform
•Automate network configuration
•Keynote
• Jean-Jacques van Oosten: "Do not compromise!"
Enterprise Environments_
43
Typical problems
44
“Thanks for your attention.”
45
Marcel Birkner,
Software-Consultant
codecentric AG
Hochstraße 11
42697 Solingen, Deutschland
marcel.birkner@codecentric.de
www.codecentric.de
blog.codecentric.de
marcelbirkner
Senior IT-Consultant
codecentric AG
Hochstraße 11
42697 Solingen, Deutschland
dennis.schulte@codecentric.de
www.codecentric.de
blog.codecentric.de
denschu
Dennis Schulte,

More Related Content

What's hot

Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법pyrasis
 
Docker introduction
Docker introductionDocker introduction
Docker introductionPhuc Nguyen
 
DCEU 18: Dockerfile Best Practices
DCEU 18: Dockerfile Best PracticesDCEU 18: Dockerfile Best Practices
DCEU 18: Dockerfile Best PracticesDocker, Inc.
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017Docker, Inc.
 
Docker introduction
Docker introductionDocker introduction
Docker introductiondotCloud
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CDHoang Le
 
Introduction to Docker storage, volume and image
Introduction to Docker storage, volume and imageIntroduction to Docker storage, volume and image
Introduction to Docker storage, volume and imageejlp12
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkinsAbe Diaz
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT CampusAjeet Singh Raina
 
ArgoCD and Tekton: Match made in Kubernetes heaven | DevNation Tech Talk
ArgoCD and Tekton: Match made in Kubernetes heaven | DevNation Tech TalkArgoCD and Tekton: Match made in Kubernetes heaven | DevNation Tech Talk
ArgoCD and Tekton: Match made in Kubernetes heaven | DevNation Tech TalkRed Hat Developers
 
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...Edureka!
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker, Inc.
 
CD using ArgoCD(KnolX).pdf
CD using ArgoCD(KnolX).pdfCD using ArgoCD(KnolX).pdf
CD using ArgoCD(KnolX).pdfKnoldus Inc.
 
Docker Containers Deep Dive
Docker Containers Deep DiveDocker Containers Deep Dive
Docker Containers Deep DiveWill Kinard
 
Podman Overview and internals.pdf
Podman Overview and internals.pdfPodman Overview and internals.pdf
Podman Overview and internals.pdfSaim Safder
 
Optimizing Docker Images
Optimizing Docker ImagesOptimizing Docker Images
Optimizing Docker ImagesBrian DeHamer
 

What's hot (20)

Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법Docker란 무엇인가? : Docker 기본 사용법
Docker란 무엇인가? : Docker 기본 사용법
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
DCEU 18: Dockerfile Best Practices
DCEU 18: Dockerfile Best PracticesDCEU 18: Dockerfile Best Practices
DCEU 18: Dockerfile Best Practices
 
Docker in real life
Docker in real lifeDocker in real life
Docker in real life
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 
Introduction to Docker storage, volume and image
Introduction to Docker storage, volume and imageIntroduction to Docker storage, volume and image
Introduction to Docker storage, volume and image
 
Jenkins Pipelines
Jenkins PipelinesJenkins Pipelines
Jenkins Pipelines
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkins
 
Introduction to Docker - VIT Campus
Introduction to Docker - VIT CampusIntroduction to Docker - VIT Campus
Introduction to Docker - VIT Campus
 
ArgoCD and Tekton: Match made in Kubernetes heaven | DevNation Tech Talk
ArgoCD and Tekton: Match made in Kubernetes heaven | DevNation Tech TalkArgoCD and Tekton: Match made in Kubernetes heaven | DevNation Tech Talk
ArgoCD and Tekton: Match made in Kubernetes heaven | DevNation Tech Talk
 
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to Docker
 
CD using ArgoCD(KnolX).pdf
CD using ArgoCD(KnolX).pdfCD using ArgoCD(KnolX).pdf
CD using ArgoCD(KnolX).pdf
 
Docker Containers Deep Dive
Docker Containers Deep DiveDocker Containers Deep Dive
Docker Containers Deep Dive
 
Podman Overview and internals.pdf
Podman Overview and internals.pdfPodman Overview and internals.pdf
Podman Overview and internals.pdf
 
Docker on Docker
Docker on DockerDocker on Docker
Docker on Docker
 
Jenkins
JenkinsJenkins
Jenkins
 
Optimizing Docker Images
Optimizing Docker ImagesOptimizing Docker Images
Optimizing Docker Images
 

Viewers also liked

Automate App Container Delivery with CI/CD and DevOps
Automate App Container Delivery with CI/CD and DevOpsAutomate App Container Delivery with CI/CD and DevOps
Automate App Container Delivery with CI/CD and DevOpsDaniel Oh
 
Using Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsUsing Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsMicael Gallego
 
Jenkins, pipeline and docker
Jenkins, pipeline and docker Jenkins, pipeline and docker
Jenkins, pipeline and docker AgileDenver
 
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Docker, Inc.
 
Deploying Spring Boot applications with Docker (east bay cloud meetup dec 2014)
Deploying Spring Boot applications with Docker (east bay cloud meetup dec 2014)Deploying Spring Boot applications with Docker (east bay cloud meetup dec 2014)
Deploying Spring Boot applications with Docker (east bay cloud meetup dec 2014)Chris Richardson
 
Infrastructure Deployment with Docker & Ansible
Infrastructure Deployment with Docker & AnsibleInfrastructure Deployment with Docker & Ansible
Infrastructure Deployment with Docker & AnsibleRobert Reiz
 

Viewers also liked (6)

Automate App Container Delivery with CI/CD and DevOps
Automate App Container Delivery with CI/CD and DevOpsAutomate App Container Delivery with CI/CD and DevOps
Automate App Container Delivery with CI/CD and DevOps
 
Using Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsUsing Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and Jenkins
 
Jenkins, pipeline and docker
Jenkins, pipeline and docker Jenkins, pipeline and docker
Jenkins, pipeline and docker
 
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
 
Deploying Spring Boot applications with Docker (east bay cloud meetup dec 2014)
Deploying Spring Boot applications with Docker (east bay cloud meetup dec 2014)Deploying Spring Boot applications with Docker (east bay cloud meetup dec 2014)
Deploying Spring Boot applications with Docker (east bay cloud meetup dec 2014)
 
Infrastructure Deployment with Docker & Ansible
Infrastructure Deployment with Docker & AnsibleInfrastructure Deployment with Docker & Ansible
Infrastructure Deployment with Docker & Ansible
 

Similar to Continuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins

SwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptxSwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptxGrace Jansen
 
Building Slack's internal developer platform as a product.pdf
Building Slack's internal developer platform as a product.pdfBuilding Slack's internal developer platform as a product.pdf
Building Slack's internal developer platform as a product.pdfJavier Turégano Molina
 
Tech Talk: DevOps at LeanIX @ Startup Camp Berlin
Tech Talk: DevOps at LeanIX @ Startup Camp BerlinTech Talk: DevOps at LeanIX @ Startup Camp Berlin
Tech Talk: DevOps at LeanIX @ Startup Camp BerlinLeanIX GmbH
 
Continuous Delivery with Docker and Amazon ECS
Continuous Delivery with Docker and Amazon ECSContinuous Delivery with Docker and Amazon ECS
Continuous Delivery with Docker and Amazon ECSAmazon Web Services
 
Linuxing in London: Docker Intro Workshop
Linuxing in London: Docker Intro WorkshopLinuxing in London: Docker Intro Workshop
Linuxing in London: Docker Intro WorkshopElton Stoneman
 
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthPittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthGrace Jansen
 
Docker Jenkins Pipeline Tutorial | Microservices Using Docker & Jenkins | Dev...
Docker Jenkins Pipeline Tutorial | Microservices Using Docker & Jenkins | Dev...Docker Jenkins Pipeline Tutorial | Microservices Using Docker & Jenkins | Dev...
Docker Jenkins Pipeline Tutorial | Microservices Using Docker & Jenkins | Dev...Edureka!
 
Architect your app modernization journey with containers on Microsoft Azure
Architect your app modernization journey with containers on Microsoft AzureArchitect your app modernization journey with containers on Microsoft Azure
Architect your app modernization journey with containers on Microsoft AzureDavide Benvegnù
 
Inria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMP
Inria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMPInria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMP
Inria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMPStéphanie Roger
 
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"CloudBees
 
Docker, a new LINUX container technology based light weight virtualization
Docker, a new LINUX container technology based light weight virtualizationDocker, a new LINUX container technology based light weight virtualization
Docker, a new LINUX container technology based light weight virtualizationSuresh Balla
 
Exploring MySQL Operator for Kubernetes in Python
Exploring MySQL Operator for Kubernetes in PythonExploring MySQL Operator for Kubernetes in Python
Exploring MySQL Operator for Kubernetes in PythonIvan Ma
 
Jenkins Evolutions - JEEConf 2012
Jenkins Evolutions - JEEConf 2012Jenkins Evolutions - JEEConf 2012
Jenkins Evolutions - JEEConf 2012Anton Arhipov
 
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB201904_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019Kumton Suttiraksiri
 
Unleashing Docker with Pipelines in Bitbucket Cloud
Unleashing Docker with Pipelines in Bitbucket CloudUnleashing Docker with Pipelines in Bitbucket Cloud
Unleashing Docker with Pipelines in Bitbucket CloudAtlassian
 
Continuous delivery with Jenkins Enterprise and Deployit
Continuous delivery with Jenkins Enterprise and DeployitContinuous delivery with Jenkins Enterprise and Deployit
Continuous delivery with Jenkins Enterprise and DeployitXebiaLabs
 
Enhance your Agility with DevOps
Enhance your Agility with DevOpsEnhance your Agility with DevOps
Enhance your Agility with DevOpsEdureka!
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsAmazon Web Services
 
The Long Awaited Cloud Solution - Azure Stack Service and Use Case
The Long Awaited Cloud Solution - Azure Stack Service and Use Case The Long Awaited Cloud Solution - Azure Stack Service and Use Case
The Long Awaited Cloud Solution - Azure Stack Service and Use Case PT Datacomm Diangraha
 

Similar to Continuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins (20)

Jenkins & IaC
Jenkins & IaCJenkins & IaC
Jenkins & IaC
 
SwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptxSwissJUG_Bringing the cloud back down to earth.pptx
SwissJUG_Bringing the cloud back down to earth.pptx
 
Building Slack's internal developer platform as a product.pdf
Building Slack's internal developer platform as a product.pdfBuilding Slack's internal developer platform as a product.pdf
Building Slack's internal developer platform as a product.pdf
 
Tech Talk: DevOps at LeanIX @ Startup Camp Berlin
Tech Talk: DevOps at LeanIX @ Startup Camp BerlinTech Talk: DevOps at LeanIX @ Startup Camp Berlin
Tech Talk: DevOps at LeanIX @ Startup Camp Berlin
 
Continuous Delivery with Docker and Amazon ECS
Continuous Delivery with Docker and Amazon ECSContinuous Delivery with Docker and Amazon ECS
Continuous Delivery with Docker and Amazon ECS
 
Linuxing in London: Docker Intro Workshop
Linuxing in London: Docker Intro WorkshopLinuxing in London: Docker Intro Workshop
Linuxing in London: Docker Intro Workshop
 
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earthPittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
PittsburgJUG_Cloud-Native Dev Tools: Bringing the cloud back to earth
 
Docker Jenkins Pipeline Tutorial | Microservices Using Docker & Jenkins | Dev...
Docker Jenkins Pipeline Tutorial | Microservices Using Docker & Jenkins | Dev...Docker Jenkins Pipeline Tutorial | Microservices Using Docker & Jenkins | Dev...
Docker Jenkins Pipeline Tutorial | Microservices Using Docker & Jenkins | Dev...
 
Architect your app modernization journey with containers on Microsoft Azure
Architect your app modernization journey with containers on Microsoft AzureArchitect your app modernization journey with containers on Microsoft Azure
Architect your app modernization journey with containers on Microsoft Azure
 
Inria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMP
Inria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMPInria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMP
Inria Tech Talk : Comment améliorer la qualité de vos logiciels avec STAMP
 
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"
JUC Europe 2015: Bringing CD at Cloud-Scale with Jenkins, Docker and "Tiger"
 
Docker, a new LINUX container technology based light weight virtualization
Docker, a new LINUX container technology based light weight virtualizationDocker, a new LINUX container technology based light weight virtualization
Docker, a new LINUX container technology based light weight virtualization
 
Exploring MySQL Operator for Kubernetes in Python
Exploring MySQL Operator for Kubernetes in PythonExploring MySQL Operator for Kubernetes in Python
Exploring MySQL Operator for Kubernetes in Python
 
Jenkins Evolutions - JEEConf 2012
Jenkins Evolutions - JEEConf 2012Jenkins Evolutions - JEEConf 2012
Jenkins Evolutions - JEEConf 2012
 
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB201904_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
 
Unleashing Docker with Pipelines in Bitbucket Cloud
Unleashing Docker with Pipelines in Bitbucket CloudUnleashing Docker with Pipelines in Bitbucket Cloud
Unleashing Docker with Pipelines in Bitbucket Cloud
 
Continuous delivery with Jenkins Enterprise and Deployit
Continuous delivery with Jenkins Enterprise and DeployitContinuous delivery with Jenkins Enterprise and Deployit
Continuous delivery with Jenkins Enterprise and Deployit
 
Enhance your Agility with DevOps
Enhance your Agility with DevOpsEnhance your Agility with DevOps
Enhance your Agility with DevOps
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
The Long Awaited Cloud Solution - Azure Stack Service and Use Case
The Long Awaited Cloud Solution - Azure Stack Service and Use Case The Long Awaited Cloud Solution - Azure Stack Service and Use Case
The Long Awaited Cloud Solution - Azure Stack Service and Use Case
 

Recently uploaded

Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Lecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).pptLecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).pptesrabilgic2
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 

Recently uploaded (20)

Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Lecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).pptLecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).ppt
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 

Continuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins

  • 1. Continuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins_ Dennis Schulte, Marcel Birkner codecentric AG
  • 2. 2
  • 4. Our experiences using Docker_ 4 Build/Test/Deployment Infrastructure Getting Started with Docker JBoss / Java EE Standardization, Conformity, Compliance (Security) Dashboard Microservices, Lightweight, Technology Flexibility Greenfield Enterprise Speed, Flexibility, Duplicated Environments 20 % Learning / using new technologies
  • 5. Our experiences using Docker_ 5 Build/Test/Deployment Infrastructure Getting Started with Docker JBoss / Java EE Standardization, Conformity, Compliance (Security) Dashboard Microservices, Lightweight, Technology Flexibility Greenfield Enterprise Speed, Flexibility, Duplicated Environments 20 % Learning / using new technologies
  • 6. JBoss / Java EE_ CI/CD Pipeline Jenkins GitLab SonarQube Nexus SeleniumHub Backend DB2 ERP LDAP IMS Applications JBoss EE JBoss EEJBoss EE JBoss EE JBoss EE JBoss EE JBoss EEJBoss EE JBoss EE JBoss EE JBoss EE JBoss EEJBoss EE JBoss EE JBoss EE JBoss EE JBoss EEJBoss EE JBoss EE JBoss EE Platform VMWareVagrant
  • 7. Our experiences using Docker_ 7 Build/Test/Deployment Infrastructure Getting Started with Docker JBoss / Java EE Standardization, Conformity, Compliance (Security) Dashboard Microservices, Lightweight, Technology Flexibility Greenfield Enterprise Speed, Flexibility, Duplicated Environments 20 % Learning / using new technologies
  • 8. Platform CI/CD Pipeline Jenkins GitHub EE SonarQube Nexus SeleniumHub Backend JIRA WordPress Xing IMS OpenStack Dashboard_ Application ReactJS Spring Boot Cassandra Spring Boot AngularJS Scala Postgres Spring Boot Static HTML NodeJS SpringBatch Keycloak Neo4J JBoss EE NginxReactJS
  • 9. Our experiences using Docker_ 9 Build/Test/Deployment Infrastructure Getting Started with Docker JBoss / Java EE Standardization, Conformity, Compliance (Security) Dashboard Microservices, Lightweight, Technology Flexibility Greenfield Enterprise Speed, Flexibility, Duplicated Environments 20 % Learning / using new technologies
  • 10. Greenfield Enterprise_ Application ReactJS Spring Boot DB2 SpringBatch PostgresNginx HSQL SpringBatch SpringBatch SpringBatch SpringBatch SpringBatch SpringBatch SpringBatch Spring Boot Spring Boot Admin Platform OpenStack Backend WebServices Oracle SAP LDAP Vagrant VMWare CI/CD Pipeline Jenkins GitHub EE SonarQube Nexus SeleniumHub
  • 12. 12 WRITE, PLAN, AND CREATE INFRASTRUCTURE AS CODE
  • 14. Terraform :: Define Region & SSH Key Pair_ 14
  • 15. Terraform :: Define Security Group_ 15
  • 16. Terraform :: Define Resource_ 16
  • 17. Terraform :: Roll out_ •terraform plan •terraform apply 17
  • 19. Ansible :: CD Infrastructure Provisioning_ •ansible-playbook site.yml 19 CI/CD Pipeline Jenkins GitLab SonarQube Nexus SeleniumHub
  • 20. Ansible :: Jenkins Role (directory listing)_ 20
  • 21. Ansible :: Jenkins Role (Ansible Task Excerpt)_ 21
  • 22. Ansible :: Application Provisioning_ •ansible-playbook site.yml 22 Application ReactJS Spring Boot Postgres
  • 23. Ansible :: Spring Boot Role (excerpt)_ 23
  • 24. Ansible :: Application Deployment_ •ansible-playbook deploy-example-application.yml
 --extra-vars "version=1.0.0" •ansible-playbook undeploy-example-application.yml 24 ReactJS Spring Boot Postgres
  • 25. 25 Ansible :: Infrastructure Repository :: Inventory & Playbooks_ Ansible Playbooks & Settings {Environment specific settings {
  • 27. Software Development Process_ 27 Developer GitLab Jenkins SonarQube Nexus Build and Release SeleniumHub Docker Registry Deployment Jenkins GitLab Staging Spring Boot Test Spring Boot Prod Spring Boot Dev Spring Boot
  • 29. 29 Jenkins :: Docker Images Build Jobs_
  • 30. 30 Jenkins :: Example App Build & Deploy Jobs_
  • 31. 31 Jenkins :: Application Deployment Job_
  • 32. 32 Jenkins :: Example Spring Boot Application_
  • 34. Docker :: Image Hierarchy_ 34 centos:7 jre:8jdk:8 jenkins-master:LTS example-application: 1.0.0 nexus:LTS sonarqube:LTS example-application: 1.0.0 example-application: 1.0.0 example-application: 1.0.0 example-application: 1.0.0
  • 35. Docker :: JRE & Example Application Dockerfile_ 35 jre:8 example-application: 1.0.0
  • 36. Docker :: Image Hierarchy :: JBoss Migration_ rhel:7.2 jre:8jdk:8 jenkins-master:LTS eap:6.4nexus:LTS sonarqube:LTS jboss-application: 1.0.0 jboss-application: 1.1.0 jboss-application: 1.2.0
  • 37. Docker :: EAP Dockerfile_ 37 eap:6.4
  • 38. Docker :: JBoss Dockerfile_ 38 jboss-application:1.0.0
  • 40. •Everything is in version control •Use Ansible inventory for environment specific information •Use Ansible Vault for secure storage for passwords •Generate Jenkins Jobs automatically via Job DSL • GitLab REST API •One Click Release & Deployments Best practices_ 40 Automate Everything
  • 41. •All application run in Docker container •Environment independent Docker images •Use latest OS version (recent Kernel) •Use fixed Docker / Ansible versions •Have a clone of every system for testing new versions • incl. CI/CD Pipeline •Create User / Group (uid/gid) per Application Type • required for volume mount permissions •Do not run Docker Container under root! Docker_ 41 Stable Docker Setup
  • 42. 42
  • 43. •Company Proxies • HTTPs / Man-in-the-Middle •Self-signed Certificates (HTTPs) •Freedom to spin up servers using Terraform •Automate network configuration •Keynote • Jean-Jacques van Oosten: "Do not compromise!" Enterprise Environments_ 43 Typical problems
  • 44. 44
  • 45. “Thanks for your attention.” 45 Marcel Birkner, Software-Consultant codecentric AG Hochstraße 11 42697 Solingen, Deutschland marcel.birkner@codecentric.de www.codecentric.de blog.codecentric.de marcelbirkner Senior IT-Consultant codecentric AG Hochstraße 11 42697 Solingen, Deutschland dennis.schulte@codecentric.de www.codecentric.de blog.codecentric.de denschu Dennis Schulte,