OpenShift Container Platform
OpenBa[a]r, 28 februari 2019
Tim Speetjens, RHCA
Tim Speetjens, Openba[a]r, 28 februari 2019
Our research shows that [...]
continuous delivery has a huge impact
on many aspects of an organization.
…
However, implementing these
practices often requires rethinking
everything...
Tim Speetjens, Openba[a]r, 28 februari 2019
“… build software in such a way
that the software can be released
to production at any time.“
Martin Fowler
https://martinfowler.com/bliki/ContinuousDelivery.html
Tim Speetjens, Openba[a]r, 28 februari 2019
Historically, companies have
employed systems administrators
to run complex computing
systems.
https://landing.google.com/sre/
Tim Speetjens, Openba[a]r, 28 februari 2019
Organizational Friction
OPERATIONSDEVELOPERS
Tim Speetjens, Openba[a]r, 28 februari 2019
... implementing these practices often
requires rethinking everything ...
Tim Speetjens, Openba[a]r, 28 februari 2019
Containers
Immutable
Dependencies
included
Recipe
Lightweight
Secure
Extensible
Stateless
Tim Speetjens, Openba[a]r, 28 februari 2019
Scheduling
Decide where to deploy containers
We need more than just containers
Lifecycle and health
Keep containers running despite failures
Discovery
Find other containers on the network
Monitoring
Visibility into running containers
Security
Control who can do what
Scaling
Scale containers up and down
Persistence
Survive data beyond container lifecycle
Aggregation
Compose apps from multiple containers
Tim Speetjens, Openba[a]r, 28 februari 2019
Tim Speetjens, Openba[a]r, 28 februari 2019
OpenShift Functional overview
Tim Speetjens, Openba[a]r, 28 februari 2019
OpenShift Infrastructure overview
EXISTING
AUTOMATION
TOOLSETS
SCM
(GIT)
CI/CD
SERVICE LAYER
ROUTING LAYER
PERSISTENT
STORAGE
REGISTRY
RHEL
NODE
C
C
RHEL
NODE
C C
RHEL
NODE
c
C
C
RHEL
NODE
C C
RHEL
NODE
C
RHEL
NODE
C
RED HAT
ENTERPRISE LINUX
MASTER
API/AUTHENTICATION
DATA STORE
SCHEDULER
HEALTH/SCALING
PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
Tim Speetjens, Openba[a]r, 28 februari 2019
BUILD AND DEPLOY CONTAINER IMAGES
DEPLOY YOUR
SOURCE CODE
DEPLOY YOUR
CONTAINER IMAGE
DEPLOY YOUR
APP BINARY
Tim Speetjens, Openba[a]r, 28 februari 2019
INTEGRATED
IMAGE
REGISTRY
OPENSHIFT
CLUSTER
Continuous Delivery Pipeline
DEVELOPER GIT SERVER ARTIFACT REPOSITORY
OPENSHIFT
CI/CD PIPELINE
(JENKINS)
IMAGE BUILD
& DEPLOY
INTEGRATED
IMAGE
REGISTRY
OPENSHIFT
CLUSTER
GO
LIVE?
PROMOTE
TO TEST
PROMOTE
TO UAT
PROMOTE
TO PROD
RELEASE MANAGER
NON-PROD PRODDEV TEST UAT
☒
☑
Demo
Tim Speetjens, Openba[a]r, 28 februari 2019
Red Hat Container Development Kit
https://developers.redhat.com/products/cdk/overview/
- Minishift from Red Hat
- Red Hat xPaas
- Available for Windows, macOS and Linux
Tim Speetjens, Openba[a]r, 28 februari 2019
Sample Application
https://github.com/OpenShiftDemos/os-sample-java-web
OpenShift Demos - Sample Java Web
Single jsp hello world application
Tim Speetjens, Openba[a]r, 28 februari 2019
Sample Application - Source deployment
$ oc new-project myapp --display-name="My Application"
$ oc new-app 
> --strategy=source 
> --image-stream=jboss-webserver31-tomcat8-openshift:latest 
> https://github.com/timspeetjens/os-sample-java-web.git 
> --name sample
…
$ oc expose svc/sample
Tim Speetjens, Openba[a]r, 28 februari 2019
Sample Application - Source deployment
--> Found image 48ba94f (4 months old) in image stream "openshift/jboss-webserver31-tomcat8-openshift" under ta
"jboss-webserver31-tomcat8-openshift:1.2"
JBoss Web Server 3.1
--------------------
Platform for building and running web applications on JBoss Web Server 3.1 - Tomcat v8
Tags: builder, java, tomcat8
* The source repository appears to match: jee
* A source build using source code from https://github.com/timspeetjens/os-sample-java-web.git will be cr
* The resulting image will be pushed to image stream "sample:latest"
* Use 'start-build' to trigger a new build
* This image will be deployed in deployment config "sample"
* Ports 8080/tcp, 8443/tcp, 8778/tcp will be load balanced by service "sample"
* Other containers can access this service through the hostname "sample"
--> Creating resources ...
imagestream "sample" created
buildconfig "sample" created
deploymentconfig "sample" created
service "sample" created
--> Success
Build scheduled, use 'oc logs -f bc/sample' to track its progress.
Application is not exposed. You can expose services to the outside world by executing one or more of the
'oc expose svc/sample'
Run 'oc status' to view your app.
Tim Speetjens, Openba[a]r, 28 februari 2019
Sample Application - Jenkins Pipeline
Inspired by/based on ci-cd demo at https://github.com/siamaksade/openshift-cd-demo
Conclusion
Tim Speetjens, Openba[a]r, 28 februari 2019
Easily build applications using the language of your choice
Platform as a Service with Containers to improve
infrastructure consistency
Integrated CI/CD tools to improve organizational
performance
Kubernetes to orchestrate builds, deployments and
operations
Tim Speetjens, Openba[a]r, 28 februari 2019
INTEGRATED
IMAGE
REGISTRY
OPENSHIFT
CLUSTER
CONTINUOUS DELIVERY PIPELINE
DEVELOPER GIT SERVER ARTIFACT REPOSITORY
OPENSHIFT
CI/CD PIPELINE
(JENKINS)
IMAGE BUILD
& DEPLOY
INTEGRATED
IMAGE
REGISTRY
OPENSHIFT
CLUSTER
GO
LIVE?
PROMOTE
TO TEST
PROMOTE
TO UAT
PROMOTE
TO PROD
RELEASE MANAGER
NON-PROD PRODDEV TEST UAT
☒
☑
Tim Speetjens, Openba[a]r, 28 februari 2019
Containers as the solution
Hardware
Virtual Machine
Operating System
Container
App
Controlled by
Developers
Controlled by
IT Operations
GENERAL DISTRIBUTION24
DEVOPS WITH CONTAINERS
source
repository
CI/CD
engine
dev container
physical
virtual
private cloud
public cloud
GENERAL DISTRIBUTION
Scheduling
Decide where to deploy containers
WE NEED MORE THAN JUST CONTAINERS
Lifecycle and health
Keep containers running despite failures
Discovery
Find other containers on the network
Monitoring
Visibility into running containers
Security
Control who can do what
Scaling
Scale containers up and down
Persistence
Survive data beyond container lifecycle
Aggregation
Compose apps from multiple containers
OPENSHIFT ARCHITECTURE
OPENSHIFT TECHNICAL OVERVIEW
OPENSHIFT TECHNICAL OVERVIEW28
YOUR CHOICE OF INFRASTRUCTURE
PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
OPENSHIFT TECHNICAL OVERVIEW
NODES RHEL INSTANCES WHERE APPS RUN
29
RHEL
NODE
RHEL
NODE
RHEL
NODE
RHEL
NODE
RHEL
NODE
RHEL
NODE
PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
OPENSHIFT TECHNICAL OVERVIEW
RHEL
NODE
c
RHEL
NODE
RHEL
NODE
RHEL
NODE
RHEL
NODE
RHEL
NODE
C
C
C C
C
C
C CC C
APPS RUN IN CONTAINERS
30
Container
Image
Container
Pod
OPENSHIFT TECHNICAL OVERVIEW31
PODS ARE THE UNIT OF ORCHESTRATION
RHEL
NODE
c
RHEL
NODE
RHEL
NODE
RHEL
NODE
RHEL
NODE
RHEL
NODE
C
C
C C
C
C
C CC C
OPENSHIFT TECHNICAL OVERVIEW
RHEL
NODE
RHEL
NODE
RHEL
NODE
RHEL
NODE
RHEL
NODE
RHEL
NODE
32
MASTERS ARE THE CONTROL PLANE
RED HAT
ENTERPRISE LINUX
MASTER
PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
OPENSHIFT TECHNICAL OVERVIEW
RHEL
NODE
RHEL
NODE
RHEL
NODE
33
API AND AUTHENTICATION
RHEL
NODE
RHEL
NODE
RHEL
NODE
RED HAT
ENTERPRISE LINUX
MASTER
API/AUTHENTICATION
PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
OPENSHIFT TECHNICAL OVERVIEW
RHEL
NODE
RHEL
NODE
RHEL
NODE
34
DESIRED AND CURRENT STATE
RHEL
NODE
RHEL
NODE
RHEL
NODE
PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
RED HAT
ENTERPRISE LINUX
MASTER
API/AUTHENTICATION
DATA STORE
PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
OPENSHIFT TECHNICAL OVERVIEW35
INTEGRATED CONTAINER REGISTRY
RHEL
NODE
RHEL
NODE
RHEL
RHEL
NODE
RHEL
NODE
RHEL
RHEL
NODE
PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
RED HAT
ENTERPRISE LINUX
MASTER
API/AUTHENTICATION
DATA STORE
NODE
REGISTRY
RHEL
OPENSHIFT TECHNICAL OVERVIEW36
ORCHESTRATION AND SCHEDULING
RHEL
NODE
RHEL
NODE
RHEL
RHEL
NODE
RHEL
NODE
RHEL
RHEL
NODE
PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
RED HAT
ENTERPRISE LINUX
MASTER
API/AUTHENTICATION
DATA STORE
SCHEDULER
NODE
REGISTRY
RHEL
OPENSHIFT TECHNICAL OVERVIEW37
PLACEMENT BY POLICY
RHEL
NODE
RHEL
NODE
RHEL
NODE
PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
RED HAT
ENTERPRISE LINUX
MASTER
API/AUTHENTICATION
DATA STORE
SCHEDULER
REGISTRY
RHEL
NODE
RHEL
NODE
C
C
RHEL
NODE
c
C
C
OPENSHIFT TECHNICAL OVERVIEW
RHEL
NODE
RHEL
NODE
RHEL
NODE
RHEL
NODE
RHEL
NODE
C
C
RHEL
NODE
c
C
C
38
AUTOSCALING PODS
PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
RED HAT
ENTERPRISE LINUX
MASTER
API/AUTHENTICATION
DATA STORE
SCHEDULER
REGISTRY
HEALTH/SCALING
OPENSHIFT TECHNICAL OVERVIEW39
SERVICE DISCOVERY
SERVICE LAYER
REGISTRY
RHEL
NODE
C
C
RHEL
NODE
C C
RHEL
NODE
c
C
C
RHEL
NODE
C C
RHEL
NODE
C
RHEL
NODE
C
RED HAT
ENTERPRISE LINUX
MASTER
API/AUTHENTICATION
DATA STORE
SCHEDULER
HEALTH/SCALING
PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
OPENSHIFT TECHNICAL OVERVIEW40
PERSISTENT DATA IN CONTAINERS
SERVICE LAYER
PERSISTENT
STORAGE
REGISTRY
RHEL
NODE
C
C
RHEL
NODE
C C
RHEL
NODE
c
C
C
RHEL
NODE
C C
RHEL
NODE
C
RHEL
NODE
C
RED HAT
ENTERPRISE LINUX
MASTER
API/AUTHENTICATION
DATA STORE
SCHEDULER
HEALTH/SCALING
PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
OPENSHIFT TECHNICAL OVERVIEW41
ROUTING AND LOAD-BALANCING
SERVICE LAYER
ROUTING LAYER
PERSISTENT
STORAGE
REGISTRY
RHEL
NODE
C
C
RHEL
NODE
C C
RHEL
NODE
c
C
C
RHEL
NODE
C C
RHEL
NODE
C
RHEL
NODE
C
RED HAT
ENTERPRISE LINUX
MASTER
API/AUTHENTICATION
DATA STORE
SCHEDULER
HEALTH/SCALING
PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
OPENSHIFT TECHNICAL OVERVIEW42
ACCESS VIA WEB, CLI, IDE AND API
EXISTING
AUTOMATION
TOOLSETS
SCM
(GIT)
CI/CD
SERVICE LAYER
ROUTING LAYER
PERSISTENT
STORAGE
REGISTRY
RHEL
NODE
C
C
RHEL
NODE
C C
RHEL
NODE
c
C
C
RHEL
NODE
C C
RHEL
NODE
C
RHEL
NODE
C
RED HAT
ENTERPRISE LINUX
MASTER
API/AUTHENTICATION
DATA STORE
SCHEDULER
HEALTH/SCALING
PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
OPENSHIFT TECHNICAL OVERVIEW43
AUTO-HEALING FAILED PODS
RHEL
NODE
RHEL
NODE
c
RHEL
NODE
RHEL
NODE
c
RHEL
NODE
C
C
RHEL
NODE
C
C
RED HAT
ENTERPRISE LINUX
MASTER
API/AUTHENTICATION
DATA STORE
SCHEDULER
HEALTH/SCALING
C
OPENSHIFT TECHNICAL OVERVIEW44
AUTO-HEALING FAILED CONTAINERS
RHEL
NODE
RHEL
NODE
c
RHEL
NODE
RHEL
NODE
c
RHEL
NODE
C
C
RHEL
NODE
C
C
RED HAT
ENTERPRISE LINUX
MASTER
API/AUTHENTICATION
DATA STORE
SCHEDULER
HEALTH/SCALING
C
OPENSHIFT TECHNICAL OVERVIEW45
AUTO-HEALING FAILED CONTAINERS
RHEL
NODE
RHEL
NODE
c
RHEL
NODE
RHEL
NODE
c
RHEL
NODE
C
C
RHEL
NODE
C
C
RED HAT
ENTERPRISE LINUX
MASTER
API/AUTHENTICATION
DATA STORE
SCHEDULER
HEALTH/SCALING
C
OPENSHIFT TECHNICAL OVERVIEW46
AUTO-HEALING FAILED CONTAINERS
RHEL
NODE
RHEL
NODE
c
RHEL
NODE
RHEL
NODE
c
RHEL
NODE
C
C
RHEL
NODE
C
C
RED HAT
ENTERPRISE LINUX
MASTER
API/AUTHENTICATION
DATA STORE
SCHEDULER
HEALTH/SCALING
C
OPENSHIFT TECHNICAL OVERVIEW47
AUTO-HEALING FAILED CONTAINERS
RHEL
NODE
RHEL
NODE
RHEL
NODE
RHEL
NODE
C
C
RHEL
NODE
C
C
c
RED HAT
ENTERPRISE LINUX
MASTER
API/AUTHENTICATION
DATA STORE
SCHEDULER
HEALTH/SCALING
C
c
BUILD AND DEPLOY
CONTAINER IMAGES
OPENSHIFT TECHNICAL OVERVIEW49
BUILD AND DEPLOY CONTAINER IMAGES
DEPLOY YOUR
SOURCE CODE
DEPLOY YOUR
CONTAINER IMAGE
DEPLOY YOUR
APP BINARY
OPENSHIFT TECHNICAL OVERVIEW
INTEGRATED
IMAGE
REGISTRY
OPENSHIFT
CLUSTER
50
CONTINUOUS DELIVERY PIPELINE
DEVELOPER GIT SERVER ARTIFACT REPOSITORY
OPENSHIFT
CI/CD PIPELINE
(JENKINS)
IMAGE BUILD
& DEPLOY
INTEGRATED
IMAGE
REGISTRY
OPENSHIFT
CLUSTER
GO
LIVE?
PROMOTE
TO TEST
PROMOTE
TO UAT
PROMOTE
TO PROD
RELEASE MANAGER
NON-PROD PRODDEV TEST UAT
☒
☑
OPENSHIFT TECHNICAL OVERVIEW
CONTINUOUS DELIVERY PIPELINE
INTEGRATED
IMAGE
REGISTRY
OPENSHIFT
CLUSTER
51
DEVELOPER GIT SERVER ARTIFACT REPOSITORY
OPENSHIFT
CI/CD PIPELINE
(JENKINS)
IMAGE BUILD
& DEPLOY
INTEGRATED
IMAGE
REGISTRY
OPENSHIFT
CLUSTER
NON-PROD PRODDEV
OPENSHIFT TECHNICAL OVERVIEW
INTEGRATED
IMAGE
REGISTRY
OPENSHIFT
CLUSTER
52
CONTINUOUS DELIVERY PIPELINE
DEVELOPER GIT SERVER ARTIFACT REPOSITORY
OPENSHIFT
CI/CD PIPELINE
(JENKINS)
IMAGE BUILD
& DEPLOY
INTEGRATED
IMAGE
REGISTRY
OPENSHIFT
CLUSTER
PROMOTE
TO TEST
NON-PROD PRODDEV TEST
OPENSHIFT TECHNICAL OVERVIEW
INTEGRATED
IMAGE
REGISTRY
OPENSHIFT
CLUSTER
53
CONTINUOUS DELIVERY PIPELINE
DEVELOPER GIT SERVER ARTIFACT REPOSITORY
OPENSHIFT
CI/CD PIPELINE
(JENKINS)
IMAGE BUILD
& DEPLOY
INTEGRATED
IMAGE
REGISTRY
OPENSHIFT
CLUSTER
PROMOTE
TO TEST
PROMOTE
TO UAT
NON-PROD PRODDEV TEST UAT
OPENSHIFT TECHNICAL OVERVIEW
ServiceNow
JIRA Service Desk
Zendeks
BMC Remedy
INTEGRATED
IMAGE
REGISTRY
OPENSHIFT
CLUSTER
54
CONTINUOUS DELIVERY PIPELINE
DEVELOPER GIT SERVER ARTIFACT REPOSITORY
OPENSHIFT
CI/CD PIPELINE
(JENKINS)
IMAGE BUILD
& DEPLOY
INTEGRATED
IMAGE
REGISTRY
OPENSHIFT
CLUSTER
GO
LIVE?
PROMOTE
TO TEST
PROMOTE
TO UAT
RELEASE MANAGER
NON-PROD PROD
☒
☑
DEV TEST UAT
OPENSHIFT TECHNICAL OVERVIEW
INTEGRATED
IMAGE
REGISTRY
OPENSHIFT
CLUSTER
55
CONTINUOUS DELIVERY PIPELINE
DEVELOPER GIT SERVER ARTIFACT REPOSITORY
OPENSHIFT
CI/CD PIPELINE
(JENKINS)
IMAGE BUILD
& DEPLOY
INTEGRATED
IMAGE
REGISTRY
OPENSHIFT
CLUSTER
GO
LIVE?
PROMOTE
TO TEST
PROMOTE
TO UAT
PROMOTE
TO PROD
RELEASE MANAGER
NON-PROD PRODDEV TEST UAT
☒
☑

Openbar 7 - Leuven - OpenShift - The Enterprise Container Platform - Piros

  • 1.
    OpenShift Container Platform OpenBa[a]r,28 februari 2019 Tim Speetjens, RHCA
  • 2.
    Tim Speetjens, Openba[a]r,28 februari 2019 Our research shows that [...] continuous delivery has a huge impact on many aspects of an organization. … However, implementing these practices often requires rethinking everything...
  • 3.
    Tim Speetjens, Openba[a]r,28 februari 2019 “… build software in such a way that the software can be released to production at any time.“ Martin Fowler https://martinfowler.com/bliki/ContinuousDelivery.html
  • 4.
    Tim Speetjens, Openba[a]r,28 februari 2019 Historically, companies have employed systems administrators to run complex computing systems. https://landing.google.com/sre/
  • 5.
    Tim Speetjens, Openba[a]r,28 februari 2019 Organizational Friction OPERATIONSDEVELOPERS
  • 6.
    Tim Speetjens, Openba[a]r,28 februari 2019 ... implementing these practices often requires rethinking everything ...
  • 7.
    Tim Speetjens, Openba[a]r,28 februari 2019 Containers Immutable Dependencies included Recipe Lightweight Secure Extensible Stateless
  • 8.
    Tim Speetjens, Openba[a]r,28 februari 2019 Scheduling Decide where to deploy containers We need more than just containers Lifecycle and health Keep containers running despite failures Discovery Find other containers on the network Monitoring Visibility into running containers Security Control who can do what Scaling Scale containers up and down Persistence Survive data beyond container lifecycle Aggregation Compose apps from multiple containers
  • 9.
  • 10.
    Tim Speetjens, Openba[a]r,28 februari 2019 OpenShift Functional overview
  • 11.
    Tim Speetjens, Openba[a]r,28 februari 2019 OpenShift Infrastructure overview EXISTING AUTOMATION TOOLSETS SCM (GIT) CI/CD SERVICE LAYER ROUTING LAYER PERSISTENT STORAGE REGISTRY RHEL NODE C C RHEL NODE C C RHEL NODE c C C RHEL NODE C C RHEL NODE C RHEL NODE C RED HAT ENTERPRISE LINUX MASTER API/AUTHENTICATION DATA STORE SCHEDULER HEALTH/SCALING PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
  • 12.
    Tim Speetjens, Openba[a]r,28 februari 2019 BUILD AND DEPLOY CONTAINER IMAGES DEPLOY YOUR SOURCE CODE DEPLOY YOUR CONTAINER IMAGE DEPLOY YOUR APP BINARY
  • 13.
    Tim Speetjens, Openba[a]r,28 februari 2019 INTEGRATED IMAGE REGISTRY OPENSHIFT CLUSTER Continuous Delivery Pipeline DEVELOPER GIT SERVER ARTIFACT REPOSITORY OPENSHIFT CI/CD PIPELINE (JENKINS) IMAGE BUILD & DEPLOY INTEGRATED IMAGE REGISTRY OPENSHIFT CLUSTER GO LIVE? PROMOTE TO TEST PROMOTE TO UAT PROMOTE TO PROD RELEASE MANAGER NON-PROD PRODDEV TEST UAT ☒ ☑
  • 14.
  • 15.
    Tim Speetjens, Openba[a]r,28 februari 2019 Red Hat Container Development Kit https://developers.redhat.com/products/cdk/overview/ - Minishift from Red Hat - Red Hat xPaas - Available for Windows, macOS and Linux
  • 16.
    Tim Speetjens, Openba[a]r,28 februari 2019 Sample Application https://github.com/OpenShiftDemos/os-sample-java-web OpenShift Demos - Sample Java Web Single jsp hello world application
  • 17.
    Tim Speetjens, Openba[a]r,28 februari 2019 Sample Application - Source deployment $ oc new-project myapp --display-name="My Application" $ oc new-app > --strategy=source > --image-stream=jboss-webserver31-tomcat8-openshift:latest > https://github.com/timspeetjens/os-sample-java-web.git > --name sample … $ oc expose svc/sample
  • 18.
    Tim Speetjens, Openba[a]r,28 februari 2019 Sample Application - Source deployment --> Found image 48ba94f (4 months old) in image stream "openshift/jboss-webserver31-tomcat8-openshift" under ta "jboss-webserver31-tomcat8-openshift:1.2" JBoss Web Server 3.1 -------------------- Platform for building and running web applications on JBoss Web Server 3.1 - Tomcat v8 Tags: builder, java, tomcat8 * The source repository appears to match: jee * A source build using source code from https://github.com/timspeetjens/os-sample-java-web.git will be cr * The resulting image will be pushed to image stream "sample:latest" * Use 'start-build' to trigger a new build * This image will be deployed in deployment config "sample" * Ports 8080/tcp, 8443/tcp, 8778/tcp will be load balanced by service "sample" * Other containers can access this service through the hostname "sample" --> Creating resources ... imagestream "sample" created buildconfig "sample" created deploymentconfig "sample" created service "sample" created --> Success Build scheduled, use 'oc logs -f bc/sample' to track its progress. Application is not exposed. You can expose services to the outside world by executing one or more of the 'oc expose svc/sample' Run 'oc status' to view your app.
  • 19.
    Tim Speetjens, Openba[a]r,28 februari 2019 Sample Application - Jenkins Pipeline Inspired by/based on ci-cd demo at https://github.com/siamaksade/openshift-cd-demo
  • 20.
  • 21.
    Tim Speetjens, Openba[a]r,28 februari 2019 Easily build applications using the language of your choice Platform as a Service with Containers to improve infrastructure consistency Integrated CI/CD tools to improve organizational performance Kubernetes to orchestrate builds, deployments and operations
  • 22.
    Tim Speetjens, Openba[a]r,28 februari 2019 INTEGRATED IMAGE REGISTRY OPENSHIFT CLUSTER CONTINUOUS DELIVERY PIPELINE DEVELOPER GIT SERVER ARTIFACT REPOSITORY OPENSHIFT CI/CD PIPELINE (JENKINS) IMAGE BUILD & DEPLOY INTEGRATED IMAGE REGISTRY OPENSHIFT CLUSTER GO LIVE? PROMOTE TO TEST PROMOTE TO UAT PROMOTE TO PROD RELEASE MANAGER NON-PROD PRODDEV TEST UAT ☒ ☑
  • 23.
    Tim Speetjens, Openba[a]r,28 februari 2019 Containers as the solution Hardware Virtual Machine Operating System Container App Controlled by Developers Controlled by IT Operations
  • 24.
    GENERAL DISTRIBUTION24 DEVOPS WITHCONTAINERS source repository CI/CD engine dev container physical virtual private cloud public cloud
  • 25.
    GENERAL DISTRIBUTION Scheduling Decide whereto deploy containers WE NEED MORE THAN JUST CONTAINERS Lifecycle and health Keep containers running despite failures Discovery Find other containers on the network Monitoring Visibility into running containers Security Control who can do what Scaling Scale containers up and down Persistence Survive data beyond container lifecycle Aggregation Compose apps from multiple containers
  • 26.
  • 27.
  • 28.
    OPENSHIFT TECHNICAL OVERVIEW28 YOURCHOICE OF INFRASTRUCTURE PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
  • 29.
    OPENSHIFT TECHNICAL OVERVIEW NODESRHEL INSTANCES WHERE APPS RUN 29 RHEL NODE RHEL NODE RHEL NODE RHEL NODE RHEL NODE RHEL NODE PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
  • 30.
    OPENSHIFT TECHNICAL OVERVIEW RHEL NODE c RHEL NODE RHEL NODE RHEL NODE RHEL NODE RHEL NODE C C CC C C C CC C APPS RUN IN CONTAINERS 30 Container Image Container Pod
  • 31.
    OPENSHIFT TECHNICAL OVERVIEW31 PODSARE THE UNIT OF ORCHESTRATION RHEL NODE c RHEL NODE RHEL NODE RHEL NODE RHEL NODE RHEL NODE C C C C C C C CC C
  • 32.
    OPENSHIFT TECHNICAL OVERVIEW RHEL NODE RHEL NODE RHEL NODE RHEL NODE RHEL NODE RHEL NODE 32 MASTERSARE THE CONTROL PLANE RED HAT ENTERPRISE LINUX MASTER PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
  • 33.
    OPENSHIFT TECHNICAL OVERVIEW RHEL NODE RHEL NODE RHEL NODE 33 APIAND AUTHENTICATION RHEL NODE RHEL NODE RHEL NODE RED HAT ENTERPRISE LINUX MASTER API/AUTHENTICATION PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
  • 34.
    OPENSHIFT TECHNICAL OVERVIEW RHEL NODE RHEL NODE RHEL NODE 34 DESIREDAND CURRENT STATE RHEL NODE RHEL NODE RHEL NODE PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID RED HAT ENTERPRISE LINUX MASTER API/AUTHENTICATION DATA STORE PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
  • 35.
    OPENSHIFT TECHNICAL OVERVIEW35 INTEGRATEDCONTAINER REGISTRY RHEL NODE RHEL NODE RHEL RHEL NODE RHEL NODE RHEL RHEL NODE PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID RED HAT ENTERPRISE LINUX MASTER API/AUTHENTICATION DATA STORE NODE REGISTRY RHEL
  • 36.
    OPENSHIFT TECHNICAL OVERVIEW36 ORCHESTRATIONAND SCHEDULING RHEL NODE RHEL NODE RHEL RHEL NODE RHEL NODE RHEL RHEL NODE PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID RED HAT ENTERPRISE LINUX MASTER API/AUTHENTICATION DATA STORE SCHEDULER NODE REGISTRY RHEL
  • 37.
    OPENSHIFT TECHNICAL OVERVIEW37 PLACEMENTBY POLICY RHEL NODE RHEL NODE RHEL NODE PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID RED HAT ENTERPRISE LINUX MASTER API/AUTHENTICATION DATA STORE SCHEDULER REGISTRY RHEL NODE RHEL NODE C C RHEL NODE c C C
  • 38.
    OPENSHIFT TECHNICAL OVERVIEW RHEL NODE RHEL NODE RHEL NODE RHEL NODE RHEL NODE C C RHEL NODE c C C 38 AUTOSCALINGPODS PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID RED HAT ENTERPRISE LINUX MASTER API/AUTHENTICATION DATA STORE SCHEDULER REGISTRY HEALTH/SCALING
  • 39.
    OPENSHIFT TECHNICAL OVERVIEW39 SERVICEDISCOVERY SERVICE LAYER REGISTRY RHEL NODE C C RHEL NODE C C RHEL NODE c C C RHEL NODE C C RHEL NODE C RHEL NODE C RED HAT ENTERPRISE LINUX MASTER API/AUTHENTICATION DATA STORE SCHEDULER HEALTH/SCALING PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
  • 40.
    OPENSHIFT TECHNICAL OVERVIEW40 PERSISTENTDATA IN CONTAINERS SERVICE LAYER PERSISTENT STORAGE REGISTRY RHEL NODE C C RHEL NODE C C RHEL NODE c C C RHEL NODE C C RHEL NODE C RHEL NODE C RED HAT ENTERPRISE LINUX MASTER API/AUTHENTICATION DATA STORE SCHEDULER HEALTH/SCALING PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
  • 41.
    OPENSHIFT TECHNICAL OVERVIEW41 ROUTINGAND LOAD-BALANCING SERVICE LAYER ROUTING LAYER PERSISTENT STORAGE REGISTRY RHEL NODE C C RHEL NODE C C RHEL NODE c C C RHEL NODE C C RHEL NODE C RHEL NODE C RED HAT ENTERPRISE LINUX MASTER API/AUTHENTICATION DATA STORE SCHEDULER HEALTH/SCALING PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
  • 42.
    OPENSHIFT TECHNICAL OVERVIEW42 ACCESSVIA WEB, CLI, IDE AND API EXISTING AUTOMATION TOOLSETS SCM (GIT) CI/CD SERVICE LAYER ROUTING LAYER PERSISTENT STORAGE REGISTRY RHEL NODE C C RHEL NODE C C RHEL NODE c C C RHEL NODE C C RHEL NODE C RHEL NODE C RED HAT ENTERPRISE LINUX MASTER API/AUTHENTICATION DATA STORE SCHEDULER HEALTH/SCALING PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID
  • 43.
    OPENSHIFT TECHNICAL OVERVIEW43 AUTO-HEALINGFAILED PODS RHEL NODE RHEL NODE c RHEL NODE RHEL NODE c RHEL NODE C C RHEL NODE C C RED HAT ENTERPRISE LINUX MASTER API/AUTHENTICATION DATA STORE SCHEDULER HEALTH/SCALING C
  • 44.
    OPENSHIFT TECHNICAL OVERVIEW44 AUTO-HEALINGFAILED CONTAINERS RHEL NODE RHEL NODE c RHEL NODE RHEL NODE c RHEL NODE C C RHEL NODE C C RED HAT ENTERPRISE LINUX MASTER API/AUTHENTICATION DATA STORE SCHEDULER HEALTH/SCALING C
  • 45.
    OPENSHIFT TECHNICAL OVERVIEW45 AUTO-HEALINGFAILED CONTAINERS RHEL NODE RHEL NODE c RHEL NODE RHEL NODE c RHEL NODE C C RHEL NODE C C RED HAT ENTERPRISE LINUX MASTER API/AUTHENTICATION DATA STORE SCHEDULER HEALTH/SCALING C
  • 46.
    OPENSHIFT TECHNICAL OVERVIEW46 AUTO-HEALINGFAILED CONTAINERS RHEL NODE RHEL NODE c RHEL NODE RHEL NODE c RHEL NODE C C RHEL NODE C C RED HAT ENTERPRISE LINUX MASTER API/AUTHENTICATION DATA STORE SCHEDULER HEALTH/SCALING C
  • 47.
    OPENSHIFT TECHNICAL OVERVIEW47 AUTO-HEALINGFAILED CONTAINERS RHEL NODE RHEL NODE RHEL NODE RHEL NODE C C RHEL NODE C C c RED HAT ENTERPRISE LINUX MASTER API/AUTHENTICATION DATA STORE SCHEDULER HEALTH/SCALING C c
  • 48.
  • 49.
    OPENSHIFT TECHNICAL OVERVIEW49 BUILDAND DEPLOY CONTAINER IMAGES DEPLOY YOUR SOURCE CODE DEPLOY YOUR CONTAINER IMAGE DEPLOY YOUR APP BINARY
  • 50.
    OPENSHIFT TECHNICAL OVERVIEW INTEGRATED IMAGE REGISTRY OPENSHIFT CLUSTER 50 CONTINUOUSDELIVERY PIPELINE DEVELOPER GIT SERVER ARTIFACT REPOSITORY OPENSHIFT CI/CD PIPELINE (JENKINS) IMAGE BUILD & DEPLOY INTEGRATED IMAGE REGISTRY OPENSHIFT CLUSTER GO LIVE? PROMOTE TO TEST PROMOTE TO UAT PROMOTE TO PROD RELEASE MANAGER NON-PROD PRODDEV TEST UAT ☒ ☑
  • 51.
    OPENSHIFT TECHNICAL OVERVIEW CONTINUOUSDELIVERY PIPELINE INTEGRATED IMAGE REGISTRY OPENSHIFT CLUSTER 51 DEVELOPER GIT SERVER ARTIFACT REPOSITORY OPENSHIFT CI/CD PIPELINE (JENKINS) IMAGE BUILD & DEPLOY INTEGRATED IMAGE REGISTRY OPENSHIFT CLUSTER NON-PROD PRODDEV
  • 52.
    OPENSHIFT TECHNICAL OVERVIEW INTEGRATED IMAGE REGISTRY OPENSHIFT CLUSTER 52 CONTINUOUSDELIVERY PIPELINE DEVELOPER GIT SERVER ARTIFACT REPOSITORY OPENSHIFT CI/CD PIPELINE (JENKINS) IMAGE BUILD & DEPLOY INTEGRATED IMAGE REGISTRY OPENSHIFT CLUSTER PROMOTE TO TEST NON-PROD PRODDEV TEST
  • 53.
    OPENSHIFT TECHNICAL OVERVIEW INTEGRATED IMAGE REGISTRY OPENSHIFT CLUSTER 53 CONTINUOUSDELIVERY PIPELINE DEVELOPER GIT SERVER ARTIFACT REPOSITORY OPENSHIFT CI/CD PIPELINE (JENKINS) IMAGE BUILD & DEPLOY INTEGRATED IMAGE REGISTRY OPENSHIFT CLUSTER PROMOTE TO TEST PROMOTE TO UAT NON-PROD PRODDEV TEST UAT
  • 54.
    OPENSHIFT TECHNICAL OVERVIEW ServiceNow JIRAService Desk Zendeks BMC Remedy INTEGRATED IMAGE REGISTRY OPENSHIFT CLUSTER 54 CONTINUOUS DELIVERY PIPELINE DEVELOPER GIT SERVER ARTIFACT REPOSITORY OPENSHIFT CI/CD PIPELINE (JENKINS) IMAGE BUILD & DEPLOY INTEGRATED IMAGE REGISTRY OPENSHIFT CLUSTER GO LIVE? PROMOTE TO TEST PROMOTE TO UAT RELEASE MANAGER NON-PROD PROD ☒ ☑ DEV TEST UAT
  • 55.
    OPENSHIFT TECHNICAL OVERVIEW INTEGRATED IMAGE REGISTRY OPENSHIFT CLUSTER 55 CONTINUOUSDELIVERY PIPELINE DEVELOPER GIT SERVER ARTIFACT REPOSITORY OPENSHIFT CI/CD PIPELINE (JENKINS) IMAGE BUILD & DEPLOY INTEGRATED IMAGE REGISTRY OPENSHIFT CLUSTER GO LIVE? PROMOTE TO TEST PROMOTE TO UAT PROMOTE TO PROD RELEASE MANAGER NON-PROD PRODDEV TEST UAT ☒ ☑