Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5....

39
Automated Application Containerization Journey to Openshift with RHAMT Dean Peterson Middleware Specialist Solution Architect 6/10/2019

Transcript of Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5....

Page 1: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

Automated Application ContainerizationJourney to Openshift with RHAMT

Dean PetersonMiddleware Specialist Solution Architect6/10/2019

Page 2: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

● Containerization: Why and What?

● Automating the approach

● Next steps

AGENDA

Image source: Marc Zottner

Page 3: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

WHAT IS CONTAINERIZATION?

Page 4: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

WHAT IS CONTAINERIZATION?

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

Physical host Virtual host Container

Page 5: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY
Page 6: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

NEW POSSIBILITIES

SINGLE CONCERN HIGH OBSERVABILITY LIFECYCLE CONFORMANCE

IMAGE IMMUTABILITY PROCESS DISPOSABILITY SELF-CONTAINMENT

Page 7: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

NEWER POSSIBILITIES

Page 8: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

Fast Monoliths

Existing, Java EE, Spring MVC

Java EE MSA

Monolith Decomposition, Enterprise Java

MSA

Fast Monoliths(Java EE, Spring)

TomcatSpring

Boot / MVC

WebTomcat,

Spring MVC, SpringBoot

GreenfieldReactive Java

Java EE - mono to micro. / greenfield

ReactiveReactive Java

/ Polyglot MSA

Reactive JS

Reactive client /

server-side JavaScript

Greenfieldpolymorphic

JavaScript

Server-lessFaaS

Existing Applications New Applications

Spring MSAJava MSA

GreenfieldJava / Spring

MSA

THE SPECTRUM OF ENTERPRISE APPS

Page 9: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

NEW WAYS TO DELIVER

SELF SERVICE BLUE GREEN DEPLOYMENTS CANARY RELEASES

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

Page 10: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

ECONOMICSCh

ange

vel

ocity

Number of hurdles eliminated

Initial effort to see visible change

Inflection point

Accelerated value delivery

Page 11: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

REPURCHASE (Drop & Shop)

Decommission end-of-life application.

Keep and don’t touch for now.RETAIN

RETIRE

Low

High

Transf

orm

ati

on

Eff

ort

s /

Com

ple

xit

yREHOST (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

Page 12: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

FULL-AUTOMATED APPROACH

Page 13: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

CONTAINERIZATION JOURNEY

1.

Portfolio discovery and inventory

2.

Readinessassessment

3.

Automated Deployments

4.

Importapplications

5.

Transformapplications

6.

Validate, promote,decommission

Page 14: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

CONTAINER ADOPTION JOURNEY

1.

Portfolio discovery and inventory

2.

Readinessassessment

3.

Automated Deployments

4.

Importapplications

5.

Transformapplications

6.

Validate, promote,decommission

Page 15: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

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

Page 16: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

CONTAINER ADOPTION JOURNEY

1.

Portfolio discovery and inventory

2.

Readinessassessment

3.

Automated Deployments

4.

Importapplications

5.

Transformapplications

6.

Validate, promote,decommission

Page 17: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

● 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

Page 18: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

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

Page 19: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

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

Page 20: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

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

Page 21: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

2. READINESS ASSESSMENTTOOLING SUPPORT

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

Page 22: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

DEMO

Page 23: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

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

Page 24: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

CONTAINER ADOPTION JOURNEY

1.

Portfolio discovery and inventory

2.

Readinessassessment

3.

Automated Deployments

4.

Importapplications

5.

Transformapplications

6.

Validate, promote,decommission

Page 25: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

3. AUTOMATED DEPLOYMENTS

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

Automated

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

Page 26: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

CONTAINER ADOPTION JOURNEY

1.

Portfolio discovery and inventory

2.

Readinessassessment

3.

Automated Deployments

4.

Importapplications

5.

Transformapplication code

6.

Validate, promote,decommission

Page 27: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

WHAT?

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

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

4. IMPORT APPLICATIONS Automated

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

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)

Page 28: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

CONTAINER ADOPTION JOURNEY

1.

Portfolio discovery and inventory

2.

Readinessassessment

3.

Automated Deployments

4.

Importapplications

5.

Transformapplications

6.

Validate, promote,decommission

Page 29: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

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 activities. As few changes as necessary.

Automated

Page 30: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

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

☒ ☑

Page 31: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

CONTAINER ADOPTION JOURNEY

1.

Portfolio discovery and inventory

2.

Readinessassessment

3.

Automated Deployments

4.

Importapplications

5.

Transformapplications

6.

Validate, promote,decommission

Page 32: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

What does a high performing organization look like?

Page 33: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

CONTAINER ADOPTION JOURNEY

1.

Portfolio discovery and inventory

2.

Readinessassessment

3.

Automated Deployments

4.

Importapplications

5.

Transformapplications

6.

Validate, promote,decommission

Page 34: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

DESIGN

Solve & documenttypical issues

Pilotapplications

DISCOVER SCALE

FACTORY with ITERATIONS

CONTAINER ADOPTION JOURNEY AT SCALE!

Portfolio discovery and inventory

Readinessassessment

Automateddeployments

Importapplications

Transformapplications

Validate, promote,decommission

Plan rollout

Page 35: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

NEXT STEPS

Page 36: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

DDD EVENT STORMING

Page 37: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

Application Modernization & Migration

JUMPSTART YOUR MODERNIZATION WITHRED HAT OPEN INNOVATIONS LABS

INNOVATIONACCELERATED

DEVELOP CONTEMPORARY APPS• Develop on PaaS environment• Transform how you design and develop apps• Adopt lean and agile principles• Master DevOps practices

MODERNIZE TRADITIONAL APPS• Extend applications• Optimize applications• Scale applications• Expose to orchestration

COLLABORATIONSpace to work,

innovate, and discuss

RESIDENCYAn eight-week accelerated

teaming engagement

COMMUNITY INCUBATIONCommunities

supporting innovation

Page 38: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

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

FURTHER READINGS

Page 39: Automated Application Containerization - Red Hat...Automated Deployments 4. Import applications 5. Transform applications 6. Validate, promote, decommission 1. PORTFOLIO DISCOVERY

THANK YOU

plus.google.com/+RedHat

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHatNews