SlideShare a Scribd company logo
@burrsutter burr@redhat.com
Fabric8: Better Software Faster
with Docker, Kubernetes, Jenkins
�ಂಗ��
�ಂಗ��
�ಂಗ��
Change History
1.0 - Great Indian Developer Summit
developers.redhat.com
Continuous improvement
is better than delayed
perfection. Mark Twain
(American Writer, Satirist)
Your Journey to
Awesomeness
Self-Service,
On-Demand,
Elastic
Infrastructure
Automation
Puppet, Chef,
Ansible,
Kubernetes
CI & CD
Deployment
Pipeline
Advanced
Deployment
Techniques
Microservices
Re-Org to
DevOps
java-jar myapp.jar
DropWizard
www.dropwizard.io
JAX-RS API
First to market
DropWizard Metrics
Embeddable
servers:
Jetty
Spring Boot
projects.spring.io/spring-
boot
Spring API
(@RestController)
‘Starter’ POMs:
start.spring.io
Embeddable servers:
Tomcat, Jetty, Undertow
WildFly Swarm
wildfly-swarm.io
Java EE 7 APIs
‘Starter’ POMs:
wildfly-
swarm.io/generator
Embeddable
servers:
WildFly (Undertow)
Vert.x
vertx.io
Reactive
Async/non-blocking
vertx run myhttp.java
HTTP, HTTP/2, TCP,
UDP, Websockets,
etc. (out of the box)
Our IT World Morphs
Fabric8: Better Software Faster with Docker, Kubernetes, Jenkins
Fabric8: Better Software Faster with Docker, Kubernetes, Jenkins
Fabric8: Better Software Faster with Docker, Kubernetes, Jenkins
Fabric8: Better Software Faster with Docker, Kubernetes, Jenkins
Fabric8: Better Software Faster with Docker, Kubernetes, Jenkins
Jez Humble Continuous Integration
 Software (trunk) is always deployable
 Everyone is checking into trunk daily (at least)—
not feature branches
 If the build breaks, it’s fixed in 10 minutes (all
hands on deck)
 A new engineer can be on-boarded in 1 day—
with a production-like environment on the
developer workstation
 Deployment is a low-risk, push-button affair
https://fabric8.io/
 Create wizards to create microservices
 Build packaging into immutable container images
 Release rolling upgrades across teams environments
 Runtime service discovery, scaling, failover, load balancing
 Manage centralize logs, metrics, alerts, tracing, circuit breakers
 Feedback dashboards and metrics to get feedback!
 Platform on premise, public or hybrid cloud
Fabric8 (https://fabric8.io/)
Fabric8: Better Software Faster with Docker, Kubernetes, Jenkins
Fabric8: Better Software Faster with Docker, Kubernetes, Jenkins
Your Stack Matters
Server Hardware
Operating System
Application Server
your.war
Java Virtual Machine
Custom Configuration
Linux Kernel Version & Distribution
Java 1.6.6_45 or Java 1.7.0_67
Weblogic 10.x.y, Tomcat 6.x.y, JBoss EAP 6.x.y
JDBC driver, datasource, JMS queue, users
 Lightweight footprint, minimal overhead
 Portability across machines
 Simplify DevOps practices
 Speed up Continuous Integration
 Empower Microservices architectures
 Isolation
Container
Advantages
Container Engine
Docker Demo
DevOps Challenges for Multiple Containers
 How to scale?
 How to avoid port conflicts?
 How to manage them on
multiple hosts?
 What happens if a host has
trouble?
 How to keep them running?
 How to update them?
 Where are my containers?
Node
Node Node
Node Node
Logger
Node
Fabric8: Better Software Faster with Docker, Kubernetes, Jenkins
 Greek for “Helmsman,” also the root of the
word “Governor” (from latin: gubernator)
 Container orchestrator
 Supports multiple cloud and bare-metal
environments
 Inspired by Google’s experience with containers
 Open source, written in Go
 Manage applications, not machines
Meet Kubernetes
Ops
Dev
Master
api
etcd
scheduler
controllers
Kubernetes Cluster
Node
Node Node
Node Node
Logge
r
Node
Pod
Replication
Controller/
Deployment
Service Label
 1+ containers
 Shared IP
 Shared storage volume
 Shared resources
 Shared lifecycle
 Ensures that a
specified
number of pod
replicas are
running at any
one time
 Grouping of
pods (acting as
one) has stable
virtual IP and
DNS name
 Key/Value pairs
associated with
Kubernetes objects
(env=production)
Kubernetes Cluster
Pods
A group of whales is commonly referred to
as a pod and a pod usually consists a
group of whales that have bonded together
either because of biological reasons or
through friendships developed between
two or more whales.
In many cases a typical whale pod consists
of anywhere from 2 to 30 whales or more.*
*http://www.whalefacts.org/what-is-a-group-of-whales-called/
Key Kubernetes Capabilities
 Self-healing
 Horizontal manual & auto scaling
 Automatic restarting
 Scheduled across hosts
 Built-in load-balancer
 Rolling upgrades
Master
API Server
Service Layer
VirtualPhysical Private Public
Persistent
Storage
Node Node
Logger
Node
Node Node Node
Dev
Ops
SCM
(Git/Svn)
CI/CD
Automation
Routing Layer
Registry
SDN Overlay Network
Controllers
- Scheduler
- Deployments
- Services
- Builds
- Routes
- DeploymentConfigs
Kubernetes
OpenShift
- Builds
- ImageStreams
Fabric8: Better Software Faster with Docker, Kubernetes, Jenkins
SCM
(Git/Svn)
Master
API Server
Service Layer
VirtualPhysical Private Public
Persistent
Storage
Node Node
Logger
Node
Node Node Node
Dev
Ops
CI/CD
Automation
Routing Layer
Registry
SDN Overlay Network
Controllers
- Scheduler
- Deployments
- Services
- Builds
- Routes
- DeploymentConfigs
Kubernetes
OpenShift
- Builds
- ImageStreams
SCM
(Git/Svn)
Master
API Server
Service Layer
VirtualPhysical Private Public
Persistent
Storage
Node Node
Logger
Node
Node Node Node
Dev
Ops
CI/CD
Automation
Routing Layer
Registry
SDN Overlay Network
Controllers
- Scheduler
- Deployments
- Services
- Builds
- Routes
- DeploymentConfigs
Kubernetes
OpenShift
- Builds
- ImageStreams
SCM
(Git/Svn)
Master
API Server
Service Layer
VirtualPhysical Private Public
Persistent
Storage
Node Node
Logger
Node
Node Node Node
Dev
Ops
CI/CD
Automation
Routing Layer
Registry
SDN Overlay Network
Controllers
- Scheduler
- Deployments
- Services
- Builds
- Routes
- DeploymentConfigs
Kubernetes
OpenShift
- Builds
- ImageStreams
Kubernetes Demo
https://github.com/burrsutter/kube4docker
Recorded Demo: https://youtu.be/AoDhQt8PtUQ
Fabric8: Better Software Faster with Docker, Kubernetes, Jenkins
The job of a deployment pipeline
is to prove that the release
candidate is unreleasable.
Jez Humble
Jenkins for Continuous Delivery
Jenkins Pipeline
implements CD:
 orchestrator of build,
test, promote,
approve steps
 old name is Jenkins
Workflow plugin
A Jenkinsfile:
 a Groovy DSL for defining the
pipeline steps, pods, docker
images, secret
 maps to a single Jenkins job with
minimal configuration
 Label parts of the pipeline with
stages to simplify pipeline
progress visualisation
 Pipeline as code!
Fabric8 adds a
reusable library of:
 Jenkinsfiles (pipelines)
for different technologies
 functions for reuse of
code across the
Jenkinsfiles
Jenkinsfile
Simple
node('maven') {
stage 'validate'
echo 'Test some stuff'
sleep 10
input "Approve?"
stage 'build'
openshiftBuild(buildConfig: 'ruby-sample-build', showBuildLogs: 'true')
stage 'deploy'
openshiftDeploy(deploymentConfig: 'frontend')
}
Leveraging “oc”
node('maven') {
stage 'Git'
git url: 'https://github.com/burrsutter/ola'
stage 'Maven build'
sh "mvn package"
stage 'Unit Tests'
echo "Unit Tests"
stage 'Docker build'
echo "Login"
withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'developer',
usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
sh "oc login --insecure-skip-tls-verify=true -u $env.USERNAME -p $env.PASSWORD https://10.1.2.2:8443"
}
echo "OpenShift Docker Build"
sh "oc new-build --binary --name=ola -l app=ola || echo 'Build exists'"
sh "oc start-build ola --from-dir=. --follow"
stage 'Integration Tests'
echo "Integration Tests"
stage 'Deploy'
echo "Deploy, Deploy, Deploy"
sh "oc new-app ola -l app=ola,hystrix.enabled=true || echo 'Application already Exists'"
sh "oc expose service ola || echo 'Service already exposed'"
}
https://github.com/redhat-helloworld-
msa/aloha/blob/master/Jenkinsfile
https://github.com/Red-Hat-Middleware-
Keynote/cicd/blob/master/blue-green
https://github.com/Red-Hat-Middleware-
Keynote/cicd/blob/master/canary
Other Jenkinsfile Examples
Jenkins Demo
Canary Deployment
DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS
SCM
Canary Deployment
DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS
SCM
Canary Deployment
DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS
SCM
Canary Deployment
DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS
SCM
Canary Deployment
DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS
SCM
Canary Deployment
DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS
SCM
Canary Deployment
DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS
SCM
Canary Deployment
DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS
SCM
Canary Deployment
DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS
SCM
Canary Deployment
DEVELOPMENT QA STAGING PRODUCTION ROUTER USERS
SCM
More Information
THANK YOU!
http://bit.ly/msa-instructions
@burrsutter burr@redhat.com

More Related Content

PDF
An Introduction to the Kubernetes API
PDF
Container Days Boston - Kubernetes in production
PDF
DockerCon SF 2015: Enabling Microservices @Orbitz
PPTX
Kubernetes Introduction
PDF
Scaling Docker with Kubernetes
PPTX
2016 - Continuously Delivering Microservices in Kubernetes using Jenkins
PPTX
Managing Docker Containers In A Cluster - Introducing Kubernetes
PDF
Kubernetes Architecture - beyond a black box - Part 2
An Introduction to the Kubernetes API
Container Days Boston - Kubernetes in production
DockerCon SF 2015: Enabling Microservices @Orbitz
Kubernetes Introduction
Scaling Docker with Kubernetes
2016 - Continuously Delivering Microservices in Kubernetes using Jenkins
Managing Docker Containers In A Cluster - Introducing Kubernetes
Kubernetes Architecture - beyond a black box - Part 2

What's hot (20)

PDF
The top 5 Kubernetes metrics to monitor
PDF
Continuous Deployment with Jenkins on Kubernetes
PPTX
Going Reactive with Java
PDF
Kubernetes Architecture - beyond a black box - Part 1
PDF
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...
PDF
DockerCon SF 2015: Docker in the New York Times Newsroom
PDF
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka
PDF
Zero downtime-java-deployments-with-docker-and-kubernetes
PDF
Extending kubernetes with CustomResourceDefinitions
PDF
Kubelet with no Kubernetes Masters | DevNation Tech Talk
PDF
DockerCon SF 2015: Scaling New Services
PDF
Quick introduction to Kubernetes
PDF
In-Cluster Continuous Testing Framework for Docker Containers
PDF
Package your Java EE Application using Docker and Kubernetes
PDF
JavaOne 2016: Kubernetes introduction for Java Developers
PDF
fabric8 ... and Docker, Kubernetes & OpenShift
PDF
What's new with Apache Camel 3? | DevNation Tech Talk
PPTX
Docker & Kubernetes intro
PPTX
Orchestration tool roundup kubernetes vs. docker vs. heat vs. terra form vs...
PPTX
Scaling jenkins with kubernetes
The top 5 Kubernetes metrics to monitor
Continuous Deployment with Jenkins on Kubernetes
Going Reactive with Java
Kubernetes Architecture - beyond a black box - Part 1
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...
DockerCon SF 2015: Docker in the New York Times Newsroom
Microservices , Docker , CI/CD , Kubernetes Seminar - Sri Lanka
Zero downtime-java-deployments-with-docker-and-kubernetes
Extending kubernetes with CustomResourceDefinitions
Kubelet with no Kubernetes Masters | DevNation Tech Talk
DockerCon SF 2015: Scaling New Services
Quick introduction to Kubernetes
In-Cluster Continuous Testing Framework for Docker Containers
Package your Java EE Application using Docker and Kubernetes
JavaOne 2016: Kubernetes introduction for Java Developers
fabric8 ... and Docker, Kubernetes & OpenShift
What's new with Apache Camel 3? | DevNation Tech Talk
Docker & Kubernetes intro
Orchestration tool roundup kubernetes vs. docker vs. heat vs. terra form vs...
Scaling jenkins with kubernetes
Ad

Similar to Fabric8: Better Software Faster with Docker, Kubernetes, Jenkins (20)

PDF
Kubernetes for Docker Developers
PDF
Containerize! Between Docker and Jube.
PDF
Using Kubernetes for Continuous Integration and Continuous Delivery. Java2days
PDF
Using Kubernetes for Continuous Integration and Continuous Delivery
PDF
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
PDF
JDD2015: Kubernetes - Beyond the basics - Paul Bakker
PDF
A DevOps guide to Kubernetes
PDF
Kubernetes
PDF
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
PDF
Docker module 1
PPTX
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, Keynote
PDF
Kubernetes extensibility
PDF
Kubernetes for the PHP developer
PPTX
Kubernetes Workshop
PDF
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
PPTX
Docker - Demo on PHP Application deployment
PPT
Docker Multi Host Networking, Rachit Arora, IBM
PDF
codemotion-docker-2014
PPTX
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
PPTX
Docker Ecosystem on Azure
Kubernetes for Docker Developers
Containerize! Between Docker and Jube.
Using Kubernetes for Continuous Integration and Continuous Delivery. Java2days
Using Kubernetes for Continuous Integration and Continuous Delivery
KubeCon EU 2016: Leveraging ephemeral namespaces in a CI/CD pipeline
JDD2015: Kubernetes - Beyond the basics - Paul Bakker
A DevOps guide to Kubernetes
Kubernetes
The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration
Docker module 1
Tectonic Summit 2016: Brandon Philips, CTO of CoreOS, Keynote
Kubernetes extensibility
Kubernetes for the PHP developer
Kubernetes Workshop
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Docker - Demo on PHP Application deployment
Docker Multi Host Networking, Rachit Arora, IBM
codemotion-docker-2014
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Docker Ecosystem on Azure
Ad

More from Burr Sutter (7)

PDF
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...
PDF
Teaching Elephants to Dance (and Fly!): A Developer's Journey to Digital Tran...
PDF
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
PDF
My 'Phoenix Project'—One Developer's Evolutionary Journey
PDF
Enterprise Developer Journey to the IoT
PPT
Cloud State of the Union for Java Developers
PDF
9.7 Things Every Programmer Should Know About User Experience
Teaching Elephants to Dance (Federal Audience): A Developer's Journey to Digi...
Teaching Elephants to Dance (and Fly!): A Developer's Journey to Digital Tran...
Teaching Elephants to Dance (and Fly!) A Developer's Journey to Digital Trans...
My 'Phoenix Project'—One Developer's Evolutionary Journey
Enterprise Developer Journey to the IoT
Cloud State of the Union for Java Developers
9.7 Things Every Programmer Should Know About User Experience

Recently uploaded (20)

PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
OMC Textile Division Presentation 2021.pptx
PPTX
A Presentation on Artificial Intelligence
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Approach and Philosophy of On baking technology
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
cloud_computing_Infrastucture_as_cloud_p
PPTX
TLE Review Electricity (Electricity).pptx
PPT
Teaching material agriculture food technology
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Empathic Computing: Creating Shared Understanding
PPTX
Spectroscopy.pptx food analysis technology
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
OMC Textile Division Presentation 2021.pptx
A Presentation on Artificial Intelligence
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
Assigned Numbers - 2025 - Bluetooth® Document
Per capita expenditure prediction using model stacking based on satellite ima...
Approach and Philosophy of On baking technology
Digital-Transformation-Roadmap-for-Companies.pptx
A comparative study of natural language inference in Swahili using monolingua...
Encapsulation_ Review paper, used for researhc scholars
cloud_computing_Infrastucture_as_cloud_p
TLE Review Electricity (Electricity).pptx
Teaching material agriculture food technology
Spectral efficient network and resource selection model in 5G networks
Diabetes mellitus diagnosis method based random forest with bat algorithm
Empathic Computing: Creating Shared Understanding
Spectroscopy.pptx food analysis technology
Accuracy of neural networks in brain wave diagnosis of schizophrenia
SOPHOS-XG Firewall Administrator PPT.pptx

Fabric8: Better Software Faster with Docker, Kubernetes, Jenkins