Sei sulla pagina 1di 59

ShowIT

31/01/2018

Openshift for DevOps

Jiří Kolář
Solution Architect CZ/SK/CEE
jkolar@redhat.com
How do you enable Digital Transformation?
When all buzzwords come to a party ...

Devops! Containers! Microservices!


Modern App Dev?
DevOps

J
PROBLEM:

DEVELOPERS I.T. OPERATIONS


SOLUTION:

Key concepts:
• Small changes -> Less Risk
• Delivery pipeline = Automation!
• Culture change: Acceptance of failure
• Team takes ownership and responsibility!
Containers

J
PROBLEM:

>> ??
SOLUTION:

>>
VIRTUAL MACHINES CONTAINERS
Containers! VM Container Container Container Container

App App App App


App App App App

OS Dependencies OS deps OS deps OS deps OS deps

Kernel Container Host (Kernel)

Hypervisor
Hardware
Hardware

virtual machines are isolated containers are isolated


apps are not so are the apps

>>
Microservices

J
ARCHITECT FOR SMALLER
APPLICATION COMPONENTS
(microservices primer)

There is good and bad


SVC SVC
µSVC ● Good
CONTAINER ○ Agile, DevOps
○ Polyglot
MONOLITH ○ New Architectures
µSVC
● Bad
SVC SVC CONTAINER ○ Complexity
○ Dependencies
○ Consistency
PRE-SOA SOA MICROSERVICES ○ Dealing with data

Virtualization Containerization

12 CONFIDENTIAL - FOR INTERNAL USE ONLY


OPENSHIFT CONTAINER PLATFORM

CONTAINER

APPLICATION LIFECYCLE MANAGEMENT

Container platform

CONTAINER ORCHESTRATION AND MANAGEMENT

ENTERPRISE CONTAINER HOST

Laptop Datacenter OpenStack Amazon Web Services Microsoft Azure Google Cloud
INFRASTRUCTURE

13 OPENSHIFT TECHNICAL OVERVIEW


OPENSHIFT CONTAINER PLATFORM

ANY
CONTAINER

APPLICATION LIFECYCLE MANAGEMENT

CONTAINER ORCHESTRATION AND MANAGEMENT


(KUBERNETES)

ENTERPRISE CONTAINER HOST

ANY
Laptop Datacenter OpenStack Amazon Web Services Microsoft Azure Google Cloud
INFRASTRUCTURE

14 OPENSHIFT TECHNICAL OVERVIEW


CONTAINERS or PODS ?
A container is the smallest compute unit

CONTAINER

16 OPENSHIFT TECHNICAL OVERVIEW


containers are created from
container images

CONTAINER
CONTAINER
IMAGE

BINARY RUNTIME

17 OPENSHIFT TECHNICAL OVERVIEW


container images are stored in
an image registry

IMAGE REGISTRY

CONTAINER CONTAINER CONTAINER


IMAGE IMAGE IMAGE

CONTAINER

CONTAINER CONTAINER CONTAINER


IMAGE IMAGE IMAGE

18 OPENSHIFT TECHNICAL OVERVIEW


containers are wrapped in pods which are
units of deployment and management

POD POD

CONTAINER CONTAINER CONTAINER

IP: 10.1.0.11 IP: 10.1.0.55

19 OPENSHIFT TECHNICAL OVERVIEW


OpenShift
How it works
Openshift architecture
Source 2 Image Walk Through

Code

Build
Container
Registry
Image

Deploy
TRUE POLYGLOT PLATFORM
Third-party
.NET
LANGUAGES Java NodeJS Python PHP Perl Ruby Language
Core Runtimes

DATABASES MySQL PostgreSQL MongoDB Redis ...and virtually Third-party


Databases
CrunchyData

any docker GitLab


Iron.io
Apache
image Third-party
Phusion Couchbase
WEB SERVERS HTTP
Server
nginx Varnish Passenger Tomcat
out there! App
Runtimes Sonatype
EnterpriseDB
JBoss NuoDB
Spring Wildfly JBoss JBoss JBoss Third-party
Vert.x Web Middleware
Boot Swarm EAP A-MQ Fuse
Server Fujitsu
MIDDLEWARE and many more

3SCALE JBoss JBoss JBoss JBoss RH Third-party


RH SSO Middleware
API mgmt BRMS BPMS Data Virt Data Grid Mobile

23 OPENSHIFT TECHNICAL OVERVIEW


Openshift architecture
What if ..
What if .. ..
Self-healing AKA. Contant HA
OpenShift
Full CI/CD platform
OpenShift CI/CD flow
OPENSHIFT PIPELINES

● OpenShift Pipelines allow defining a apiVersion: v1


CI/CD workflow via a Jenkins pipeline kind: BuildConfig
metadata: Provision a
which can be started, monitored, and name: app-pipeline
Jenkins slave for
spec:
managed similar to other builds strategy: running Maven
type: JenkinsPipeline
jenkinsPipelineStrategy:
● Dynamic provisioning of Jenkins slaves jenkinsfile: |-
node('maven') {
stage('build app') {
● Auto-provisioning of Jenkins server git url: 'https://git/app.git'
sh "mvn package"
● OpenShift Pipeline strategies }
stage('build image') {
○ Embedded Jenkinsfile sh "oc start-build app --from-file=target/app.jar
}
○ Jenkinsfile from a Git repository stage('deploy') {
openshiftDeploy deploymentConfig: 'app'
}
}

30 OPENSHIFT TECHNICAL OVERVIEW


OpenShift
Pipelines in
Web Console

31 OPENSHIFT TECHNICAL OVERVIEW


OpenShift
What is inside?
Trusted Container OS

Enterprise Container Host


Container Runtime & Packaging Trusted by Fortune Global
(Docker)
Atomic Host Red Hat Enterprise Linux
500 companies
Enterprise Kubernetes

Container Orchestration & Cluster Management


(kubernetes)
Logs &
Networking Storage Registry Security
Metrics
Cloudforms
Infrastructure Automation & Mg
Red Hat Storage
Enterprise Container Host
Container Runtime & Packaging
(Docker)
Atomic Host Red Hat Enterprise Linux
Enterprise Container Platform

Self-Service
Service Catalog Source-2-Image
(Language Runtimes, Middleware, Databases)

Build Automation Deployment Automation


Application Pipelines
OpenShift Application Lifecycle Management Dev Tools
(CI/CD)

Container Orchestration & Cluster Management


(kubernetes)
Logs &
Networking Storage Registry Security
Metrics

Infrastructure Automation & Cockpit

Enterprise Container Host


Container Runtime & Packaging
(Docker)
Atomic Host Red Hat Enterprise Linux
Traditional, Stateful, and Microservices-based Apps
Business Data & Web &
Integration
Automation Storage Mobile JBOSS EAP
Container Container Container Container JBOSS DATA GRID
Self-Service JBOSS DATA
Service Catalog VIRTUALIZATION
(Language Runtimes, Middleware, Databases)
JBOSS AM-Q
Build Automation Deployment Automation
JBOSS BRMS
OpenShift Application Lifecycle Management
(CI/CD) JBOSS BPM
Container Orchestration & Cluster Management
JBOSS FUSE
(kubernetes) RED HAT MOBILE
Networking Storage Registry
Logs &
Metrics
Security 3 Scale
Infrastructure Automation & Cockpit

Enterprise Container Host


Container Runtime & Packaging
(Docker)
Atomic Host Red Hat Enterprise Linux
Community Powered Innovation
DO080 Deploying Containerized Applications Technical Overview (FREE!)
DO092 Developing Cloud-Native Applications with Microservices Architectures (FREE!)
DO180 Introduction to Containers, Kubernetes, and Red Hat OpenShift

DO280 Red Hat OpenShift Administration I


DO285 Containers, Kubernetes, and Red Hat OpenShift Administration I
DO380 Red Hat OpenShift Administration II: High Availability

DO290 Developing and Deploying Applications on OpenShift

Knowledge is the power. Training is the key!


Self-Service Standards-based

Multi-language Web-scale

Automation Open Source

Collaboration Enterprise Grade

Seamless Secure
TESTED AND VERIFIED MICROSERVICES FRAMEWORKS

LAUNCH

Spring Boot Netflix Hystrix Netflix Ribbon

SUPPORTED MICROSERVICES RUNTIMES

Reactive MicroProfile Server-side JS Java EE Java EE Web


Eclipse Vert.x WildFly Swarm Node.js JBoss EAP Embedded Tomcat

Modern, Cloud-Native Application Runtimes and


an Opinionated Developer Experience

42 OPENSHIFT TECHNICAL OVERVIEW


DEPLOYMENT OPTIONS?
BUILD AND DEPLOY CONTAINER IMAGES

DEPLOY YOUR DEPLOY YOUR DEPLOY YOUR


SOURCE CODE APP BINARY CONTAINER IMAGE

44 OPENSHIFT TECHNICAL OVERVIEW


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

BUILD APP Repository

(OpenShift)
Developer

Source-to-Image
BUILD IMAGE (S2I)

(OpenShift) Builder Image


Image Registry

DEPLOY Application
Container
deploy

(OpenShift)

User/Tool Does OpenShift Does

45 OPENSHIFT TECHNICAL OVERVIEW


DEPLOY APP BINARY WITH
SOURCE-TO-IMAGE (S2I)
Application build
Binary
BUILD APP (e.g. WAR)

(Build Infra) Existing Build


Process

Source-to-Image
BUILD IMAGE (S2I)

(OpenShift) Builder Image


Image Registry

DEPLOY Application
Container
deploy

(OpenShift)

User/Tool Does OpenShift Does

46 OPENSHIFT TECHNICAL OVERVIEW


DEPLOY DOCKER IMAGE
build
Application
BUILD IMAGE Image

(Build Infra) Existing Image


Build Process

Image
PUSH Registry
(Build Infra)

DEPLOY Application
Container
deploy

(Openshift)

User/Tool Does OpenShift Does

47 OPENSHIFT TECHNICAL OVERVIEW


PIPELINE AFTER EVERY COMMIT??
DEBUGGING??
LOCAL DEVELOPMENT WITH CONTAINERS

VCS (Git)
Nexus

Jenkins
(Library
Management)
Run
Deployment Pipeline
Build CDK
JBDS
Test Automatic Testing

Release management
Developer’s Local Env (laptop, desktop)
Failu
re fe
edb
ack

OPENSHIFT
Openshift summary
● Automates whole container lifecycle
● On Premise / In cloud / Both (aka. Hybrid)
● Containers orchestration (Kubernetes)
● Microservices O-o-the-box
● CI/CD automation, Dev Ops
● Scalability & HA O-o-the-box
DO080 Deploying Containerized Applications Technical Overview (FREE!)
DO092 Developing Cloud-Native Applications with Microservices Architectures (FREE!)
DO180 Introduction to Containers, Kubernetes, and Red Hat OpenShift

DO280 Red Hat OpenShift Administration I


DO285 Containers, Kubernetes, and Red Hat OpenShift Administration I
DO380 Red Hat OpenShift Administration II: High Availability

DO290 Developing and Deploying Applications on OpenShift

Knowledge is the power. Training is the key!


Self-Service Standards-based

Multi-language Web-scale

Automation Open Source

Collaboration Enterprise Grade

Seamless Secure
OpenShift
Customer References
Evolving Application Architecture at Volvo

785 apps across 560 app servers


OpenShift provides build, distribution &
runtime environment
Platform for DevOps and Microservices
Running OpenShift on Azure,
automatically provisioned with
Ansible
DEUTSCHE BANK - Technology Transformation
“Delivering Everything as a Service. From 20% adoption to 40% in 1yr;
planning to move 85% of all applications to OpenShift platform. We
won the hearts and minds of developers.” -- Pat Healy, CTO, Deutsche
Bank

● Macro trends are radically reshaping the banking industry


● Need to regain software expertise that was previously outsourced
● OpenShift replaced an internal, homegrown PaaS platform
● Over 300 internal projects moved to OpenShift
● 6x better efficiency of computing resources using containers and
OpenShift. Driving overall utilization up via multi-tenancy.
● Leverage OpenShift across multiple public clouds.

Ideas to Production, safely in a day.

View the Deutsche Bank keynote


BMW GROUP - Evolving the Connected Car
Digital customer experience, connected and automated driving
and digitalized business processes lead to a transformation of
the BMW Group towards software and services (Tech).

● Global manufacturer of luxury automobiles, motorcycles and


engines. “The Ultimate Driving Machine”.
● Evolving in-vehicle communications and telematics for 15yrs.
● OpenShift platform enables BMW ConnectedDrive service.
● Enables Electric Cars, Service Calls, Real-Time Traffic, Driving
Assistance, Anonymous Cars.
● Moving from Monolithic applications to Microservices,
Containers and Kubernetes

Read the press release and view Red Hat Summit presentation.

Potrebbero piacerti anche