devops z red hat openshift container...red hat enterprise linux master api/authentication data store...

120
DevOps z Red Hat OpenShift Container Platform czyli jak szybko wdrożyć nową wersję aplikacji Jaroslaw Stakun Senior Solution Architect Red Hat CEE

Upload: others

Post on 15-Mar-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

DevOps z Red Hat OpenShift Container Platform czyli jak szybko wdrożyć nową wersję aplikacji

Jaroslaw StakunSenior Solution ArchitectRed Hat CEE

Page 2: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW2

Self-Service

Multi-language

Automation

Collaboration

Seamless

Standards-based

Web-scale

Open Source

Enterprise Grade

Secure

Page 3: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT ARCHITECTURE

Page 4: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW4

OPENSHIFT ARCHITECTURE

EXISTING AUTOMATION

TOOLSETS

SCM(GIT)

CI/CD

SERVICE LAYER

ROUTING LAYER

PERSISTENTSTORAGE

REGISTRY

RHEL

NODE

c

RHEL

NODE

RHEL

NODE

RHEL

NODE

RHEL

NODE

RHEL

NODE

C

C

C C

C

C

C CC C

RED HATENTERPRISE LINUX

MASTER

API/AUTHENTICATION

DATA STORE

SCHEDULER

HEALTH/SCALING

PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID

Page 5: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW5

YOUR CHOICE OF INFRASTRUCTURE

PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID

Page 6: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

NODES RHEL INSTANCES WHERE APPS RUN

6

RHEL

NODE

RHEL

NODE

RHEL

NODE

RHEL

NODE

RHEL

NODE

RHEL

NODE

PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID

Page 7: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

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

7

Container Image

Container

Pod

Page 8: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW8

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

Page 9: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

RHEL

NODE

RHEL

NODE

RHEL

NODE

RHEL

NODE

RHEL

NODE

RHEL

NODE

9

MASTERS ARE THE CONTROL PLANE

RED HATENTERPRISE LINUX

MASTER

PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID

Page 10: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

RHEL

NODE

RHEL

NODE

RHEL

NODE

10

API AND AUTHENTICATION

RHEL

NODE

RHEL

NODE

RHEL

NODE

RED HATENTERPRISE LINUX

MASTER

API/AUTHENTICATION

PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID

Page 11: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

RHEL

NODE

RHEL

NODE

RHEL

NODE

11

DESIRED AND CURRENT STATE

RHEL

NODE

RHEL

NODE

RHEL

NODE

PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID

RED HATENTERPRISE LINUX

MASTER

API/AUTHENTICATION

DATA STORE

PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID

Page 12: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW12

INTEGRATED CONTAINER REGISTRY

RHEL

NODE

RHEL

NODE

RHEL

RHEL

NODE

RHEL

NODE

RHEL

RHEL

NODE

PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID

RED HATENTERPRISE LINUX

MASTER

API/AUTHENTICATION

DATA STORE

SCHEDULER

NODE

REGISTRY

Page 13: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW13

ORCHESTRATION AND SCHEDULING

RHEL

NODE

RHEL

NODE

RHEL

RHEL

NODE

RHEL

NODE

RHEL

RHEL

NODE

PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID

RED HATENTERPRISE LINUX

MASTER

API/AUTHENTICATION

DATA STORE

SCHEDULER

NODE

REGISTRY

Page 14: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW14

PLACEMENT BY POLICY

RHEL

NODE

RHEL

NODE

RHEL

NODE

PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID

RED HATENTERPRISE LINUX

MASTER

API/AUTHENTICATION

DATA STORE

SCHEDULERREGISTRY

RHEL

NODE

RHEL

NODE

C

C

RHEL

NODE

c

C

C

Page 15: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

RHEL

NODE

RHEL

NODE

RHEL

NODE

RHEL

NODE

RHEL

NODE

C

C

RHEL

NODE

c

C

C

15

AUTOSCALING PODS

PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID

RED HATENTERPRISE LINUX

MASTER

API/AUTHENTICATION

DATA STORE

SCHEDULERREGISTRY

HEALTH/SCALING

Page 16: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW16

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

CRED HATENTERPRISE LINUX

MASTER

API/AUTHENTICATION

DATA STORE

SCHEDULER

HEALTH/SCALING

PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID

Page 17: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW17

PERSISTENT DATA IN CONTAINERS

SERVICE LAYER

PERSISTENTSTORAGE

REGISTRY

RHEL

NODE

C

C

RHEL

NODE

C C

RHEL

NODE

c

C

C

RHEL

NODE

C C

RHEL

NODE

C

RHEL

NODE

CRED HATENTERPRISE LINUX

MASTER

API/AUTHENTICATION

DATA STORE

SCHEDULER

HEALTH/SCALING

PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID

Page 18: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW18

ROUTING AND LOAD-BALANCING

SERVICE LAYER

ROUTING LAYER

PERSISTENTSTORAGE

REGISTRY

RHEL

NODE

C

C

RHEL

NODE

C C

RHEL

NODE

c

C

C

RHEL

NODE

C C

RHEL

NODE

C

RHEL

NODE

CRED HATENTERPRISE LINUX

MASTER

API/AUTHENTICATION

DATA STORE

SCHEDULER

HEALTH/SCALING

PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID

Page 19: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW19

ACCESS VIA WEB, CLI, IDE AND API

EXISTING AUTOMATION

TOOLSETS

SCM(GIT)

CI/CD

SERVICE LAYER

ROUTING LAYER

PERSISTENTSTORAGE

REGISTRY

RHEL

NODE

C

C

RHEL

NODE

C C

RHEL

NODE

c

C

C

RHEL

NODE

C C

RHEL

NODE

C

RHEL

NODE

CRED HATENTERPRISE LINUX

MASTER

API/AUTHENTICATION

DATA STORE

SCHEDULER

HEALTH/SCALING

PHYSICAL VIRTUAL PRIVATE PUBLIC HYBRID

Page 20: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

TECHNICAL DEEP DIVE

Page 21: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW21

AUTO-HEALING FAILED CONTAINERS

RHEL

NODE

RHEL

NODE

c

RHEL

NODE

RHEL

NODE

c

RHEL

NODE

C

C

RHEL

NODE

C

C

RED HATENTERPRISE LINUX

MASTER

API/AUTHENTICATION

DATA STORE

SCHEDULER

HEALTH/SCALING

C

Page 22: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW22

AUTO-HEALING FAILED CONTAINERS

RHEL

NODE

RHEL

NODE

c

RHEL

NODE

RHEL

NODE

c

RHEL

NODE

C

C

RHEL

NODE

C

C

RED HATENTERPRISE LINUX

MASTER

API/AUTHENTICATION

DATA STORE

SCHEDULER

HEALTH/SCALING

C

Page 23: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW23

AUTO-HEALING FAILED CONTAINERS

RHEL

NODE

RHEL

NODE

c

RHEL

NODE

RHEL

NODE

c

RHEL

NODE

C

C

RHEL

NODE

C

C

RED HATENTERPRISE LINUX

MASTER

API/AUTHENTICATION

DATA STORE

SCHEDULER

HEALTH/SCALING

C

Page 24: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW24

AUTO-HEALING FAILED CONTAINERS

RHEL

NODE

RHEL

NODE

c

RHEL

NODE

RHEL

NODE

c

RHEL

NODE

C

C

RHEL

NODE

C

C

RED HATENTERPRISE LINUX

MASTER

API/AUTHENTICATION

DATA STORE

SCHEDULER

HEALTH/SCALING

C

Page 25: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW25

AUTO-HEALING FAILED CONTAINERS

RHEL

NODE

RHEL

NODE

RHEL

NODE

RHEL

NODE

C

C

RHEL

NODE

C

C

c

RED HATENTERPRISE LINUX

MASTER

API/AUTHENTICATION

DATA STORE

SCHEDULER

HEALTH/SCALING

C

c

Page 26: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

NETWORKING

Page 27: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW27

BUILT-IN SERVICE DISCOVERYINTERNAL LOAD-BALANCING

SERVICE

app=payroll role=frontend

POD

app=payroll

role=frontend

POD

app=payroll

role=frontend

Name: payroll-frontendIP: 172.10.1.23Port: 8080

POD

app=payroll

role=backendversion=1.0 version=1.0

Page 28: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW28

BUILT-IN SERVICE DISCOVERYINTERNAL LOAD-BALANCING

SERVICE

app=payroll role=frontend

POD

app=payroll

role=frontend

POD

app=payroll

role=frontend

POD

app=payroll

role=frontend

Name: payroll-frontendIP: 172.10.1.23Port: 8080

POD

app=payroll

role=backendversion=2.0 version=1.0 version=1.0

Page 29: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW29

SERVICE

POD POD

ROUTER

POD

EXTERNAL TRAFFIC

INTERNAL TRAFFIC

ROUTE EXPOSES SERVICES EXTERNALLY

Page 30: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW30

● Pluggable routing architecture○ HAProxy Router○ F5 Router

● Multiple-routers with traffic sharding● Router supported protocols

○ HTTP/HTTPS○ WebSockets○ TLS with SNI

● Non-standard ports via cloud load-balancers, external IP, and NodePort

ROUTING AND EXTERNAL LOAD-BALANCING

Page 31: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW31

ROUTE SPLIT TRAFFIC

SERVICE A

App A App A

SERVICE B

App B App B

ROUTE

10% traffic90% traffic

Split Traffic Between Multiple Services For A/B Testing, Blue/Green and Canary Deployments

Page 32: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

NODE192.10.0.12

NODE192.10.0.11

NODE192.10.0.10

32

ASSIGN EXTERNAL IP TO SERVICES

SERVICE

EXT IP: 200.1.0.10:90INT IP: 172.1.0.20:90

POD

10.1.0.1:90

POD

10.1.0.2:90

POD

10.1.0.3:90

connect 200.1.0.10:90

CLIENT● Access a service with an external IP on any TCP/UDP port, such as

○ Databases○ Message Brokers

● Automatic IP allocation from a predefined IP pool

● IP failover pods provide high availability for the IP pool

Page 33: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

● NodePort binds a service to a unique port on all the nodes

● Traffic received on any node redirects to a node with the running service

● Ports in 30K-60K range which usually differs from the service

● Firewall rules must allow traffic to all nodes on the specific port

33

EXPOSE A SERVICE ON ALL NODE IPS

NODE192.10.0.12

NODE192.10.0.11

NODE192.10.0.10

SERVICE

INT IP: 172.1.0.20:90

POD

10.1.0.1:90

POD

10.1.0.2:90

POD

10.1.0.3:90

connect 192.10.0.10:31421

CLIENT

Page 34: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW34

CONTROL OUTGOING TRAFFIC SOURCE IP WITH EGRESS ROUTER

NODEIP1

EGRESSROUTER

PODIP1

EGRESS SERVICEINTERNAL-IP:8080

EXTERNAL SERVICE

Whitelist: IP1

POD

POD

POD

Page 35: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW35

● Built-in internal DNS to reach services by name

● Split DNS is supported via SkyDNS○ Master answers DNS queries for internal services○ Other nameservers serve the rest of the queries

● Software Defined Networking (SDN) for a unified cluster network to enable pod-to-pod communication

● OpenShift follows the Kubernetes Container Networking Interface (CNI) plug-in model

OPENSHIFT NETWORKING

Page 36: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW36

OPENSHIFT NETWORK PLUGINS

OPENSHIFT

KUBERNETES CNI

OpenShift Plugin Flannel

Plugin*NuagePlugin

TigeraCalicoPlugin

JuniperContrailPlugin

CiscoContivPlugin

Big SwitchPlugin

Certified Plugin Validated Plugin

* Flannel is minimally verified and is supported only and exactly as deployed in the OpenShift on OpenStack reference architecture

VMwareNSX-TPlugin

In-Progress

For a Complete List of Certified Plugins refer to OpenShift Third-Party SDN FAQ

DEFAULT

Page 37: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

NODE172.16.1.10

37

OPENSHIFT NETWORKING

POD10.1.2.1

POD10.1.4.1

NODE172.16.1.20

POD10.1.2.2

POD10.1.4.2

IP Network

VxLAN Overlay Network

Page 38: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

FLAT NETWORK (Default)

● All pods can communicate with each other across projects

MULTI-TENANT NETWORK

● Project-level network isolation● Multicast support● Egress network policies

NETWORK POLICY (Tech Preview)

● Granular policy-based isolation

38

OPENSHIFT SDN

NODE

POD POD

PODPOD

NODE

POD POD

PODPOD

PROJECT A PROJECT B

DEFAULT NAMESPACE

PROJECT C

Multi-Tenant Network

Page 39: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

PROJECT A

39

OPENSHIFT SDN - NETWORK POLICY

POD

POD

POD

POD

PROJECT B

POD

POD

POD

POD

Example Policies● Allow all traffic inside the project● Allow traffic from green to gray● Allow traffic to purple on 8080

8080

5432

apiVersion: extensions/v1beta1kind: NetworkPolicymetadata: name: allow-to-purple-on-8080spec: podSelector: matchLabels: color: purple ingress: - ports: - protocol: tcp port: 8080

Page 40: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

Container to Container on the Same Host

40

OPENSHIFT SDN - OVS PACKET FLOW

NODE

POD 1veth0

10.1.15.2/24

br010.1.15.1/24

192.168.0.100

eth0

POD 2veth1

10.1.15.3/24

vxlan0

Page 41: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

NODE 2

NODE 1

41

OPENSHIFT SDN - OVS PACKET FLOW

POD 1veth0

10.1.15.2/24br0

10.1.15.1/24vxlan0

POD 2veth0

10.1.20.2/24br0

10.1.20.1/24vxlan0

192.168.0.100

eth0

192.168.0.200

eth0

Container to Container on the Different Hosts

Page 42: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

Container Connects to External Host

Container to Container on Different Hosts

42

OPENSHIFT SDN - OVS PACKET FLOW

NODE 1

POD 1veth0

10.1.15.2/24br0

10.1.15.1/24tun0

192.168.0.100

ExternalHost

eth0

Page 43: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW43

OPENSHIFT SDN WITH FLANNEL FOR OPENSTACK

NODE 1

POD 1veth0

10.1.15.2/24docker0

10.1.15.1/24Routing Table

flanneld

NODE 2

POD 2veth0

10.1.20.2/24docker0

10.1.20.1/24Routing Table

flanneld

etcd

192.168.0.100

eth0

192.168.0.200

eth0

Flannel is minimally verified and is supported only and exactly as deployed in the OpenShift on OpenStack reference architecture https://access.redhat.com/articles/2743631

Page 44: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

LOGGING & METRICS

Page 45: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW45

● EFK stack to aggregate logs for hosts and applications

○ Elasticsearch: an object store to store all logs

○ Fluentd: gathers logs and sends to Elasticsearch.

○ Kibana: A web UI for Elasticsearch.

● Access control

○ Cluster administrators can view all logs

○ Users can only view logs for their projects

● Ability to send logs elsewhere

○ External elasticsearch, Splunk, etc

CENTRAL LOG MANAGEMENT WITH EFK

Page 46: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

CENTRAL LOG MANAGEMENT WITH EFK

APPLICATION LOGS

OPERATION LOGS

ELASTICELASTIC

46

RHEL

NODE

POD POD

PODPODFL

UE

NTD

RHEL

NODE

POD POD

PODPOD

FLU

EN

TDELASTICSEARCH

RHEL

NODE

POD POD

PODPOD

FLU

EN

TD

USER

ELASTICELASTIC

KIBANA

ELASTICELASTIC

ELASTICSEARCH

ELASTICELASTIC

KIBANA

ADMIN

Page 47: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW47

CONTAINER METRICS

Page 48: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

CONTAINER METRICS

48

RHEL

NODE

POD POD

PODPODFL

UE

NTD

CONTAINER METRICS

RHEL

NODE

POD POD

PODPOD

FLU

EN

TD

HEAPSTER

RHEL

NODE

POD POD

PODPOD

CA

DV

ISO

RHAWKULAR OPENSHIFT

WEB CONSOLE

ELASTICELASTICCASSANDRA

RED HATCLOUDFORMS

CUSTOMDASHBOARDS

API

USER

Page 49: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

SECURITY

Page 50: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW50

TEN LAYERS OF CONTAINER SECURITY

Container Host & Multi-tenancy

Container ContentContainer Registry

Building Containers

Deploying Container

Container Platform

Network Isolation

Storage

API Management

Federated Clusters

Page 51: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

NODE

MASTER● Secure mechanism for holding sensitive data e.g.

○ Passwords and credentials○ SSH Keys○ Certificates

● Secrets are made available as○ Environment variables○ Volume mounts○ Interaction with external systems

● Encrypted in transit

● Never rest on the nodes

51

SECRET MANAGEMENT

Container

Distributed Store

Container

Page 52: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

PERSISTENT STORAGE

Page 53: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW53

● Persistent Volume (PV) is tied to a piece of network storage● Provisioned by an administrator (static or dynamically)● Allows admins to describe storage and users to request storage

PERSISTENT STORAGE

NFS GlusterFS OpenStack Cinder

Ceph RBD AWSEBS

GCE Persistent

DiskiSCSI Fibre

ChannelAzureFile

AzureDisk

Page 54: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

PROJECT

POOL OF PERSISTENT VOLUMES

54

PERSISTENT STORAGE

NFSPV

iSCSIPV

NFSPV

Admin

User

register PV

create claim

NFSPV

GlusterFSPV

Pod

claim

Pod

claim

Pod

claim

CephRBDPV

Page 55: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW55

DYNAMIC VOLUME PROVISIONING

Admin

User

define StorageClass

create claim: Fastest

SlowAzure-Disk

FastAWS-SSD

FastestNetApp-Flash

NetAppProvisioner

AWSProvisioner

Pod

claim

PV

OpenShiftPV Controller

provision

AzureProvisioner

bound

Page 56: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW56

● Containerized Red Hat Gluster Storage

● Native integration with OpenShift

● Unified Orchestration using Kubernetes for

applications and storage

● Greater control & ease of use for developers

● Lower TCO through convergence

● Single vendor SupportDISTRIBUTED, SECURE, SCALE-OUT STORAGE

CLUSTER

APPLICATIONCONTAINER

APPLICATION CONTAINER

APPLICATION CONTAINER

STORAGECONTAINER

STORAGECONTAINER

STORAGECONTAINER

CONTAINER-NATIVE STORAGE

Page 57: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

NODENODENODE

CONTAINER-NATIVE STORAGE

57

NODE

POD POD POD POD POD POD POD

POD POD POD

RHGS RHGS RHGS

POD POD POD

MASTER

Page 58: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

SERVICE BROKER

Page 59: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW59

● Born out of Cloud Foundry Foundation

● Standard way to deliver services to apps running on OpenShift, Kubernetes, etc

● A collaboration between multiple vendors

● Integrated with OpenShift and Kubernetes

● Release Timeline

○ OCP 3.6 Tech Preview○ OCP 3.7 GA

OPEN SERVICE BROKER API

RED HATPIVOTALIBMSAPGOOGLEFUJITSU

Page 60: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW60

CONSUMING SERVICES

SERVICE CONSUMER

SERVICE PROVIDER

☑ Open ticket☑ Wait for allocation☑ Receive credentials☑ Add to app☑ Deploy app

Page 61: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW61

CONSUMING SERVICES WITH OPEN SERVICE BROKER API

SERVICE CONSUMER

SERVICE PROVIDER

SERVICE CATALOG

SERVICE BROKER

Page 62: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW62

OPENSHIFT SERVICE CATALOG

OPENSHIFT SERVICE CATALOG

AnsibleServiceBroker

OpenShiftTemplateBroker

CloudServiceBroker

OtherServiceBrokers

ANSIBLE

OPENSHIFT

PUBLIC CLOUD

OTHER COMPATIBLE SERVICES

Ansible Playbook Bundles

OpenShiftTemplates

PublicCloudServices

OtherServices

(TECH PREVIEW)

Page 63: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPERATIONAL MANAGEMENT

Page 64: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW64

TOP CHALLENGES OFRUNNING CONTAINERS AT SCALE

SERVICEHEALTH

SECURITY& COMPLIANCE

FINANCIALMANAGEMENT

OPERATIONALEFFICIENCY

Page 65: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW65

Operational ManagementAcross the Stack

● Real-time discovery● Visualize relationships● Monitoring and alerts● Vulnerability scanning● Security compliance● Workflow and policy● Automation● Chargeback

Page 66: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

● CloudForms continuously discovers your infrastructure in near real time.

● CloudForms discovers and visualizes relationships between infra components

● CloudForms cross references inventory across technologies.

● CloudForms offers custom automation via control policy or UI extensions

66

OPERATIONAL EFFICIENCY

Page 67: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW67

OPERATIONAL EFFICIENCY

Page 68: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

● CloudForms monitors resource consumption and shows trends

● CloudForms alerts on performance thresholds or other events

● CloudForms offers right-sizing recommendations

● CloudForms enforces configuration and tracks it over time.

68

SERVICE HEALTH

Page 69: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW69

SERVICE HEALTH

Page 70: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

● CloudForms finds and marks nodes non-compliant with policy.

● CloudForms allows reporting on container provenance.

● CloudForms scans container images using OpenSCAP.

● CloudForms tracks genealogy between images and containers.

70

SECURITY & COMPLIANCE

Page 71: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW71

SECURITY & COMPLIANCE

Page 72: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

● Define cost models for infrastructure and understand your cost.

● Rate schedules per platform and per tenant with multi-tiered and multi-currency support

● CloudForms shows top users for CPU, memory, as well as cost.

● Chargeback/showback to projects based on container utilization.

72

FINANCIAL MANAGEMENT

Page 73: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW73

FINANCIAL MANAGEMENT

Page 74: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

REFERENCE ARCHITECTURES

Page 75: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

OpenShift on VMware vCenterhttps://access.redhat.com/articles/2745171

OpenShift on Red Hat OpenStack Platformhttps://access.redhat.com/articles/2743631

OpenShift on Amazon Web Serviceshttps://access.redhat.com/articles/2623521

OpenShift on Google Cloud Platformhttps://access.redhat.com/articles/2751521

OpenShift on Microsoft Azurehttps://access.redhat.com/articles/3030691

Deploying an OpenShift Distributed Architecturehttps://access.redhat.com/articles/1609803

OpenShift Architecture and Deployment Guidehttps://access.redhat.com/articles/1755133

OpenShift Scaling, Performance, and Capacity Planninghttps://access.redhat.com/articles/2191731

Application Release Strategies with OpenShifthttps://access.redhat.com/articles/2897391

Building Polyglot Microservices on OpenShift https://access.redhat.com/articles/2893381

Building JBoss EAP 6 Microservices on OpenShifthttps://access.redhat.com/articles/2094731

Building JBoss EAP 7 Microservices on OpenShifthttps://access.redhat.com/articles/2407801

Business Process Management with JBoss BPMS on OpenShifthttps://access.redhat.com/articles/2893421

Build and Deployment of Java Applications on OpenShifthttps://access.redhat.com/articles/3016691

JFrog Artifactory on OpenShift Container Platformhttps://access.redhat.com/articles/3049611

75

REFERENCE ARCHITECTURES

Page 76: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

BUILD AND DEPLOYCONTAINER IMAGES

Page 77: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW77

BUILD AND DEPLOY CONTAINER IMAGES

DEPLOY YOURSOURCE CODE

DEPLOY YOURAPP BINARY

DEPLOY YOURCONTAINER IMAGE

Page 78: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW78

DEPLOY YOUR SOURCE CODE

Page 79: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW79

DEPLOY SOURCE CODE WITH SOURCE-TO-IMAGE (S2I)

codeGit Repository

Source-to-Image(S2I)

deploy

CODE

BUILD

DEPLOY

Builder Image

ImageRegistry

OPS

DEV

Application Container

Page 80: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

Developers write code using existing development tools such as Maven, NPM, Bower, PIP, Dockerfile and Git and then access the OpenShift Web, CLI or IDE to create an app from the code

80

DEPLOY SOURCE CODE WITH SOURCE-TO-IMAGE (S2I)

codeGit Repository

CODE DEV

Page 81: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

S2I combines source code with a builder image (language and application runtimes) and stores the resulting application image in the image registry

81

DEPLOY SOURCE CODE WITH SOURCE-TO-IMAGE (S2I)

codeGit Repository

Source-to-Image(S2I)

Builder Image

ImageRegistry

BUILD DEV

Page 82: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

OpenShift automates the deployment of application containers across multiple hosts via the Kubernetes. Users can trigger deployments, rollback, configure A/B or other custom deployments

82

DEPLOY SOURCE CODE WITH SOURCE-TO-IMAGE (S2I)

codeGit Repository

Source-to-Image(S2I)

deploy

Builder Image

ImageRegistry

OPS

DEVDEPLOY

Application Container

Page 83: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

DEPLOY YOUR APP BINARY

83

Page 84: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

DEPLOY

84

DEPLOY APP BINARY WITH SOURCE-TO-IMAGE (S2I)

ApplicationBinary

(e.g. WAR)

Source-to-Image(S2I)

deploy

Builder Image

ImageRegistry

OPS

DEV

BUILD APP

BUILD IMAGE

Existing Build Process

Application Container

build

Page 85: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

Developers use the existing build process and tools (e.g. Maven, Gradle, Jenkins, Nexus) to build the app binaries (e.g. JAR, WAR, EAR) and use OpenShift CLI to create an app from the app binaries

85

DEPLOY APP BINARY WITH SOURCE-TO-IMAGE (S2I)

ApplicationBinary

(e.g. WAR)

DEVBUILD APP Existing Build

Process

...

build

Page 86: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW86

DEPLOY APP BINARY WITH SOURCE-TO-IMAGE (S2I)

ApplicationBinary

(e.g. WAR)

Source-to-Image(S2I)

Builder Image

ImageRegistry

DEV

build

Existing Build Process

BUILD IMAGES2I combines app binaries (e.g. JAR, WAR, EAR) with a builder image (language and application runtimes) and stores the resulting application image in the image registry

Page 87: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW87

DEPLOY APP BINARY WITH SOURCE-TO-IMAGE (S2I)

ApplicationBinary

(e.g. WAR)

Source-to-Image(S2I)

deploy

Builder Image

ImageRegistry

OPS

DEV

Existing Build Process

DEPLOY

Application Container

OpenShift automates the deployment of application containers across multiple hosts via the Kubernetes. Users can trigger deployments, rollback, configure A/B or other custom deployments

build

Page 88: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

DEPLOY YOUR CONTAINER IMAGE

88

Page 89: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

App images are built using an existing image build process. OpenShift automates the deployment of app containers across multiple hosts via the Kubernetes. Users can trigger deployments, rollback, configure A/B, etc

DEPLOY

89

DEPLOY DOCKER IMAGE

build

Application Container

deploy

Application Image

ImageRegistry

OPS

DEV

BUILD

Existing ImageBuild Process

Page 90: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

BUILD STAGE 3

BUILD STAGE 2

BUILD STAGE 1

90

BUILD IMAGES IN MULTIPLE STAGES

Page 91: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW91

EXAMPLE: USE ANY RUNTIME IMAGE WITH SOURCE-TO-IMAGE BUILDS

DOCKER BUILDWILDFLY S2I BUILD app.war

WildFly S2IBuilder Image

WildFly Runtime Image

Use Source-to-Image to build app binaries and deploy on lean vanilla runtimes

read more on https://blog.openshift.com/chaining-builds/

Page 92: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW92

EXAMPLE: USE ANY BUILD TOOL WITH OFFICIAL RUNTIME IMAGES

DOCKER BUILDCUSTOM GRADLE BUILD app.war

CustomGradle S2IBuilder Image

Red HatOpenJDKImage

Use your choice of build tool like Gradle and deploy to official images like the JDK image

read more on https://blog.openshift.com/chaining-builds/

Page 93: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW93

EXAMPLE: SMALL LEAN RUNTIMES

DOCKER BUILDCUSTOM GO BUILD app

CustomGo S2IBuilder Image

ScratchImage

Build the app binary and deploy on small scratch images

read more on https://blog.openshift.com/chaining-builds/

Page 94: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

CONTINUOUS INTEGRATION (CI)CONTINUOUS DELIVERY (CD)

Page 95: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

CI/CD WITH BUILD AND DEPLOYMENTS

95

BUILDS● Webhook triggers: build the app image whenever the code changes● Image trigger: build the app image whenever the base language or app runtime changes● Build hooks: test the app image before pushing it to an image registry

DEPLOYMENTS● Deployment triggers: redeploy app containers whenever configuration changes or the

image changes in the OpenShift integrated registry or upstream registries

Page 96: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW96

CONTINUOUS DELIVERY WITH CONTAINERS

sourcerepository

CI/CDengine

dev container

physical

virtual

private cloud

public cloud

Page 97: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW97

OPENSHIFT LOVES CI/CD

JENKINS-AS-A SERVICEON OPENSHIFT

HYBRID JENKINS INFRA WITH OPENSHIFT

EXISTING CI/CD DEPLOY TO OPENSHIFT

Page 98: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW98

JENKINS-AS-A-SERVICE ON OPENSHIFT

● Certified Jenkins images with pre-configured plugins○ Provided out-of-the-box○ Follows Jenkins 1.x and 2.x LTS versions

● Jenkins S2I Builder for customizing the image○ Install Plugins○ Configure Jenkins○ Configure Build Jobs

● OpenShift plugins to integrate authentication with OpenShift and also CI/CD pipelines

● Dynamically deploys Jenkins slave containers

PluginsJobs

Configuration

Jenkins(S2I)

CustomJenkinsImage

JenkinsImage

Page 99: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

● Scale existing Jenkins infrastructure by dynamically provisioning Jenkins slaves on OpenShift

● Use Kubernetes plug-in on existing Jenkin servers

99

HYBRID JENKINS INFRA WITH OPENSHIFT

OPENSHIFT

APP APPrun jobJENKINSSLAVE

Run Job

JENKINSSLAVE

Run Job

build

JENKINSMASTER

deploy

Page 100: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

● Existing CI/CD infrastructure outside OpenShift performs operations against OpenShift○ OpenShift Pipeline Jenkins Plugin for Jenkins○ OpenShift CLI for integrating other CI Engines with OpenShift

● Without disrupting existing processes, can be combined with previous alternative

100

EXISTING CI/CD DEPLOY TO OPENSHIFT

OPENSHIFT

APPEXISTING

CI/CD INFRA

Jenkins, Bamboo, TeamCity, etc

APPbuild

deploy

S2IBuildrun job

Page 101: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW101

OPENSHIFT PIPELINES

● OpenShift Pipelines allow defining a CI/CD workflow via a Jenkins pipeline which can be started, monitored, and managed similar to other builds

● Dynamic provisioning of Jenkins slaves

● Auto-provisioning of Jenkins server

● OpenShift Pipeline strategies○ Embedded Jenkinsfile○ Jenkinsfile from a Git repository

apiVersion: v1kind: BuildConfigmetadata: name: app-pipelinespec: strategy: type: JenkinsPipeline jenkinsPipelineStrategy: jenkinsfile: |- node('maven') { stage('build app') { git url: 'https://git/app.git' sh "mvn package" } stage('build image') { sh "oc start-build app --from-file=target/app.jar } stage('deploy') { openshiftDeploy deploymentConfig: 'app' } }

Provision a Jenkins slave for running Maven

Page 102: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW102

OpenShift Pipelines inWeb Console

Page 103: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

APPLICATIONIMAGE

103

CONTINUOUS DELIVERY PIPELINE

DEV TEAM GIT SERVER ARTIFACT REPOSITORY

JENKINSIMAGE BUILD

● S2I build from source code● S2I build from app binary● Existing docker container image

build process

Page 104: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

CONTINUOUS DELIVERY PIPELINE

INTEGRATEDIMAGE

REGISTRY

OPENSHIFTCLUSTER

104

DEVELOPER GIT SERVER ARTIFACT REPOSITORY

OPENSHIFT CI/CD PIPELINE (JENKINS)

IMAGE BUILD & DEPLOY

INTEGRATEDIMAGEREGISTRY

OPENSHIFTCLUSTER

NON-PROD PRODDEV

Page 105: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

INTEGRATEDIMAGE

REGISTRY

OPENSHIFTCLUSTER

105

CONTINUOUS DELIVERY PIPELINEDEVELOPER GIT SERVER ARTIFACT REPOSITORY

OPENSHIFT CI/CD PIPELINE (JENKINS)

IMAGE BUILD & DEPLOY

INTEGRATEDIMAGEREGISTRY

OPENSHIFTCLUSTER

PROMOTETO TEST

NON-PROD PRODDEV TEST

Page 106: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

INTEGRATEDIMAGE

REGISTRY

OPENSHIFTCLUSTER

106

CONTINUOUS DELIVERY PIPELINEDEVELOPER GIT SERVER ARTIFACT REPOSITORY

OPENSHIFT CI/CD PIPELINE (JENKINS)

IMAGE BUILD & DEPLOY

INTEGRATEDIMAGEREGISTRY

OPENSHIFTCLUSTER

PROMOTETO TEST

PROMOTETO UAT

NON-PROD PRODDEV TEST UAT

Page 107: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

ServiceNowJIRA Service DeskZendeksBMC Remedy

INTEGRATEDIMAGE

REGISTRY

OPENSHIFTCLUSTER

107

CONTINUOUS DELIVERY PIPELINEDEVELOPER GIT SERVER ARTIFACT REPOSITORY

OPENSHIFT CI/CD PIPELINE (JENKINS)

IMAGE BUILD & DEPLOY

INTEGRATEDIMAGEREGISTRY

OPENSHIFTCLUSTER

GOLIVE?

PROMOTETO TEST

PROMOTETO UAT

RELEASE MANAGER

NON-PROD PROD

☒ ☑

DEV TEST UAT

Page 108: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

INTEGRATEDIMAGE

REGISTRY

OPENSHIFTCLUSTER

108

CONTINUOUS DELIVERY PIPELINEDEVELOPER GIT SERVER ARTIFACT REPOSITORY

OPENSHIFT CI/CD PIPELINE (JENKINS)

IMAGE BUILD & DEPLOY

INTEGRATEDIMAGEREGISTRY

OPENSHIFTCLUSTER

GOLIVE?

PROMOTETO TEST

PROMOTETO UAT

PROMOTETO PROD

RELEASE MANAGER

NON-PROD PRODDEV TEST UAT

☒ ☑

Page 109: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

DEVELOPER WORKFLOW

Page 110: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW110

LOCAL DEVELOPMENT WORKFLOW

DevelopLocal

DeployVerify Git Push PipelineBootstrap

Page 111: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

BOOTSTRAP

● Pick your programming language and application runtime of choice● Create the project skeleton from scratch or use a generator such as

○ Maven archetypes○ Quickstarts and Templates○ OpenShift Generator○ Spring Initializr

111

LOCAL DEVELOPMENT WORKFLOW

DevelopLocal

DeployVerify Git Push PipelineBootstrap

Page 112: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW112

DEVELOP

● Pick your framework of choice such as Java EE, Spring, Ruby on Rails, Django, Express, ...● Develop your application code using your editor or IDE of choice● Build and test your application code locally using your build tools● Create or generate OpenShift templates or Kubernetes objects

LOCAL DEVELOPMENT WORKFLOW

DevelopLocal

DeployVerify Git Push PipelineBootstrap

Page 113: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW113

LOCAL DEPLOY

● Deploy your code on a local OpenShift cluster○ Red Hat Container Development Kit (CDK), minishift and oc cluster

● Red Hat CDK provides a standard RHEL-based development environment● Use binary deploy, maven or CLI rsync to push code or app binary directly into containers

LOCAL DEVELOPMENT WORKFLOW

DevelopLocal

DeployVerify Git Push PipelineBootstrap

Page 114: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW114

VERIFY

● Verify your code is working as expected● Run any type of tests that are required with or without other components (database, etc)● Based on the test results, change code, deploy, verify and repeat

LOCAL DEVELOPMENT WORKFLOW

DevelopLocal

DeployVerify Git Push PipelineBootstrap

Page 115: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW115

GIT PUSH

● Push the code and configuration to the Git repository● If using Fork & Pull Request workflow, create a Pull Request● If using code review workflow, participate in code review discussions

LOCAL DEVELOPMENT WORKFLOW

DevelopLocal

DeployVerify Git Push PipelineBootstrap

Page 116: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

PIPELINE

● Pushing code to the Git repository triggers one or multiple deployment pipelines● Design your pipelines based on your development workflow e.g. test the pull request● Failure in the pipeline? Go back to the code and start again

116

LOCAL DEVELOPMENT WORKFLOW

DevelopLocal

DeployVerify Git Push PipelineBootstrap

Page 117: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

APPLICATION SERVICES

Page 118: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW118

A PLATFORM THAT GROWS WITH YOUR BUSINESS

Data Virtualization

Real Time Decision

IntelligentProcess

Integration Messaging Data Grid

Java EE Application

WebApplication

SingleSign-On MobileAPI

Management

Micro services

Page 119: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

OPENSHIFT TECHNICAL OVERVIEW

CrunchyData

GitLab

Iron.io

Couchbase

Sonatype

EnterpriseDB

NuoDB

Fujitsu

and many more

119

...and virtually any docker

image out there!

TRUE POLYGLOT PLATFORM

PHPPythonJava NodeJS Perl Ruby .NETCore

ApacheHTTPServer

MySQL Redis

nginx TomcatVarnish

JBossEAP

JBossA-MQ

JBossFuse

JBossBRMS

JBossBPMS

JBossData Grid

JBossData Virt

RH Mobile RH SSO3SCALE

API mgmt

JBossWeb

Server

SpringBoot

Wildfly Swarm Vert.x

PostgreSQL MongoDB

Phusion Passenger

Third-partyLanguage Runtimes

Third-partyDatabases

Third-partyApp

Runtimes

Third-partyMiddleware

Third-partyMiddleware

LANGUAGES

DATABASES

WEB SERVERS

MIDDLEWARE

Page 120: DevOps z Red Hat OpenShift Container...red hat enterprise linux master api/authentication data store scheduler health/scaling physical virtual private public hybrid. 5 openshift technical

THANK YOU

plus.google.com/+RedHat

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHatNews