n this presentation you will learn why enterprises are so excited about OpenShift, the Container Platform by Red Hat. This platform leverages open source technologies like Docker and Kubernetes, to deliver a platform ready for agile application development, while providing ops the stability they need for production deployments. In this presentation we will cover how OpenShift meets these challenges, and give you some insight in how OpenShift is working.
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/
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
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
☒
☑
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
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
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
25. 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
35. 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
36. 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
37. 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
39. 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
40. 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
41. 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
42. 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
43. 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
44. 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
45. 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
46. 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
47. 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