automated application containerization - red hat...automated application containerization journey to...

42
Automated Application Containerization Journey to OpenShift with RHAMT Zohaib Khan Marc Zottner App Modernization Lead AMM Program Manager Red Hat - NAPS Red Hat - EMEA [email protected] [email protected] @zeebluejay 2018/05/08

Upload: others

Post on 25-May-2020

16 views

Category:

Documents


0 download

TRANSCRIPT

Automated Application ContainerizationJourney to OpenShift with RHAMT

Zohaib Khan Marc ZottnerApp Modernization Lead AMM Program ManagerRed Hat - NAPS Red Hat - [email protected] [email protected]@zeebluejay

2018/05/08

● Containerization: Why and What?

● Automating the approach

● Next steps

AGENDA

Image source: Marc Zottner

WHAT IS CONTAINERIZATION?

WHAT IS CONTAINERIZATION?

Packaging of a configured application and all its dependenciesinto a light, portable, cloud-ready sandbox.

Physical host Virtual host Container

NEW POSSIBILITIES

SINGLE CONCERN HIGH OBSERVABILITY LIFECYCLE CONFORMANCE

IMAGE IMMUTABILITY PROCESS DISPOSABILITY SELF-CONTAINMENT

NEW WAYS TO DELIVER

SELF SERVICE BLUE GREEN DEPLOYMENTS CANARY RELEASES

A/B TESTING END-TO-END AUTOMATION ROLLING UPGRADES

ECONOMICSCh

ange

vel

ocity

Number of hurdles eliminated

Initial effort to see visible change

Inflection point

Accelerated value delivery

1) Not every application fits into a container!

2) Containers are not only for elite-apps.

3) Conducted transformationsmust be driven by business value.

BEST KEPT SECRETS

D f .

Image source: Marc Zottner

REPURCHASE (Drop & Shop)

Decommission end-of-life application.

Keep and don’t touch for now.RETAIN

RETIRE

Low

High

Tran

sfor

mat

ion

Effo

rts

/ Com

plex

ity

REHOST (Lift & Shift)

REFACTOR (Extend / Rewrite)

REPLATFORM (Lift & Reshape)

OPTIONS FOR CONTAINERIZATION

Change the underlying platform (runtime, framework, middleware, operating system).

Redesign code to take advantage of thenew platform (extend, strangle, rewrite).

Package existing application in a containerwith as few changes as possible.

Replace by Commercial off-the-shelf(COTS) or Software-as-as-Service (SaaS).

ExistingApplication

FULL-AUTOMATED APPROACH

CONTAINERIZATION JOURNEY

1.

Portfolio discovery and inventory

2.

Readinessassessment

3.

Automated Deployments

4.

Importapplications

5.

Transformapplications

6.

Validate, promote,decommission

CONTAINERIZATION JOURNEY

1.

Portfolio discovery and inventory

2.

Readinessassessment

3.

Automated Deployments

4.

Importapplications

5.

Transformapplications

6.

Validate, promote,decommission

1. PORTFOLIO DISCOVERY & INVENTORY

HOW?

Use your favourite spreadsheet editor!

Automated

Manual

WHAT?

Identify and list existing assets (applications, infrastructure) in a central inventory.

Use some tools to automate the discovery process:● Agent(less) / Port & packet scan / SaaS or on-premise● Self written (e.g. with Ansible) vs. commercial offerings (e.g. CloudScape)● Use existing tools (CMDB, SOE, infrastructure as a code, CI/CD, app repository)

Image source: https://flic.kr/p/b1Sjh2

1. PORTFOLIO DISCOVERY & INVENTORY

Create an exhaustive list (spreadsheet) of all applications (plan, governance, estimates)

Relevant for prioritizationPlanning and scopeInternal application classification……..

Owners could be further split between ... technical lead / business owner / test owner / external providerCustom group for similar applicationsEXAMPLE

CONTAINERIZATION JOURNEY

1.

Portfolio discovery and inventory

2.

Readinessassessment

3.

Automated Deployments

4.

Importapplications

5.

Transformapplications

6.

Validate, promote,decommission

● Questionnaire-based frameworks● Automated code analysis tool

(e.g. RHAMT for Java applications)

2. READINESS ASSESSMENT

HOW?

Conduct interviews, workshops, code & document reviews (all levels).

Automated

Manual

WHAT?

1. Group similar applications based on their business & technical characteristics

2. Assess container-readiness

3. Identify the right transformationbased on business value

4. Estimate efforts

2. READINESS ASSESSMENTGROUPING APPLICATIONS

Store Sustain ExecuteConnectView

Embedded frameworks

RESTJerseyUnirest

MVCSpring-MVC

StrutsWicketGWT

MarkupHTMLCSSJS

Cachingehcache

infinispan

Object MappingHibernate

Hibernate OGMEclipse Link

Logging log4j

SecurityESAPI

TestJUnit / ...

Inversion of Control Spring / AspectJ

Rules & Processes Drools / JBPM / iLog

IntegrationCamel / Teiid

3rd partyLiferay / Oracle Forms / ...

Web ServiceAxisCXF

XFire

Java EE technologies

Messaging _JMS queue _

JMS topic _JMS con. factory _

HTTPJAX-RSJAX-WS

Bean____Stateless (SLSB) _Stateful (SFSB) _Message (MDB) _Managed Bean _

OtherJCAJNIMailRMI

Persistence _Persistence units _

JPA entities _JPA named queries _

Database _JDBC datasource _

JDBC XA datasource _

RichappletJNLP

Web JSFJSP

Servletweb.xml

WebSocketSecurity

Security realm

ClusteringJPA / Web session / EJB

TransactionsJTA

ProcessingBatch

CDIJSON-P

Processes○ Monitoring, alerting, log & configuration management

Dependencies○ OS & hardware○ Licensing and vendor support (3rd party components)

CONTAINER-READINESS FACTORS

Software architecture○ Monolith vs. Modular○ Coupling (loose vs. tight)○ State management○ Communication protocols○ CPU, IO, storage, connectivity needs○ Compliance, security, availability, resiliency requirements

SCOPING A TRANSFORMATION

● Business criticality, usage, user base● Application lifecycle (age)● Expected business value & efforts

Image source: https://flic.kr/p/bdizD8

2. READINESS ASSESSMENT

2. READINESS ASSESSMENTTOOLING SUPPORT

TOOLING SUPPORT

Red Hat Application Migration Toolkit

Catalyze large scale application modernizations and migrations● Automate code analysis● Support effort estimation● Accelerate code migration● Free & Open Source

IBM WebSphere AS

Oracle WebLogic Server

JBoss EAP upgrades

Cloud readiness,containerization

Pluggable: your own rules

Java EEupgrades

Eclipse plugin

Command line interface

Web console

2. READINESS ASSESSMENTTOOLING SUPPORT

Download the Toolkit on https://developers.redhat.com/products/rhamt/overview/

DEMO

2. READINESS ASSESSMENTRESULTS & PRIORITIZATION

Cont

aine

rRe

adin

ess

Business value

Done!

In progress

Not started

Out-of-scope!

Level-of-EffortsApp F

App AApp B

App E

App C

App D

Containerization status

Cont

aine

r-re

ady

Cont

aine

r-al

ien

Low High

CONTAINERIZATION JOURNEY

1.

Portfolio discovery and inventory

2.

Readinessassessment

3.

Automated Deployments

4.

Importapplications

5.

Transformapplications

6.

Validate, promote,decommission

3. AUTOMATED DEPLOYMENTS

WHAT?● Design the new platform (MVP, requirements)● Document architecture decisions.● Build the full-ecosystem

HOW?

Adapt push-button infrastructure (reference architecture)● All needed stack to start building solutions on day one● Robust IaaS, PaaS, DevOps toolchain & AppDev services● Fully-automated deployment

https://www.redhat.com/en/explore/my-open-innovation-lab-stack

Automated

CONTAINERIZATION JOURNEY

1.

Portfolio discovery and inventory

2.

Readinessassessment

3.

Automated Deployments

4.

Importapplications

5.

Transformapplication code

6.

Validate, promote,decommission

WHAT?

Bridge existing and new platforms● Import assets of the existing application lifecycle

(source code, configuration, repositories, processes)● Reduce manual migration gaps

HOW?

● Automate import of all applications (no code change)○ Provide a “deploy-to-new-platform” button to devs○ Pre-generate templates and configuration

● Enable users (templates, guides)

4. IMPORT APPLICATIONS Automated

Image source: https://www.flickr.com/photos/sg09/8401320130/

CONTAINERIZATION JOURNEY

1.

Portfolio discovery and inventory

2.

Readinessassessment

3.

Automated Deployments

4.

Importapplications

5.

Transformapplications

6.

Validate, promote,decommission

WHAT?

Update code & configuration to containerize an application according the chosen transformation.

5. TRANSFORM APPLICATIONS Manual

1.Image choice,

initial configuration

3.Get application

running in acontainer

5.Test & Promote

2.Pre-emptive

code changes(e.g. RHAMT)

4.Optional changes

(refactor, strangle)

HOW?

Step-by-step approach with well-defined scope & activities. As few changes as necessary.

Automated

CONTAINERIZATION JOURNEY

1.

Portfolio discovery and inventory

2.

Readinessassessment

3.

Automated Deployments

4.

Importapplications

5.

Transformapplications

6.

Validate, promote,decommission

WHAT?

● Development Workflow from git push to deployment● Approvals, Checks, Sign-offs, Audit trails etc.● Predictable, measurable and repeatable methods

HOW?

● Automated testing● CI/CD pipeline (S2I)● Automated Software Supply Chain● A platform that gives you most of it OOTB

6. VALIDATE, PROMOTE, DECOMMISSION Automated

INTEGRATEDIMAGE

REGISTRY

OPENSHIFTCLUSTER

OPENSHIFT CI/CD PIPELINE (JENKINS)

INTEGRATEDIMAGEREGISTRY

OPENSHIFTCLUSTER

NON-PROD

DEPLOYMENT PIPELINES

PROMOTETO TEST

ARTIFACT REPOSITORYDEVELOPER GIT SERVER

IMAGE BUILD & DEPLOY

DEV TEST

PROMOTETO UAT

UAT

GOLIVE?

PROMOTETO PROD

RELEASE MANAGER

PROD

☒ ☑

THE REAL CHALLENGE

... ...

CONTAINERIZATION JOURNEY

1.

Portfolio discovery and inventory

2.

Readinessassessment

3.

Automated Deployments

4.

Importapplications

5.

Transformapplications

6.

Validate, promote,decommission

DESIGN

Solve & documenttypical issues

Pilotapplications

DISCOVER SCALE

FACTORY with ITERATIONS

CONTAINERIZATION JOURNEY AT SCALE!

Portfolio discovery and inventory

Readinessassessment

Automateddeployments

Importapplications

Transformapplications

Validate, promote,decommission

Plan rollout

NEXT STEPS

https://developers.redhat.com/resources/#!type=book

FURTHER READINGS

... and lots more ….

HEAD TO DISCOVERY ZONE!

THANK YOUplus.google.com/+RedHat

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHat

Zohaib Khan Marc ZottnerApp Modernization Lead AMM Program ManagerRed Hat - NAPS Red Hat - [email protected] [email protected]@zeebluejay

CONTAINERIZATION IN PRACTICE

Assessment

Applicationdevelopment

Infrastructureoperations

Plan

Containerizepilot applicationsProof of concepts

Parallel Dev/Ops workstreamsDevs don’t need to wait for

the final infrastructure (OCP CDK)

Automate import(apps & conf)

Design & build new infrastructure

Secure & accelerate populationof the new platform

WHY IS OPENSHIFT THE BEST PLATFORM?THE FOUR Cs

COMPREHENSIVECLOUDCUSTOMERSCODE

Strong partnerships with cloud providers, ISVs,

CCSPs.

We have an extensive container catalog of

certified partner images.

Our comprehensive portfolio of container products and

services includes developer tools, security, application

services, storage, & management.

Red Hat is a leading Kubernetes developer & contributor with Google1.

We make container development easy,

reliable, & more secure.

Most reference customers running in production.

We have years of experience running OpenShift Online &

OpenShift Dedicated services.

Kubernetes commits

Source: [1] Stackalytics, Contribution by Companies. (Release: All, Project type: Kubernetes, Module: kubernetes, Metric: Commits) Retrieved: March 2, 2018.