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

Automated Application Containerization

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Automated Application Containerization

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

Page 2: Automated Application Containerization

● Containerization: Why and What?

● Automating the approach

● Next steps

AGENDA

Image source: Marc Zottner

Page 3: Automated Application Containerization

WHAT IS CONTAINERIZATION?

Page 4: Automated Application Containerization

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

NEW POSSIBILITIES

SINGLE CONCERN HIGH OBSERVABILITY LIFECYCLE CONFORMANCE

IMAGE IMMUTABILITY PROCESS DISPOSABILITY SELF-CONTAINMENT

Page 6: Automated Application Containerization

NEW WAYS TO DELIVER

SELF SERVICE BLUE GREEN DEPLOYMENTS CANARY RELEASES

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

Page 7: Automated Application Containerization

ECONOMICSCh

ange

vel

ocity

Number of hurdles eliminated

Initial effort to see visible change

Inflection point

Accelerated value delivery

Page 8: Automated Application Containerization

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

Page 9: Automated Application Containerization

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

Page 10: Automated Application Containerization

FULL-AUTOMATED APPROACH

Page 11: Automated Application Containerization

CONTAINERIZATION JOURNEY

1.

Portfolio discovery and inventory

2.

Readinessassessment

3.

Automated Deployments

4.

Importapplications

5.

Transformapplications

6.

Validate, promote,decommission

Page 12: Automated Application Containerization

CONTAINERIZATION JOURNEY

1.

Portfolio discovery and inventory

2.

Readinessassessment

3.

Automated Deployments

4.

Importapplications

5.

Transformapplications

6.

Validate, promote,decommission

Page 13: Automated Application Containerization

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

Page 14: Automated Application Containerization

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 15: Automated Application Containerization

CONTAINERIZATION JOURNEY

1.

Portfolio discovery and inventory

2.

Readinessassessment

3.

Automated Deployments

4.

Importapplications

5.

Transformapplications

6.

Validate, promote,decommission

Page 16: Automated Application Containerization

● 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 17: Automated Application Containerization

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 18: Automated Application Containerization

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 19: Automated Application Containerization

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 20: Automated Application Containerization

2. READINESS ASSESSMENTTOOLING SUPPORT

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

Page 21: Automated Application Containerization

DEMO

Page 22: Automated Application Containerization
Page 23: Automated Application Containerization
Page 24: Automated Application Containerization

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 25: Automated Application Containerization

CONTAINERIZATION JOURNEY

1.

Portfolio discovery and inventory

2.

Readinessassessment

3.

Automated Deployments

4.

Importapplications

5.

Transformapplications

6.

Validate, promote,decommission

Page 26: Automated Application Containerization

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

Page 27: Automated Application Containerization

CONTAINERIZATION JOURNEY

1.

Portfolio discovery and inventory

2.

Readinessassessment

3.

Automated Deployments

4.

Importapplications

5.

Transformapplication code

6.

Validate, promote,decommission

Page 28: Automated Application Containerization

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/

Page 29: Automated Application Containerization

CONTAINERIZATION JOURNEY

1.

Portfolio discovery and inventory

2.

Readinessassessment

3.

Automated Deployments

4.

Importapplications

5.

Transformapplications

6.

Validate, promote,decommission

Page 30: Automated Application Containerization

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

Page 31: Automated Application Containerization

CONTAINERIZATION JOURNEY

1.

Portfolio discovery and inventory

2.

Readinessassessment

3.

Automated Deployments

4.

Importapplications

5.

Transformapplications

6.

Validate, promote,decommission

Page 32: Automated Application Containerization

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

Page 33: Automated Application Containerization

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 34: Automated Application Containerization

THE REAL CHALLENGE

... ...

Page 35: Automated Application Containerization

CONTAINERIZATION JOURNEY

1.

Portfolio discovery and inventory

2.

Readinessassessment

3.

Automated Deployments

4.

Importapplications

5.

Transformapplications

6.

Validate, promote,decommission

Page 36: Automated Application Containerization

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

Page 37: Automated Application Containerization

NEXT STEPS

Page 38: Automated Application Containerization

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

FURTHER READINGS

Page 39: Automated Application Containerization

... and lots more ….

HEAD TO DISCOVERY ZONE!

Page 40: Automated Application Containerization

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

Page 41: Automated Application Containerization

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

Page 42: Automated Application Containerization

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.