Application Modernization - deloitte.com · Technical Evangelist di Amazon Web Services aiuta le...

Preview:

Citation preview

Application ModernizationCopyright © 2017 Deloitte Development LLC. All rights reserved. 1

Application ModernizationEvoluzione dei sistemi legacy in architetture a microservizi e serverless13 Novembre, 2017

Michele Paolin

Dal 2000 Michele lavora nel mondo Technology seguendoper conto di aziende multinazionali progetti di SystemIntegration ed adozione di nuove tecnologie. La suacarriera in Deloitte ha subito diverse trasformazioni,dall’ERP alle architetture Cloud, con la costante di unacontinua ricerca di soluzioni nuove ad esigenze dibusiness che cambiano

Application ModernizationCopyright © 2017 Deloitte Development LLC. All rights reserved. 3

Modernize.

Copyright © 2016 Deloitte. All rights reserved.

Modernizzare attraverso il refactoring

dei sistemi che governano il core business

mantenendo intatto il patrimonio

informativo aziendale

Un approccio incrementale riduce il rischio

e massimizza l’investimento,

concentrandosi sul miglioramento del

sistema piuttosto che provare a

reinventare quello che già funziona

Application Modernization

Copyright © 2016 Deloitte. All rights reserved.

Modernization Drivers

Interoperability

Agility

Regulatory Compliance

Efficiency

Risk

Brain DrainCosts

Reporting & Insights

Copyright © 2016 Deloitte. All rights reserved.

Refactored SystemLegacy SystemModernized System

USER EXPERIENCE

3270, Static Pages HTML5/CSS Mobile-first, Responsive Web (Angular, Bootstrap)

BUSINESS PROCESS MANAGEMENT

ManualEmbedded business processes

Business Rules Management SystemWorkflow Management System

ANALYTICS AND INFORMATION MANAGEMENT

Flat File DatabaseRelational DatabaseData Warehousing

Enterprise Data ManagementNoSQL DatabaseAnalytics, Data Monetization

SECURITY & PRIVACY

Security tightly coupled within applications

Externalized Security Authentication

Cyber SecurityIdentity Access ManagementCompliance w/ Regulation (GDPR)

SYSTEM ARCHITECTURE

Mainframe ApplicationsClient-Server

Modern Platform (Java/.NET)ContainersContinuous Delivery (DevOps)

Lift&Shift in the Cloud (IAAS, PAAS)Microservices and ServerlessIntegration with commercial SaaS solutions via API

Modernization Progression Matrix

Copyright © 2016 Deloitte. All rights reserved.

Modernization Roadmap by Deloitte

Container Virtualization, DevOps

Mainframe-based user experience, Monoliths

Microservices, Serveless

Monolith Monolith Monolith +1 Microservice

Monolith +1

Monolith + 1 Monolith + ‘n’ Monolith + n Microservices

Lift & Shift

Mainframe Offloading

Superpowers

8

KEY NOTE

Evolution of Business Logic: from Monoliths, to Microservices, to Functions

Danilo Poccia – Amazon Web Services

CASE HISTORY 1

Refactoring a Core Business Application using Microservices

Fabio Angelosanto – Deloitte

CASE HISTORY 2

Customer Engagement in Fashion Area using Serverless

Stefano Dindo – Cloud Alliance

Q&A

Danilo Poccia

Danilo lavora con startup e aziende di ogni dimensioneper supportarle nel processo di innovazione. In quantoTechnical Evangelist di Amazon Web Services aiuta lepersone a realizzare le proprie idee, focalizzandosi sullearchitetture serverless e sull’impatto tecnico e di businessdell’artificial intelligence e del machine learning

Evolution of Business Logic

Danilo Poccia

Technical Evangelist

danilop@amazon.com

@danilop

danilop

Evolution of Business Logic

Monolith Microservices Functions

Splitting

Monoliths

Ten Years Ago

Splitting

Monoliths

Ten Years Ago

XML & SOAP

Splitting

Monoliths

TenFiveYears Ago

REST JSON

Fast binary encodingsSplitting

Monoliths

Five Years Ago

Splitting

Monoliths

TenFive Years Ago

Microservices

Five Years Ago

Microservices

Five Years Agoto Functions

Amazon

Kinesis

Amazon API

Gateway

Amazon SNS

Amazon S3

Amazon

DynamoDB

Amazon

SQS

Standard building brick

services provide standardized

platform capabilities

Amazon SNS

Amazon S3

Amazon API

Gateway

Amazon

SQS

Amazon

Kinesis

Amazon

DynamoDBMicroservices

to Functions

Business Logic

Glue between the bricks

Standard building brick

services provide standardized

platform capabilities

Amazon SNS

Amazon S3

Amazon API

Gateway

Amazon

SQS

Amazon

Kinesis

Amazon

DynamoDBMicroservices

to Functions

Amazon SNS

Amazon S3

Amazon API

Gateway

Amazon

SQS

Amazon

Kinesis

Amazon

DynamoDBMicroservices

to Functions

Amazon SNS

Amazon S3

Amazon API

Gateway

Amazon

SQS

Amazon

Kinesis

Amazon

DynamoDBMicroservices

to FunctionsEphemeral

Microservices

to

Functions

Ephemeral

Microservices

to

Amazon API

Gateway

Amazon

SQS

Functions

Ephemeral

Microservices

to

Amazon API

Gateway

Amazon

Kinesis

Amazon

DynamoDB

Functions

Ephemeral

Microservices

to

Amazon API

Gateway

Amazon SNS

Amazon S3

Functions

Ephemeral

Amazon SNS

Amazon S3

Amazon API

Gateway

Amazon

SQS

Amazon

Kinesis

Amazon

DynamoDBMicroservices

to

Functions

EphemeralWhen the system is

idle, it shuts down and

costs nothing to run

Evolution of Business Logic

Monolith Microservices Functions

What Happens

to Databases?

A

C

I

D

tomic

onsistent

solated

urable

A

C

I

D

ssociative

ommutative

dempotent

istributed

ACID 2.0

“…a diagram of

two microservices

and their shared database”

Data should drive

the boundaries

“Update-in-place

strikes many systems designers

as a cardinal sin: it violates

traditional accounting practices

that have been observed

for hundreds of years.”

The Transaction Concept:

Virtues and Limitations

Jim Gray, 1981

The New De-Normal

Monolithic Databases

Kitchen Sink Analogy

De-normalized

Expensive,

Hard to Create

and Run

Monolith

Expensive,

Hard to Create

and Run

ic

DatabaseMonolith

Database Schema

Entity Relationship

Database Schema

Entity Relationship

Database Schema

Entity Relationship

Kitchen Sink

Analogy

Kitchen Sink

AnalogyCleanup

GLASSES

GLASSES

Kitchen Sink

Cleanup

GLASSES

Kitchen Sink

Cleanup

Kitchen Sink

Cleanup

GLASSES

Kitchen Sink

Cleanup

GLASSES

Kitchen Sink

Cleanup

GLASSES

Kitchen Sink

Cleanup

GLASSES

Consistency

ProblemHow Many Complete

Sets Are There?

Consistency

ProblemHow Many Complete

Sets Are There?

Consistency

ProblemHow Many Complete

Sets Are There?

GLASSES

Adding a New

Use Case

GLASSES

Adding a New

Use Case

SAKE SET

GLASSES

BOWLS

Cloud Makes

it Easy to Add

New Databases

Untangle and

Migrate Existing

“Kitchen Sink”

Schemas

Untangle and

Migrate Existing

“Kitchen Sink”

Schemas

The New De-Normal

Monolithic Databases

Kitchen Sink Analogy

De-normalized

What Happens

to the Data Flow?

Data Repositories

Source

of

Events

Events

Immutable

Information

about Business

Triggers

for Business

Logic

Events

Event-driven

Architectures

Name

Email

Create New User

Submit

Check the “Name” syntax is right

(only letters and spaces)

Check the “Email” syntax is right

(something@some.domain)

Create the new user using

provided Name and Email

User Interface Actions

Name

Email

Create New User

Submit

Check the “Name” syntax is right

(only letters and spaces)

Check the “Email” syntax is right

(something@some.domain)

Create the new user using

provided Name and Email

User Interface ActionsObservers

Target Action

Generate thumbnails

Keep another database in sync

Process streaming data

Services FunctionsPlatform

Target Action

Kinesis

Stream

DynamoDB

Table

S3

Bucket

A B

Event-Driven Design

For Services

”Service A triggers B"

or better

”Service B is caused by A"

A B

C

D

E

F

?

?

What is causing

services E and F?

A B

C

D

E

F

New services (E, F)

are triggered caused by C

A B

C

D

E

F

It can be cyclic

Think of

acknowledgements

Each service

has local visibility

A B

C

D

E

F

What I need to know

(input events)1

A B

C

D

E

F

What I need to do

(internal logic)2

A B

C

D

E

F

Who I need to notify

(output events)3

A B

C

D

E

F

Who I need to notify

(output events)

What I need to know

(input events)

What I need to do

(internal logic)

1

2

3

B

A B

C

D

E

F

Distributed Data Flow

Vs

Centralised Workflow

A B

C

D

E

F

Event-Driven Interactions

replacing Distributed Transactions

using Eventual Consistency

A B

C

D

E

F

Event-Driven Interactions

replacing Distributed Transactions

using Eventual Consistency

Differentiate reads (queries)

from writes (commands),

as in the Command Query

Responsibility Segregation

(CQRS) pattern

command query

Build Your Own Roadmap

De-normalizedFunctions Event-driven

Prototype

Production

“If you want to increase innovation,

you have to lower the cost of failure”

—Joi Ito, Director, MIT Media Lab

Evolution of Business Logic

Danilo Poccia

Technical Evangelist

danilop@amazon.com

@danilop

danilop

84

CASE HISTORY 1

Refactoring a core business application using Microservices

Fabio Angelosanto

Nel corso della sua carriera ha maturato una lungaesperienza su progetti di integrazione e implementazionedi sistemi IT, prevalentemente nel settore Finance eRetail. Appassionato di tecnologie Cloud si è specializzatosulla piattaforma AWS conseguendo la certificazionecome Solution Architect Associate e coordina il centro dicompetenza AWS in Deloitte Central Mediterranean

86

Business application transformation: key drivers

Speed and agility

IntegrationCost

ReductionInnovation

Case Description: Refactoring of a core business application for leadingcompany in Italian retail market

Instant Provisioning

Managed Services

Over 60 different services

Pay-per-Use / Auto Scaling

Lower maintenance

+3800 platformson Marketplace

Continuous Improvement

87

• Separation of Concerns

• Optimized HW Scaling

• DecoupledDeployment

From Monolith to Microservices

«..is a software architecture style in which complex application are composed of small, independentprocesses communicating with each other using language-agnostic APIs. These services are small, highly

decoupled and focus on doing a small task, facilitating a modular approach to system building.» Wikipedia

Microservices Architecture..

UI

Business

Logic

Data

Access

Layer

Monolithic Architecture

UI

Microservices Architecture

Refactoring

88

Proposed Architecture

RDS DB standby

VPC subnet 4VPC subnet 2

Availability Zone A Availability Zone B

virtual private cloud

Elastic Load Balancing

InternetAmazonRoute 53

edge location

Ec2 Instances

VPC subnet 1 VPC subnet 3

Desktop/Mobile

Browser

Dynamo

DB

Elasti

Cache

Amazon

Cognito

Ec2 Instances

RDS DB instance

Amazon API

Gateway

AmazonS3

• Containers deployment

• EC2 Cluster Auto-Scaling

• High Availability and Faults Tolerance

Amazon ECS

EC2 Container Service

Corporate data center

Amazon

SNS

VPN gateway

VPN connection

89

• Adopt an incremental and sustainable migration approach: infrastructure ready in few days, beta release available after few weeks, agile development approach to incrementally refine the application

• Set up an elastic architecture to reduce infrastructure costs and automatically scale with business growing

• Use AWS managed services to cut effort required to manage operations and focus on client’s business needs

• Keep a simple modular approach to improve software quality and simplify maintenance and deployment activities

• Take advantage of the wide range AWS capabilities to innovate, try different approaches and find the best solution for every challenge

Summary: AWS allowed us to..

CASE HISTORY 2

Customer Engagement in Fashion Business using Serverless

Stefano Dindo

Stefano è il CEO di Zero12 e membro della CloudAlliance. Appassionato di tecnologia e da tutto ciò che èdotato di un Software. Forte sostenitore del Web, e dellasua filosofia, come mezzo di innovazione.

Starting Point

100.000

downloads

1 Million

downloads

~ 500

active

users per

day

4.000 daily active

users

Projects Goals

2015 Goals

We would like to create a new Engagement Experience

Augmented reality

Games Mobile live fashion show

Face detections

Traditional Architectures

Fu

nctions

Layers

Serverless Architecturesvs

Why did we choose to go Serverless?

Atomicity

Fast development

Availability

Scalability

Flexibility

AWS Serverless Architectures

Customer Admin

End Users

Rekognition

DynamoDB

S3CloudFront

API Gateway Lambda

Web console

SNS

Mobile Analytics

~ 1.5 active

users

from 5.000 to

6.000 daily

active users

Results

The missing elements

AWS Serverless Architectures

Customer Admin

End Users

Rekognition DynamoDB

S3CloudFront

API Gateway Lambda

Web console

SNS

Mobile Analytics

Quicksight

Q&A

Application ModernizationCopyright © 2017 Deloitte Development LLC. All rights reserved. 102

Application Modernization

Fine del primo appuntamento, ma non finisce qui …

Materiale esclusivo per i partecipanti:

Una copia del libro di Danilo Poccia

Video summary dell’incontro odierno in anteprima

Invito prioritario per i successivi appuntamenti della serie Application Modernization su «Container e DevOps» e «Mainframe Offloading»