back to the future: containerize legacy applications

38
Back to the Future: Modernizing Legacy Apps Brandon Royal Solution Architect | Docker, Inc.

Upload: docker-inc

Post on 28-Jan-2018

337 views

Category:

Technology


2 download

TRANSCRIPT

Back to the Future: Modernizing Legacy Apps

Brandon RoyalSolution Architect | Docker, Inc.

App A

● manual/inconsistent deployment process

● 1 deployment / month

● 1-3 weeks to scale

● business critical

App B

● automated and cryptographically signed deployment process

● 3 deployments / week

● minutes to scale

● business critical

Modernized Traditional

App

Traditional App

Same App

.NET App

.NET App

Deployed to Docker EEin Azure in 3 Days

PoC to Prod● Traditional SAP App

● Modernized with Docker EE

● Running at high scale in production

Challenges for Enterprise Apps● Need to look at incremental innovation across entire app

portfolio

○ Hundreds of apps

○ Years of development per app

● Sunset and rewrite is possible with a small subset of apps

● Balance driving innovation while controlling cost

Modernize Traditional Apps (MTA) with Docker● Containerize with Docker EE● Leverage modern properties from your

traditional applications without rewriting them● Use container based supply chain to innovate

apps incrementally● Accelerate container adoption across app

portfolio

Modernizing Apps

app investment over time

value

Other Platforms

Docker

Innovate atyour Pace

MTA Journey

PoC First apps in Prod

Production at Scale

Getting Started with MTA● 30 days total● 3-5 days onsite● 1-3 apps

App

Assess Containerize Deploy Measure

● Infrastructure● App

● Containerize● Configure● Compose

● Docker EE ● Functional● Performance● Operational

Architecture

Runtime

Dependencies

Implementation

Assess Containerize Deploy Measure

4 Categories

Architecture

Runtime

Dependencies

Implementation

● Narrow down to 1-3 target applications● Containerize-able in 2-3 days of work● Representative of other enterprise app● Aligned with existing initiatives● Technical resources available by app

Assess Containerize Deploy Measure

General Guidance

Limits of LegacyContainerization

Architecture

Runtime

Dependencies

Implementation

● .NET Fx or Java EE● 2-3 tiers architecture● 1-5 runtime components● Manageable / known

dependencies

Assess Containerize Deploy Measure

Architecture

Runtime

Dependencies

Implementation

● IIS 6-8, Tomcat, WebLogic, WebSphere, JBoss

● .NET Framework 2.0 or later

Assess Containerize Deploy Measure

Architecture

Runtime

Dependencies

Implementation

● Availability of application artifacts + expertise

● Databases out of scope for containerization

● Consider database and user authentication

Assess Containerize Deploy Measure

Architecture

Runtime

Dependencies

Implementation

● No hardcoded IPs or hostnames

● Application startup time time < ~5mins

● Deployment artifacts support unattended installation

Assess Containerize Deploy Measure

MTA PoC ToolkitApp Assessment Guides

Available through select MTA accredited Docker partners

Infrastructure

StandardIncludes

Additional Tools

Windows+

Linux

Assess Containerize Deploy Measure

InfrastructureAssess Containerize Deploy Measure

Containerize

App Artifacts

FROM tomcat:7.0.82-jre8

Select Base Image

COPY myapp.war /opt/tomcat/webappsCOPY bootstrap.sh /bootstrap.sh

Copy App Artifacts

RUN [“sh”,“config_app_server.sh”]ENTRYPOINT [“sh”,“bootstrap.sh”]

Configure App Server

Dockerfile

Assess Containerize Deploy Measure

Containerization Tooling

VM

App Server

AppApp

Conversion Dockerfile

Assess Containerize Deploy Measure

FROM microsoft/aspnet:windowsservercore-10.0.14393.1066SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]

# disable DNS cache so container addresses always fetched from DockerRUN Set-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters' -Name ServerPriorityTimeLimit -Value 0 -Type DWord

RUN Remove-Website 'Default Web Site';

RUN Enable-WindowsOptionalFeature -Online -FeatureName IIS-ApplicationDevelopment,IIS-ASPNET45,IIS-BasicAuthentication,IIS-CommonHttpFeatures,IIS-DefaultDocument,IIS-DirectoryBrowsing,IIS-HealthAndDiagnostics,IIS-HttpCompressionStatic,IIS-HttpErrors,IIS-HttpLogging,IIS-ISAPIExtensions,IIS-ISAPIFilter,IIS-NetFxExtensibility45,IIS-Performance,IIS-RequestFiltering,IIS-Security,IIS-StaticContent,IIS-WebServer,IIS-WebServerRole,NetFx4Extended-ASPNET45

Image2Docker - ASP.NET

Accelerating MTA DeploymentsVersion Control

Build images Integration

Docker Trusted Registry

Docker Universal Control Plane

Build Service

1. Commit app (compiled assets), Dockerfiles and compose files to Source Control

2. Build Service builds Docker Images

3. Build Service pushes image to Docker Trusted Registry (DTR)

4. Build Service deploys/updates Docker Stack on Universal Control Plane (UCP) cluster

Assess Containerize Deploy Measure

MTA CI/CDPre-wired and self-contained

● Docker Trusted Registry● Docker Universal Control

Plane● Gogs [git]● Jenkins

MTA Results

Modernize Traditional Applications at

Fox MediaCloudPart of Fox Entertainment Group

GhostedPremiering Sunday, October 1

1 Billion + Subscribers

500 + Channels

170 + Countries

That Level Of Demand MeansConstant Innovation

● Speed to market● Elasticity and reliability● Improving CI/CD

Cloud is critical to success moving forward.

Challenges to overcome● A majority of budget goes towards

maintaining the status quo.● Limited resources to port everything

quickly● Architecture constraints

The quickest way to cut into that budget

App

Accomplishments in 3 Days• Portability across multiple

infrastructures• Reduce/Eliminate deployment

downtime• Improve application density• Embrace DevOps/CICD• Baked in DR strategy

By Docker, Avanade, Microsoft “MTA was the quickest way to cut into

that budget and accelerate our path to the cloud”

Modernize Traditional Applications POC Program

The Broadcast Affiliate Portal App allows Fox affiliate TV stations around the country to pick the promotional content they would like to air.

App Details

FMC Portal Load Balancer

HTT

P

HTT

P

FMC Portal FMC Portal

FMC Portal

DB

Okta & other

services

Redis

● ASP.NET 3.5+ applications / MSSQL 2012● 25% Max CPU Utilization on these

servers● 2 vm’s running 5-6 IIS Apps● Windows Server 2012

Challenges● Deploying and maintaining this application

involves lots of manual process● DR isn’t part of the overall structure, app just

gets rebuilt and redeployed. Downtime required.

Broadcast Affiliate Portal

FMC Portal Load Balancer

Worker_010.X.X.2

Worker_110.X.X.3

Worker_210.X.X.4

FMC PortalDB

Web

Redis

Okta & other

services

Load Balancer

Manager_010.X.X.5 UCP

DTR

Overlay Network

HTT

P

HTT

P

HTT

P

HTT

P

HTT

P

HTT

P

App went from running on prem on Windows Server 2012,

To fully containerized application running in Azure

on Windows Server 2016

Microsoft Azure Microsoft Azure

RedisWe

bRedis

Web

Redis

Broadcast Affiliate Portal Using Docker EE

MTA Results

FMCPortal

Before After• 3 weeks to get code

into production• No app redundancy

or DR

• Security fixes are resolved same day but require downtime

• Time to Scale is 1+ weeks

Completed in 3 Days

• Deploy in minutes• Built in redundancy

easily into design/architecture

• Groundwork for CI/CD built into the platform

• No downtime for security fixes

• Time to Scale now takes minutes

Want to learn more?● Stop by the booth (MTA pod) ● Download the kit www.docker.com/mta● Look for a MTA Roadshow near you● Contact your Account Team

Docker EEHosted Demo

● Free 4 Hour Demo● No Servers Required● Full Docker EE

Cluster Access

docker.com/trial

Thank you!@brandon_royal#dockercon