SlideShare a Scribd company logo
1 of 43
Download to read offline
Continuous Integration using Docker & 
Jenkins 
LinuxCon Europe 2014 October 13-15, 2014 
Mattias Giese 
Solutions Architect 
B1 Systems GmbH 
giese@b1-systems.de 
B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development
Introducing B1 Systems 
founded in 2004 
operating both nationally and internationally 
more than 60 employees; low employee turnover 
Provider for IBM, SUSE, Oracle & HP 
vendor-independent (hardware and software) 
Focus: 
Consulting 
Support 
Development 
Training 
Operations 
Solutions 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 2 / 43
Areas of Expertise 
Virtualization (XEN, KVM & RHEV) 
Systems management (Spacewalk, Red Hat Satellite, SUSE 
Manager) 
Configuration management (Puppet & Chef) 
Monitoring (Nagios & Icinga) 
IaaS Cloud (OpenStack & SUSE Cloud) 
High availability (Pacemaker) 
Shared Storage (GPFS, OCFS2, DRBD & CEPH) 
File Sharing (ownCloud) 
Packaging (Open Build Service) 
Providing on-site systems administration and/or development 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 3 / 43
Partners 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 4 / 43
Deployment Stack 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 5 / 43
Deployment Stack – Technologies Used 
Docker an open platform for developers and sysadmins to build, 
ship, and run distributed applications 
Fig a Docker orchestration tool 
Gitlab an Open Source software to collaborate on code 
Jenkins an Open Source continuous integration system 
Puppet/r10k an Open Source configuration management system to 
define the state of an IT infrastructure and to 
automatically enforce this state 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 6 / 43
Docker – Build, Ship and 
Run Applications 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 7 / 43
What is Docker? 
an open platform for developers and sysadmins 
Open Source Engine to standardize LXC 
build, ship and run (distributed) applications 
easy to use 
create and share images 
chroot on steroids 
all you need is inside the container 
not a Virtual Server – less overhead 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 8 / 43
Technologies Used 
Linux Containers (LXC) 
chroot 
use of Linux Kernel features: 
cgroups 
kernel namespaces 
. . . 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 9 / 43
Features 
can run any distribution 
“if it will run on Linux it will run in Docker” 
limited to the same architecture as the host 
all you need is inside the container 
libraries 
dependencies 
. . . 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 10 / 43
Fig – A Docker Orchestration Tool 
simple orchestration tool for Docker 
easy to deploy and use 
helps to define and control a multi-container service 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 11 / 43
GitLab – Collaboration on Code 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 12 / 43
Features 
completely free and Open Source 
manage and browse Git repositories 
keep your code secure on own server 
manage access permissions 
perform code review and merge requests 
hooks 
much more! 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 13 / 43
Gitlab 1/3 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 14 / 43
Gitlab 2/3 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 15 / 43
Gitlab 3/3 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 16 / 43
Jenkins – Continuous Integration 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 17 / 43
What is Jenkins? 
Jenkins is a server-based system for continuous integration 
running in a servlet container (like Apache Tomcat). 
Jenkins supports SCM tools including AccuRev, CVS, 
Subversion, Git, Mercurial, Perforce, Clearcase and RTC, and 
can execute Apache Ant and Apache Maven. 
Jenkins is free software, released under the MIT License. 
Builds can be started by various means, including being 
triggered by commit in a version control system. 
Jenkins monitors executions of repeated jobs, such as building a 
software project or jobs run by cron. 
Jenkins is written in Java and released under the MIT License. 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 18 / 43
Jenkins 1/3 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 19 / 43
Jenkins 2/3 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 20 / 43
Jenkins 3/3 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 21 / 43
Jenkins Plugins 
Docker Buildstep allows to add various docker commands into a job 
as a build step. 
Docker publish provides the ability to build projects with a Dockerfile 
and publish them to the docker registry. 
Git allows the use of Git as a build SCM. 
Gitlab a build trigger that makes GitLab think Jenkins is a 
GitLab CI. 
Build Pipeline Plugin provides a Build Pipeline View of upstream and 
downstream connected jobs that typically form a build 
pipeline. 
Downstream-Ext Plugin supports extended configuration for 
triggering downstream builds. 
Publish Over SSH Plugin transfers files and data secured by SSH. 
Chuck Norris ;) . . . 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 22 / 43
Jenkins – Build Pipeline Plugin 
provides a Build Pipeline View of upstream and downstream 
connected jobs that typically form a build pipeline. 
offers the ability to define manual triggers for jobs that require 
intervention prior to execution, e.g. an approval process outside 
of Jenkins. 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 23 / 43
Jenkins – Downstream-Ext Plugin 
This plugin supports extended configuration for triggering 
downstream builds: 
triggers build only if downstream job has SCM changes 
triggers build if upstream build result is better/equal/worse than 
any given result (SUCCESS, UNSTABLE, FAILURE, 
ABORTED) 
for Matrix (alias multi-configuration) jobs, you can decide which 
part of the job should trigger the downstream job: parent only, 
configurations only, or both 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 24 / 43
Jenkins – Publish Over SSH Plugin 
SCP – send files over SSH (SFTP) 
execute commands on a remote server 
username and password or public key authentication 
passwords & -phrases encryption in configuration files and UI 
SSH SFTP/SSH Exec as a build step during the build process 
SSH before a (maven) project build, or to run after a build 
whether the build was successful or not 
send files directly from the artifacts directory of the build that is 
being promoted ("promotion aware") 
optionally override the authentication credentials for each server 
in the job configuration 
optionally retry if the transfer of files fails 
enable the command/script to be executed in a pseudo TTY 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 25 / 43
Puppet – Configuration Management 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 26 / 43
What is Puppet? 
a configuration management system to define a certain state of 
an IT infrastructure 
developed since 2005 by Puppet Labs 
describes resources and their state in manifests 
uses its own declarative language 
distributes these manifests through a server program called 
master 
Agents on the target systems enforce the desired state. 
System specific information will be discovered using facter for 
a dynamic configuration. 
Agents also send a report on the taken actions back to the 
Puppet master. 
Puppet’s open API can send and receive data to/from 
third-party tools. 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 27 / 43
Puppet – r10k 
deployment helper for Puppet modules (internal/Puppet Forge) 
uses a cache directory to preserve space 
may use a so called Puppetfile for complex deployment needs 
() Gemfile) 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 28 / 43
Use Case 1: Automatic Testing of a Puppet 
Module 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 29 / 43
Use Case 1 – Automatic Testing of a puppet 
module 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 30 / 43
Use Case 1 – Prerequesites 
Requirements: 
base Docker container for every supported OS of a module 
are being built as seperate jobs 
Preparation: 
1 git push to development branch 
2 Gitlab triggers Jenkins Webhook 
3 Jenkins merges dev with test branch 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 31 / 43
Use Case 1 – puppet-memcached-units 
1 Jenkins creates a new container. 
2 r10k deploys all puppet code. 
3 simple syntax and style(lint) checks 
4 rspec-puppet is run. 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 32 / 43
puppet-memcached-units 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 33 / 43
Use Case 1 – Job: 
puppet-memcached-acceptance 
1 Jenkins starts a fresh container from a puppet-enabled base 
image 
2 r10k deploys all needed Puppet code 
3 puppet apply is run with the specified module: 
PUPPETENV=/puppet/environments/dev/ 
puppet apply –debug –modulepath $PUPPETENV/modules 
$PUPPETENV/modules/$PUPPETMODULE/test/init.pp 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 34 / 43
puppet-memcached-acceptance 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 35 / 43
Use Case 2: Integration/Acceptance Testing 
of a Simple Webapp 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 36 / 43
Use Case 2: Integration/Acceptance Testing 
of a Simple Webapp 
simple use case for a multi-tier app 
httpd + webapp and mysql 
need to be linked together 
should be automatically deployed if possible 
two containers: owncloud and mysql 
automatic rebuild on change 
after changes, integration testing should be done 
if integration tests succeed, deploy app on staging host 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 37 / 43
Jenkins Job Overview 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 38 / 43
Docker Build Pipeline 1 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 39 / 43
Docker Build Pipeline 2 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 40 / 43
Next Steps 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 41 / 43
Next Steps 
Most Docker image jobs are identical: 
implement flow/job dsl plugin 
create a dynamic test matrix for Puppet modules 
multi-configuration jobs may help with that 
use Packer for building base Docker images (Puppet Provisioner) 
integrate with CoreOS/Project Atomic/OpenStack 
implement a better global orchestration scheme (TerraForm, 
Ansible, SaltStack maybe?) 
integrate with clustered configuration through Serf/Consul or 
others 
automatic handoff to QA, tests with real world data in staging 
environments 
easy push button tagging of Docker images to ’production’ 
may be implemented through ’promoted builds’ 
B1 Systems GmbH 
Continuous Integration using Docker & 
Jenkins 42 / 43
Thank you for your attention! 
For further information, please contact: 
info@b1-systems.de or +49 (0)8457 - 931096 
B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development

More Related Content

What's hot

Docker : Container Virtualization
Docker : Container VirtualizationDocker : Container Virtualization
Docker : Container VirtualizationRanjan Baisak
 
Amazon Web Services and Docker
Amazon Web Services and DockerAmazon Web Services and Docker
Amazon Web Services and DockerPaolo latella
 
Docker on Google App Engine
Docker on Google App EngineDocker on Google App Engine
Docker on Google App EngineDocker, Inc.
 
Deployment Automation with Docker
Deployment Automation with DockerDeployment Automation with Docker
Deployment Automation with DockerEgor Pushkin
 
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12dotCloud
 
Testing with Docker
Testing with DockerTesting with Docker
Testing with Dockertoffermann
 
Docker, the Future of DevOps
Docker, the Future of DevOpsDocker, the Future of DevOps
Docker, the Future of DevOpsandersjanmyr
 
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
 
Continuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
Continuous Delivery in Enterprise Environments using Docker, Ansible and JenkinsContinuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
Continuous Delivery in Enterprise Environments using Docker, Ansible and JenkinsMarcel Birkner
 
DockerCon SF 2015: Enabling Microservices @Orbitz
DockerCon SF 2015: Enabling Microservices @OrbitzDockerCon SF 2015: Enabling Microservices @Orbitz
DockerCon SF 2015: Enabling Microservices @OrbitzDocker, Inc.
 
Building Reusable Development Environments with Docker
Building Reusable Development Environments with DockerBuilding Reusable Development Environments with Docker
Building Reusable Development Environments with DockerRevelation Technologies
 
Docker Continuous Delivery Workshop
Docker Continuous Delivery WorkshopDocker Continuous Delivery Workshop
Docker Continuous Delivery WorkshopJirayut Nimsaeng
 
Docker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochraneDocker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochranedotCloud
 
Docker 101 Workshop slides (JavaOne 2017)
Docker 101 Workshop slides (JavaOne 2017)Docker 101 Workshop slides (JavaOne 2017)
Docker 101 Workshop slides (JavaOne 2017)Eric Smalling
 
Introduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureIntroduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureJérôme Petazzoni
 
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...Lucas Jellema
 
OpenStack - Docker - Rackspace HQ
OpenStack - Docker - Rackspace HQOpenStack - Docker - Rackspace HQ
OpenStack - Docker - Rackspace HQdotCloud
 

What's hot (20)

Docker : Container Virtualization
Docker : Container VirtualizationDocker : Container Virtualization
Docker : Container Virtualization
 
Amazon Web Services and Docker
Amazon Web Services and DockerAmazon Web Services and Docker
Amazon Web Services and Docker
 
Docker on Google App Engine
Docker on Google App EngineDocker on Google App Engine
Docker on Google App Engine
 
Deployment Automation with Docker
Deployment Automation with DockerDeployment Automation with Docker
Deployment Automation with Docker
 
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
 
Testing with Docker
Testing with DockerTesting with Docker
Testing with Docker
 
Docker, the Future of DevOps
Docker, the Future of DevOpsDocker, the Future of DevOps
Docker, the Future of DevOps
 
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
 
Continuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
Continuous Delivery in Enterprise Environments using Docker, Ansible and JenkinsContinuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
Continuous Delivery in Enterprise Environments using Docker, Ansible and Jenkins
 
DockerCon SF 2015: Enabling Microservices @Orbitz
DockerCon SF 2015: Enabling Microservices @OrbitzDockerCon SF 2015: Enabling Microservices @Orbitz
DockerCon SF 2015: Enabling Microservices @Orbitz
 
Building Reusable Development Environments with Docker
Building Reusable Development Environments with DockerBuilding Reusable Development Environments with Docker
Building Reusable Development Environments with Docker
 
Docker Continuous Delivery Workshop
Docker Continuous Delivery WorkshopDocker Continuous Delivery Workshop
Docker Continuous Delivery Workshop
 
Docker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken CochraneDocker at Djangocon 2013 | Talk by Ken Cochrane
Docker at Djangocon 2013 | Talk by Ken Cochrane
 
Docker 101 Workshop slides (JavaOne 2017)
Docker 101 Workshop slides (JavaOne 2017)Docker 101 Workshop slides (JavaOne 2017)
Docker 101 Workshop slides (JavaOne 2017)
 
Introduction to Docker and deployment and Azure
Introduction to Docker and deployment and AzureIntroduction to Docker and deployment and Azure
Introduction to Docker and deployment and Azure
 
Docker 101 Checonf 2016
Docker 101 Checonf 2016Docker 101 Checonf 2016
Docker 101 Checonf 2016
 
Docker Ecosystem on Azure
Docker Ecosystem on AzureDocker Ecosystem on Azure
Docker Ecosystem on Azure
 
Dockerfile
Dockerfile Dockerfile
Dockerfile
 
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...
Java Developer Intro to Environment Management with Vagrant, Puppet, and Dock...
 
OpenStack - Docker - Rackspace HQ
OpenStack - Docker - Rackspace HQOpenStack - Docker - Rackspace HQ
OpenStack - Docker - Rackspace HQ
 

Similar to CI-DOCKER-JENKINS

IBM MQ in containers MQTC 2017
IBM MQ in containers MQTC 2017IBM MQ in containers MQTC 2017
IBM MQ in containers MQTC 2017Robert Parker
 
Pipeline as code - new feature in Jenkins 2
Pipeline as code - new feature in Jenkins 2Pipeline as code - new feature in Jenkins 2
Pipeline as code - new feature in Jenkins 2Michal Ziarnik
 
stackconf 2020 | Infrastructure as Software by Paul Stack
stackconf 2020 | Infrastructure as Software by Paul Stackstackconf 2020 | Infrastructure as Software by Paul Stack
stackconf 2020 | Infrastructure as Software by Paul StackNETWAYS
 
Code Factory avec GitLab CI et Rancher
Code Factory avec GitLab CI et RancherCode Factory avec GitLab CI et Rancher
Code Factory avec GitLab CI et RancherSUSE
 
Code Factory avec GitLab CI et Rancher
Code Factory avec GitLab CI et RancherCode Factory avec GitLab CI et Rancher
Code Factory avec GitLab CI et RancherSUSE
 
Deploying Windows Apps to Kubernetes with Draft and Helm
Deploying Windows Apps to Kubernetes with Draft and HelmDeploying Windows Apps to Kubernetes with Draft and Helm
Deploying Windows Apps to Kubernetes with Draft and HelmJessica Deen
 
.docker : How to deploy Digital Experience in a container, drinking a cup of ...
.docker : How to deploy Digital Experience in a container, drinking a cup of ....docker : How to deploy Digital Experience in a container, drinking a cup of ...
.docker : How to deploy Digital Experience in a container, drinking a cup of ...ICON UK EVENTS Limited
 
Continuous Integration for Oracle Database Development
Continuous Integration for Oracle Database DevelopmentContinuous Integration for Oracle Database Development
Continuous Integration for Oracle Database DevelopmentVladimir Bakhov
 
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...Patrick Chanezon
 
CI/CD Pipeline with Docker
CI/CD Pipeline with DockerCI/CD Pipeline with Docker
CI/CD Pipeline with Dockerkushalsingh007
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Patrick Chanezon
 
"Docker best practice", Станислав Коленкин (senior devops, DataArt)
"Docker best practice", Станислав Коленкин (senior devops, DataArt)"Docker best practice", Станислав Коленкин (senior devops, DataArt)
"Docker best practice", Станислав Коленкин (senior devops, DataArt)DataArt
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Arun prasath
 
Revolutionizing the cloud with container virtualization
Revolutionizing the cloud with container virtualizationRevolutionizing the cloud with container virtualization
Revolutionizing the cloud with container virtualizationWSO2
 
Enhance your Agility with DevOps
Enhance your Agility with DevOpsEnhance your Agility with DevOps
Enhance your Agility with DevOpsEdureka!
 
Hitchhiker's guide to Cloud-Native Build Pipelines and Infrastructure as Code
Hitchhiker's guide to Cloud-Native Build Pipelines and Infrastructure as CodeHitchhiker's guide to Cloud-Native Build Pipelines and Infrastructure as Code
Hitchhiker's guide to Cloud-Native Build Pipelines and Infrastructure as CodeRobert van Mölken
 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Patrick Chanezon
 

Similar to CI-DOCKER-JENKINS (20)

IBM MQ in containers MQTC 2017
IBM MQ in containers MQTC 2017IBM MQ in containers MQTC 2017
IBM MQ in containers MQTC 2017
 
Pipeline as code - new feature in Jenkins 2
Pipeline as code - new feature in Jenkins 2Pipeline as code - new feature in Jenkins 2
Pipeline as code - new feature in Jenkins 2
 
stackconf 2020 | Infrastructure as Software by Paul Stack
stackconf 2020 | Infrastructure as Software by Paul Stackstackconf 2020 | Infrastructure as Software by Paul Stack
stackconf 2020 | Infrastructure as Software by Paul Stack
 
Code Factory avec GitLab CI et Rancher
Code Factory avec GitLab CI et RancherCode Factory avec GitLab CI et Rancher
Code Factory avec GitLab CI et Rancher
 
Code Factory avec GitLab CI et Rancher
Code Factory avec GitLab CI et RancherCode Factory avec GitLab CI et Rancher
Code Factory avec GitLab CI et Rancher
 
Deploying Windows Apps to Kubernetes with Draft and Helm
Deploying Windows Apps to Kubernetes with Draft and HelmDeploying Windows Apps to Kubernetes with Draft and Helm
Deploying Windows Apps to Kubernetes with Draft and Helm
 
.docker : How to deploy Digital Experience in a container, drinking a cup of ...
.docker : How to deploy Digital Experience in a container, drinking a cup of ....docker : How to deploy Digital Experience in a container, drinking a cup of ...
.docker : How to deploy Digital Experience in a container, drinking a cup of ...
 
Continuous Integration for Oracle Database Development
Continuous Integration for Oracle Database DevelopmentContinuous Integration for Oracle Database Development
Continuous Integration for Oracle Database Development
 
Docker dDessi november 2015
Docker dDessi november 2015Docker dDessi november 2015
Docker dDessi november 2015
 
Kubernetes @ meetic
Kubernetes @ meeticKubernetes @ meetic
Kubernetes @ meetic
 
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
 
CI/CD Pipeline with Docker
CI/CD Pipeline with DockerCI/CD Pipeline with Docker
CI/CD Pipeline with Docker
 
Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017Moby Open Source Summit North America 2017
Moby Open Source Summit North America 2017
 
"Docker best practice", Станислав Коленкин (senior devops, DataArt)
"Docker best practice", Станислав Коленкин (senior devops, DataArt)"Docker best practice", Станислав Коленкин (senior devops, DataArt)
"Docker best practice", Станислав Коленкин (senior devops, DataArt)
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment
 
Revolutionizing the cloud with container virtualization
Revolutionizing the cloud with container virtualizationRevolutionizing the cloud with container virtualization
Revolutionizing the cloud with container virtualization
 
Enhance your Agility with DevOps
Enhance your Agility with DevOpsEnhance your Agility with DevOps
Enhance your Agility with DevOps
 
VS Code tools for docker
VS Code tools for dockerVS Code tools for docker
VS Code tools for docker
 
Hitchhiker's guide to Cloud-Native Build Pipelines and Infrastructure as Code
Hitchhiker's guide to Cloud-Native Build Pipelines and Infrastructure as CodeHitchhiker's guide to Cloud-Native Build Pipelines and Infrastructure as Code
Hitchhiker's guide to Cloud-Native Build Pipelines and Infrastructure as Code
 
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
Docker Azure Friday OSS March 2017 - Developing and deploying Java & Linux on...
 

More from B1 Systems GmbH

Ubuntu-/Debian-Packaging
Ubuntu-/Debian-PackagingUbuntu-/Debian-Packaging
Ubuntu-/Debian-PackagingB1 Systems GmbH
 
Ubuntu-Server als Backup- und Fileserver betreiben
Ubuntu-Server als Backup- und Fileserver betreibenUbuntu-Server als Backup- und Fileserver betreiben
Ubuntu-Server als Backup- und Fileserver betreibenB1 Systems GmbH
 
Android mit Google Befreiung, PlayStore Apps im eigenen Repo
Android mit Google Befreiung, PlayStore Apps im eigenen RepoAndroid mit Google Befreiung, PlayStore Apps im eigenen Repo
Android mit Google Befreiung, PlayStore Apps im eigenen RepoB1 Systems GmbH
 
Ambilight, Raspberry Pi, Ubuntu & Hyperion
Ambilight, Raspberry Pi, Ubuntu & HyperionAmbilight, Raspberry Pi, Ubuntu & Hyperion
Ambilight, Raspberry Pi, Ubuntu & HyperionB1 Systems GmbH
 
B1 Thin Client Management bei der Fraport AG
B1 Thin Client Management bei der Fraport AGB1 Thin Client Management bei der Fraport AG
B1 Thin Client Management bei der Fraport AGB1 Systems GmbH
 
Salt - A Scalable Systems Management Solution for Datacenters
Salt - A Scalable Systems Management Solution for DatacentersSalt - A Scalable Systems Management Solution for Datacenters
Salt - A Scalable Systems Management Solution for DatacentersB1 Systems GmbH
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanB1 Systems GmbH
 
Ausrollen von Multi-Tier-Applikationen mit Docker
Ausrollen von Multi-Tier-Applikationen mit DockerAusrollen von Multi-Tier-Applikationen mit Docker
Ausrollen von Multi-Tier-Applikationen mit DockerB1 Systems GmbH
 
Simplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStackSimplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStackB1 Systems GmbH
 
Simplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStackSimplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStackB1 Systems GmbH
 
Bits and Bytes im Flow - Netzwerk im Wandel der Zeit
Bits and Bytes im Flow - Netzwerk im Wandel der ZeitBits and Bytes im Flow - Netzwerk im Wandel der Zeit
Bits and Bytes im Flow - Netzwerk im Wandel der ZeitB1 Systems GmbH
 
End of the Road - Facing Current Scaling Limits within OpenStack
End of the Road - Facing Current Scaling Limits within OpenStackEnd of the Road - Facing Current Scaling Limits within OpenStack
End of the Road - Facing Current Scaling Limits within OpenStackB1 Systems GmbH
 
OpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
OpenStack und Heat - Standardisierte Test- und EntwicklungsumgebungenOpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
OpenStack und Heat - Standardisierte Test- und EntwicklungsumgebungenB1 Systems GmbH
 
E-Mail-Verschlüsselung mit GnuPG
E-Mail-Verschlüsselung mit GnuPGE-Mail-Verschlüsselung mit GnuPG
E-Mail-Verschlüsselung mit GnuPGB1 Systems GmbH
 
Some Bashing II - Mit der Kommandozeile Abläufe automatisieren
Some Bashing II - Mit der Kommandozeile Abläufe automatisierenSome Bashing II - Mit der Kommandozeile Abläufe automatisieren
Some Bashing II - Mit der Kommandozeile Abläufe automatisierenB1 Systems GmbH
 
Entwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit VagrantEntwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit VagrantB1 Systems GmbH
 
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...B1 Systems GmbH
 
Btrfs - das Dateisystem der Zukunft?
Btrfs - das Dateisystem der Zukunft?Btrfs - das Dateisystem der Zukunft?
Btrfs - das Dateisystem der Zukunft?B1 Systems GmbH
 
OpenStack Betrieb & Support - 5 Jahre OpenStack Managed Service bei der SAP SE
OpenStack Betrieb & Support - 5 Jahre OpenStack Managed Service bei der SAP SEOpenStack Betrieb & Support - 5 Jahre OpenStack Managed Service bei der SAP SE
OpenStack Betrieb & Support - 5 Jahre OpenStack Managed Service bei der SAP SEB1 Systems GmbH
 

More from B1 Systems GmbH (20)

Ubuntu-/Debian-Packaging
Ubuntu-/Debian-PackagingUbuntu-/Debian-Packaging
Ubuntu-/Debian-Packaging
 
Ubuntu-Server als Backup- und Fileserver betreiben
Ubuntu-Server als Backup- und Fileserver betreibenUbuntu-Server als Backup- und Fileserver betreiben
Ubuntu-Server als Backup- und Fileserver betreiben
 
Android mit Google Befreiung, PlayStore Apps im eigenen Repo
Android mit Google Befreiung, PlayStore Apps im eigenen RepoAndroid mit Google Befreiung, PlayStore Apps im eigenen Repo
Android mit Google Befreiung, PlayStore Apps im eigenen Repo
 
Ambilight, Raspberry Pi, Ubuntu & Hyperion
Ambilight, Raspberry Pi, Ubuntu & HyperionAmbilight, Raspberry Pi, Ubuntu & Hyperion
Ambilight, Raspberry Pi, Ubuntu & Hyperion
 
B1 Thin Client Management bei der Fraport AG
B1 Thin Client Management bei der Fraport AGB1 Thin Client Management bei der Fraport AG
B1 Thin Client Management bei der Fraport AG
 
Salt - A Scalable Systems Management Solution for Datacenters
Salt - A Scalable Systems Management Solution for DatacentersSalt - A Scalable Systems Management Solution for Datacenters
Salt - A Scalable Systems Management Solution for Datacenters
 
Systemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und ForemanSystemmanagement mit Puppet und Foreman
Systemmanagement mit Puppet und Foreman
 
Ausrollen von Multi-Tier-Applikationen mit Docker
Ausrollen von Multi-Tier-Applikationen mit DockerAusrollen von Multi-Tier-Applikationen mit Docker
Ausrollen von Multi-Tier-Applikationen mit Docker
 
Simplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStackSimplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStack
 
Simplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStackSimplify and run your development environments with Vagrant on OpenStack
Simplify and run your development environments with Vagrant on OpenStack
 
Bits and Bytes im Flow - Netzwerk im Wandel der Zeit
Bits and Bytes im Flow - Netzwerk im Wandel der ZeitBits and Bytes im Flow - Netzwerk im Wandel der Zeit
Bits and Bytes im Flow - Netzwerk im Wandel der Zeit
 
End of the Road - Facing Current Scaling Limits within OpenStack
End of the Road - Facing Current Scaling Limits within OpenStackEnd of the Road - Facing Current Scaling Limits within OpenStack
End of the Road - Facing Current Scaling Limits within OpenStack
 
OpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
OpenStack und Heat - Standardisierte Test- und EntwicklungsumgebungenOpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
OpenStack und Heat - Standardisierte Test- und Entwicklungsumgebungen
 
systemd im Alltag
systemd im Alltagsystemd im Alltag
systemd im Alltag
 
E-Mail-Verschlüsselung mit GnuPG
E-Mail-Verschlüsselung mit GnuPGE-Mail-Verschlüsselung mit GnuPG
E-Mail-Verschlüsselung mit GnuPG
 
Some Bashing II - Mit der Kommandozeile Abläufe automatisieren
Some Bashing II - Mit der Kommandozeile Abläufe automatisierenSome Bashing II - Mit der Kommandozeile Abläufe automatisieren
Some Bashing II - Mit der Kommandozeile Abläufe automatisieren
 
Entwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit VagrantEntwicklungsumgebungen mit Vagrant
Entwicklungsumgebungen mit Vagrant
 
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
Docker und Virtualisierung - Container Use Cases für eine isolierte, performa...
 
Btrfs - das Dateisystem der Zukunft?
Btrfs - das Dateisystem der Zukunft?Btrfs - das Dateisystem der Zukunft?
Btrfs - das Dateisystem der Zukunft?
 
OpenStack Betrieb & Support - 5 Jahre OpenStack Managed Service bei der SAP SE
OpenStack Betrieb & Support - 5 Jahre OpenStack Managed Service bei der SAP SEOpenStack Betrieb & Support - 5 Jahre OpenStack Managed Service bei der SAP SE
OpenStack Betrieb & Support - 5 Jahre OpenStack Managed Service bei der SAP SE
 

Recently uploaded

Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 

CI-DOCKER-JENKINS

  • 1. Continuous Integration using Docker & Jenkins LinuxCon Europe 2014 October 13-15, 2014 Mattias Giese Solutions Architect B1 Systems GmbH giese@b1-systems.de B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development
  • 2. Introducing B1 Systems founded in 2004 operating both nationally and internationally more than 60 employees; low employee turnover Provider for IBM, SUSE, Oracle & HP vendor-independent (hardware and software) Focus: Consulting Support Development Training Operations Solutions B1 Systems GmbH Continuous Integration using Docker & Jenkins 2 / 43
  • 3. Areas of Expertise Virtualization (XEN, KVM & RHEV) Systems management (Spacewalk, Red Hat Satellite, SUSE Manager) Configuration management (Puppet & Chef) Monitoring (Nagios & Icinga) IaaS Cloud (OpenStack & SUSE Cloud) High availability (Pacemaker) Shared Storage (GPFS, OCFS2, DRBD & CEPH) File Sharing (ownCloud) Packaging (Open Build Service) Providing on-site systems administration and/or development B1 Systems GmbH Continuous Integration using Docker & Jenkins 3 / 43
  • 4. Partners B1 Systems GmbH Continuous Integration using Docker & Jenkins 4 / 43
  • 5. Deployment Stack B1 Systems GmbH Continuous Integration using Docker & Jenkins 5 / 43
  • 6. Deployment Stack – Technologies Used Docker an open platform for developers and sysadmins to build, ship, and run distributed applications Fig a Docker orchestration tool Gitlab an Open Source software to collaborate on code Jenkins an Open Source continuous integration system Puppet/r10k an Open Source configuration management system to define the state of an IT infrastructure and to automatically enforce this state B1 Systems GmbH Continuous Integration using Docker & Jenkins 6 / 43
  • 7. Docker – Build, Ship and Run Applications B1 Systems GmbH Continuous Integration using Docker & Jenkins 7 / 43
  • 8. What is Docker? an open platform for developers and sysadmins Open Source Engine to standardize LXC build, ship and run (distributed) applications easy to use create and share images chroot on steroids all you need is inside the container not a Virtual Server – less overhead B1 Systems GmbH Continuous Integration using Docker & Jenkins 8 / 43
  • 9. Technologies Used Linux Containers (LXC) chroot use of Linux Kernel features: cgroups kernel namespaces . . . B1 Systems GmbH Continuous Integration using Docker & Jenkins 9 / 43
  • 10. Features can run any distribution “if it will run on Linux it will run in Docker” limited to the same architecture as the host all you need is inside the container libraries dependencies . . . B1 Systems GmbH Continuous Integration using Docker & Jenkins 10 / 43
  • 11. Fig – A Docker Orchestration Tool simple orchestration tool for Docker easy to deploy and use helps to define and control a multi-container service B1 Systems GmbH Continuous Integration using Docker & Jenkins 11 / 43
  • 12. GitLab – Collaboration on Code B1 Systems GmbH Continuous Integration using Docker & Jenkins 12 / 43
  • 13. Features completely free and Open Source manage and browse Git repositories keep your code secure on own server manage access permissions perform code review and merge requests hooks much more! B1 Systems GmbH Continuous Integration using Docker & Jenkins 13 / 43
  • 14. Gitlab 1/3 B1 Systems GmbH Continuous Integration using Docker & Jenkins 14 / 43
  • 15. Gitlab 2/3 B1 Systems GmbH Continuous Integration using Docker & Jenkins 15 / 43
  • 16. Gitlab 3/3 B1 Systems GmbH Continuous Integration using Docker & Jenkins 16 / 43
  • 17. Jenkins – Continuous Integration B1 Systems GmbH Continuous Integration using Docker & Jenkins 17 / 43
  • 18. What is Jenkins? Jenkins is a server-based system for continuous integration running in a servlet container (like Apache Tomcat). Jenkins supports SCM tools including AccuRev, CVS, Subversion, Git, Mercurial, Perforce, Clearcase and RTC, and can execute Apache Ant and Apache Maven. Jenkins is free software, released under the MIT License. Builds can be started by various means, including being triggered by commit in a version control system. Jenkins monitors executions of repeated jobs, such as building a software project or jobs run by cron. Jenkins is written in Java and released under the MIT License. B1 Systems GmbH Continuous Integration using Docker & Jenkins 18 / 43
  • 19. Jenkins 1/3 B1 Systems GmbH Continuous Integration using Docker & Jenkins 19 / 43
  • 20. Jenkins 2/3 B1 Systems GmbH Continuous Integration using Docker & Jenkins 20 / 43
  • 21. Jenkins 3/3 B1 Systems GmbH Continuous Integration using Docker & Jenkins 21 / 43
  • 22. Jenkins Plugins Docker Buildstep allows to add various docker commands into a job as a build step. Docker publish provides the ability to build projects with a Dockerfile and publish them to the docker registry. Git allows the use of Git as a build SCM. Gitlab a build trigger that makes GitLab think Jenkins is a GitLab CI. Build Pipeline Plugin provides a Build Pipeline View of upstream and downstream connected jobs that typically form a build pipeline. Downstream-Ext Plugin supports extended configuration for triggering downstream builds. Publish Over SSH Plugin transfers files and data secured by SSH. Chuck Norris ;) . . . B1 Systems GmbH Continuous Integration using Docker & Jenkins 22 / 43
  • 23. Jenkins – Build Pipeline Plugin provides a Build Pipeline View of upstream and downstream connected jobs that typically form a build pipeline. offers the ability to define manual triggers for jobs that require intervention prior to execution, e.g. an approval process outside of Jenkins. B1 Systems GmbH Continuous Integration using Docker & Jenkins 23 / 43
  • 24. Jenkins – Downstream-Ext Plugin This plugin supports extended configuration for triggering downstream builds: triggers build only if downstream job has SCM changes triggers build if upstream build result is better/equal/worse than any given result (SUCCESS, UNSTABLE, FAILURE, ABORTED) for Matrix (alias multi-configuration) jobs, you can decide which part of the job should trigger the downstream job: parent only, configurations only, or both B1 Systems GmbH Continuous Integration using Docker & Jenkins 24 / 43
  • 25. Jenkins – Publish Over SSH Plugin SCP – send files over SSH (SFTP) execute commands on a remote server username and password or public key authentication passwords & -phrases encryption in configuration files and UI SSH SFTP/SSH Exec as a build step during the build process SSH before a (maven) project build, or to run after a build whether the build was successful or not send files directly from the artifacts directory of the build that is being promoted ("promotion aware") optionally override the authentication credentials for each server in the job configuration optionally retry if the transfer of files fails enable the command/script to be executed in a pseudo TTY B1 Systems GmbH Continuous Integration using Docker & Jenkins 25 / 43
  • 26. Puppet – Configuration Management B1 Systems GmbH Continuous Integration using Docker & Jenkins 26 / 43
  • 27. What is Puppet? a configuration management system to define a certain state of an IT infrastructure developed since 2005 by Puppet Labs describes resources and their state in manifests uses its own declarative language distributes these manifests through a server program called master Agents on the target systems enforce the desired state. System specific information will be discovered using facter for a dynamic configuration. Agents also send a report on the taken actions back to the Puppet master. Puppet’s open API can send and receive data to/from third-party tools. B1 Systems GmbH Continuous Integration using Docker & Jenkins 27 / 43
  • 28. Puppet – r10k deployment helper for Puppet modules (internal/Puppet Forge) uses a cache directory to preserve space may use a so called Puppetfile for complex deployment needs () Gemfile) B1 Systems GmbH Continuous Integration using Docker & Jenkins 28 / 43
  • 29. Use Case 1: Automatic Testing of a Puppet Module B1 Systems GmbH Continuous Integration using Docker & Jenkins 29 / 43
  • 30. Use Case 1 – Automatic Testing of a puppet module B1 Systems GmbH Continuous Integration using Docker & Jenkins 30 / 43
  • 31. Use Case 1 – Prerequesites Requirements: base Docker container for every supported OS of a module are being built as seperate jobs Preparation: 1 git push to development branch 2 Gitlab triggers Jenkins Webhook 3 Jenkins merges dev with test branch B1 Systems GmbH Continuous Integration using Docker & Jenkins 31 / 43
  • 32. Use Case 1 – puppet-memcached-units 1 Jenkins creates a new container. 2 r10k deploys all puppet code. 3 simple syntax and style(lint) checks 4 rspec-puppet is run. B1 Systems GmbH Continuous Integration using Docker & Jenkins 32 / 43
  • 33. puppet-memcached-units B1 Systems GmbH Continuous Integration using Docker & Jenkins 33 / 43
  • 34. Use Case 1 – Job: puppet-memcached-acceptance 1 Jenkins starts a fresh container from a puppet-enabled base image 2 r10k deploys all needed Puppet code 3 puppet apply is run with the specified module: PUPPETENV=/puppet/environments/dev/ puppet apply –debug –modulepath $PUPPETENV/modules $PUPPETENV/modules/$PUPPETMODULE/test/init.pp B1 Systems GmbH Continuous Integration using Docker & Jenkins 34 / 43
  • 35. puppet-memcached-acceptance B1 Systems GmbH Continuous Integration using Docker & Jenkins 35 / 43
  • 36. Use Case 2: Integration/Acceptance Testing of a Simple Webapp B1 Systems GmbH Continuous Integration using Docker & Jenkins 36 / 43
  • 37. Use Case 2: Integration/Acceptance Testing of a Simple Webapp simple use case for a multi-tier app httpd + webapp and mysql need to be linked together should be automatically deployed if possible two containers: owncloud and mysql automatic rebuild on change after changes, integration testing should be done if integration tests succeed, deploy app on staging host B1 Systems GmbH Continuous Integration using Docker & Jenkins 37 / 43
  • 38. Jenkins Job Overview B1 Systems GmbH Continuous Integration using Docker & Jenkins 38 / 43
  • 39. Docker Build Pipeline 1 B1 Systems GmbH Continuous Integration using Docker & Jenkins 39 / 43
  • 40. Docker Build Pipeline 2 B1 Systems GmbH Continuous Integration using Docker & Jenkins 40 / 43
  • 41. Next Steps B1 Systems GmbH Continuous Integration using Docker & Jenkins 41 / 43
  • 42. Next Steps Most Docker image jobs are identical: implement flow/job dsl plugin create a dynamic test matrix for Puppet modules multi-configuration jobs may help with that use Packer for building base Docker images (Puppet Provisioner) integrate with CoreOS/Project Atomic/OpenStack implement a better global orchestration scheme (TerraForm, Ansible, SaltStack maybe?) integrate with clustered configuration through Serf/Consul or others automatic handoff to QA, tests with real world data in staging environments easy push button tagging of Docker images to ’production’ may be implemented through ’promoted builds’ B1 Systems GmbH Continuous Integration using Docker & Jenkins 42 / 43
  • 43. Thank you for your attention! For further information, please contact: info@b1-systems.de or +49 (0)8457 - 931096 B1 Systems GmbH - Linux/Open Source Consulting, Training, Support & Development