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
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
Create New User
Submit
Check the “Name” syntax is right
(only letters and spaces)
Check the “Email” syntax is right
Create the new user using
provided Name and Email
User Interface Actions
Name
Create New User
Submit
Check the “Name” syntax is right
(only letters and spaces)
Check the “Email” syntax is right
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
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»
Recommended