SlideShare a Scribd company logo
1 of 64
Download to read offline
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS re:INVENT
CISCO’S JOURNEY FROM MONOLITH TO MICROSERVICES
ADVANCED ARCHITECTURAL PATTERNS
Ronnen Slasky, AWS Solutions Architect
Avi Fruchter, Cisco CTO IVP
November 28, 2017
EDCS-11803578
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AGENDA
Microservices Persistency Patterns
Cisco’s Migration to Microservices
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Technology Organization Processes
Modern Software Development
Microservices Service Teams Continuous Delivery
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
In 2014:
• Thousands of service teams
• Building microservices
• Practicing continuous delivery
50 Million Deployments
Microservices at Amazon
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Centralized Data Management
DB
cart accountuser
Monolithic Service
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Principle: Each Microservice has its own Database
• Choose the right technology for each service
• Operational ownership
Decentralized Data Management
user-svc
Redis Amazon RDS
cart-svc search-svc
Elasticsearch
Amazon
DynamoDB
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Microservices Persistency Patterns
Shared Static Data
Shared Mutable Data
Transactions
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Scenario #1: Shared Static Data
Challenge: Sharing Static Data Across Multiple Services
cart-svc account-svcuser-svc
Zip Codes
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Pattern A: Duplicate Table
Scenario #1: Shared Static Data
user-svc cart-svc account-
svc
ZipCodes ZipCodes ZipCodes
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Pattern A: Duplicate Table Pattern B: Property File
Scenario #1: Shared Static Data
use-svc
ZipCodes ZipCodes ZipCodes
user-svc cart-svc account-
svc
user-svc cart-svc account-
svc
ZipCodes ZipCodes ZipCodes
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Pattern C: New ServicePattern A: Duplicate Table Pattern B: Property File
Scenario #1: Shared Static Data
use-svc
ZipCodes ZipCodes ZipCodes
user-svc cart-svc account-
svc
user-svc cart-svc account-
svc
ZipCodes ZipCodes ZipCodes
ZipCode-svc
ZipCodes
account-
svc
cart-svcuser-svc
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Scenario #2: Shared Mutable Data
Challenge
Monolithic database makes it easy to access shared data.
This is not so simple in a Microservice Architecture
cart-svcuser-svc shipping-svc
Users Shipping
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Pattern A: Synchronous Lookup
Scenario #2: Shared Mutable Data
shipping-svc user-svc
RDS
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Pattern B: Lookup, Cache + Asynchronous
Event
Pattern A: Synchronous Lookup
Scenario #2: Shared Mutable Data
shipping-svc user-svc
RDS
shipping-svc user-svc
RDSCache
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Scenario #3: Transactions
Challenge
Monolithic database enable transactions across multiple entities
Splitting data to their own datastores makes this more complex
Monolithic Service
Single
Transaction Boundary
Account-svc Order-svc
RDS
Monolithic Database
Account Table Order Table
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Scenario #3: Transactions
Pattern A: Queue and Retry
• Eventually consistent
• Simple and robust implementation
• Gracefully handles failure
Separate Transaction Boundary
Microservice
Order-svc
Order Table
Microservice
Account-svc
Account Table
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Scenario #3: Transactions
Transaction
Manager
User-svc
Cart-svc
Account-svc
Pattern B: Two Phased Commit
• Atomic Commit Protocol = Guarantees Consistency
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Scenario #3: Transactions
Propose User
Propose Cart
Propose Account
User-svc
Cart-svc
Account-svc
Transaction
Manager
Pattern B: Two Phased Commit
• Atomic Commit Protocol = Guarantees Consistency
• Two distinct phases:
• Voting phase
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Scenario #3: Transactions
User-svc
Cart-svc
Account-svc
Transaction
Manager
Propose User
Propose Cart
Propose Account
Commit/Abort
Commit/Abort
Commit/Abort
Pattern B: Two Phased Commit
• Atomic Commit Protocol = Guarantees Consistency
• Two distinct phases:
• Voting phase
• Commit phase
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Scenario #3: Transactions
User-svc
Cart-svc
Account-svc
Transaction
Manager
Propose User
Propose Cart
Propose Account
Commit/Abort
Commit/Abort
Commit/Abort
Pattern B: Two Phased Commit
• Atomic Commit Protocol = Guarantees Consistency
• Two distinct phases:
• Voting phase
• Commit phase
• Locks resources between phases
• Fit for short lived transactions
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Scenario #3: Transactions
Pattern C: Saga Pattern
A Saga is a long lived transaction that can be written as a sequence of
transactions that can be interleaved with other transactions. The database
management system guarantees that either all the transactions of a saga
are successfully completed or compensated transactions are run
to amend a partial execution.Hector Garcia-Molina and Keneth Salem
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Scenario #3: Transactions
A Saga is a long lived transaction that can be written as a sequence of
transactions that can be interleaved with other transactions. The database
management system guarantees that either all the transactions of a saga
are successfully completed or compensated transactions are run
to amend a partial execution.Hector Garcia-Molina and Keneth Salem
T1, T2, T3….Tn
Pattern C: Saga Pattern
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Scenario #3: Transactions
A Saga is a long lived transaction that can be written as a sequence of
transactions that can be interleaved with other transactions. The database
management system guarantees that either all the transactions of a saga
are successfully completed or compensated transactions are run
to amend a partial execution.Hector Garcia-Molina and Keneth Salem
Cn… C3, C2, C1
Pattern C: Saga Pattern
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Scenario #3: Transactions
A Saga is a long lived transaction that can be written as a sequence of
transactions that can be interleaved with other transactions. The database
management system guarantees that either all the transactions of a saga
are successfully completed or compensated transactions are run
to amend a partial execution.Hector Garcia-Molina and Keneth Salem
Cn Semantically Undoes Tn
Pattern C: Saga Pattern
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Scenario #3: Transactions
A Saga is a long lived transaction that can be written as a sequence of
transactions that can be interleaved with other transactions. The database
management system guarantees that either all the transactions of a saga
are successfully completed or compensated transactions are run
to amend a partial execution.Hector Garcia-Molina and Keneth Salem
Either T1, T2, T3….Tn or
T1, T2, ….Tn, Cn….C2, C1
Pattern C: Saga Pattern Guarantee
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Takeaways
Breaking your Monolith can help move faster
Select the right microservices persistency design pattern
Learn from others
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Cisco’s Migration to Microservices
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Rebirth in the cloud
WaterfallBare Metal Monoliths
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Our Journey
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Thousands
of instances
>100 microservices
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
The four pillars
Automation PipelineCloud ServicesMicroservices
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Automation
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Automation
Click to Deploy
$./deploy.sh FULL 01.17.40.17 nc_pipeline
Click to Upgrade
$./deploy.sh UPGRADE 01.17.40.17 nc_pipeline
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Benefits
Development Velocity
New Customer Onboarding
Short Feedback Cycles to Production Environment
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Microservices
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Two types of monoliths
Functional Platforms
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Platform monoliths
Scale
Log
Database
Deploy
APP
Monitor
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
“Un-peel-able”
Application
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Success!
99.7% Code reduction
1,250,000
4,000
Lines of Code
860 ms
130 ms
Latency
5 XL
Machines
5 Small
BOM
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
VOD
Linear
Entitlements
Search
TV
VOD
Functional monolith
Functional monolith
Development velocity Operational costs Scale
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Success!
97.5% Code reduction
2,000,000
50,000
Lines of Code
70 ms
42 ms
Latency
150 Core
550 RAM
50 Core
85 RAM
BOM
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Domain-driven design
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
VOD navigation
{
“Title”:…
“Synopsis”:…
“Episode/season”:…
“SellPrice”:…
“Classification”:…
“Credits”:…
“Thumnail”:…
“playableURI”:…
“offers”:…
}
{
“Title”:…
“Synopsis”:…
“Episode/season”:…
“SellPrice”:…
“Classification”:…
“Credits”:…
“Thumnail”:…
“playableURI”:…
}
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Search
{
“Title”:…
“Synopsis”:…
“Episode/season”:…
“SellPrice”:…
“Classification”:…
“Credits”:…
“Thumnail”:…
“playableURI”:…
“offers”:…
}
{
“Title”:…
“Synopsis”:…
“Episode/season”:…
}
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Sharing technology
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Replacement in flight
Fork Ingest Recache Sync
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Cloud platform services
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Cloud platform services
Deployment
Load Balancing
Messaging
Service Registry
Monitoring
Smart Routing
Object Storage
Alerts
Logging
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Smart routing
GW
GW
µs1
µs1
µs1.1
µs2
µs2
µs2
µs4
µs4
µs4.1
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Smart routing
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Pipeline
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Pipeline runs 24/7
>4,300 runs past year/~12 releases per day
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Continuous delivery flow
CONTINUOUS UPGRADE PIPELINE
DAILY UPGRADE + CLEAN DEPLOY
Sunday
Service 1
Rel.3
Service 2
Rel.3
Service 4
Rel.3
Service 1
Rel.2
Service 2
Rel.2
Service 3
Rel.2
Service 1
Rel.3
Service 2
Rel.3
Service 4
Rel.3
Monday
Service 2
Rel.2
Service 3
Rel.2
… Service 3
Rel.3
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
What’s next?
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Independent pipelines
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Leverage native cloud services
Applications
Platform
Development
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Prod A
AWS
CodeDeploy
AWS
CodeBuild
Prod B
Prod C
Dev
AWS
CodeDeploy
AWS
CodePipeline
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
+( + )=
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

More Related Content

What's hot

CTD201_Introduction to Amazon CloudFront and AWS Lambda@Edge
CTD201_Introduction to Amazon CloudFront and AWS Lambda@EdgeCTD201_Introduction to Amazon CloudFront and AWS Lambda@Edge
CTD201_Introduction to Amazon CloudFront and AWS Lambda@EdgeAmazon Web Services
 
DEV207_Deploying and Managing Ruby Applications on AWS
DEV207_Deploying and Managing Ruby Applications on AWSDEV207_Deploying and Managing Ruby Applications on AWS
DEV207_Deploying and Managing Ruby Applications on AWSAmazon Web Services
 
ARC331_How I Made My Motorbike Talk
ARC331_How I Made My Motorbike TalkARC331_How I Made My Motorbike Talk
ARC331_How I Made My Motorbike TalkAmazon Web Services
 
ENT212-An Overview of Best Practices for Large-Scale Migrations
ENT212-An Overview of Best Practices for Large-Scale MigrationsENT212-An Overview of Best Practices for Large-Scale Migrations
ENT212-An Overview of Best Practices for Large-Scale MigrationsAmazon Web Services
 
MBL209_Learn How MicroStrategy on AWS is Helping Vivint Solar Deliver Clean E...
MBL209_Learn How MicroStrategy on AWS is Helping Vivint Solar Deliver Clean E...MBL209_Learn How MicroStrategy on AWS is Helping Vivint Solar Deliver Clean E...
MBL209_Learn How MicroStrategy on AWS is Helping Vivint Solar Deliver Clean E...Amazon Web Services
 
DEV206_Life of a Code Change to a Tier 1 Service
DEV206_Life of a Code Change to a Tier 1 ServiceDEV206_Life of a Code Change to a Tier 1 Service
DEV206_Life of a Code Change to a Tier 1 ServiceAmazon Web Services
 
Interstella 8888: Advanced Microservice Operations - CON407 - re:Invent 2017
Interstella 8888: Advanced Microservice Operations - CON407 - re:Invent 2017Interstella 8888: Advanced Microservice Operations - CON407 - re:Invent 2017
Interstella 8888: Advanced Microservice Operations - CON407 - re:Invent 2017Amazon Web Services
 
DAT320_Moving a Galaxy into Cloud
DAT320_Moving a Galaxy into CloudDAT320_Moving a Galaxy into Cloud
DAT320_Moving a Galaxy into CloudAmazon Web Services
 
I Want to Analyze and Visualize Website Access Logs, but Why Do I Need Server...
I Want to Analyze and Visualize Website Access Logs, but Why Do I Need Server...I Want to Analyze and Visualize Website Access Logs, but Why Do I Need Server...
I Want to Analyze and Visualize Website Access Logs, but Why Do I Need Server...Amazon Web Services
 
CTD405_Building Serverless Video Workflows
CTD405_Building Serverless Video WorkflowsCTD405_Building Serverless Video Workflows
CTD405_Building Serverless Video WorkflowsAmazon Web Services
 
GPSWKS406-Migrating a Microsoft ASP.NET Application to AWS
GPSWKS406-Migrating a Microsoft ASP.NET Application to AWSGPSWKS406-Migrating a Microsoft ASP.NET Application to AWS
GPSWKS406-Migrating a Microsoft ASP.NET Application to AWSAmazon Web Services
 
Deep Dive on Amazon Glacier - STG303 - re:Invent 2017
Deep Dive on Amazon Glacier - STG303 - re:Invent 2017Deep Dive on Amazon Glacier - STG303 - re:Invent 2017
Deep Dive on Amazon Glacier - STG303 - re:Invent 2017Amazon Web Services
 
ARC304_From One to Many Evolving VPC Design
ARC304_From One to Many Evolving VPC DesignARC304_From One to Many Evolving VPC Design
ARC304_From One to Many Evolving VPC DesignAmazon Web Services
 
GPSTEC322-GPS Creating Your Virtual Data Center VPC Fundamentals Connectivity...
GPSTEC322-GPS Creating Your Virtual Data Center VPC Fundamentals Connectivity...GPSTEC322-GPS Creating Your Virtual Data Center VPC Fundamentals Connectivity...
GPSTEC322-GPS Creating Your Virtual Data Center VPC Fundamentals Connectivity...Amazon Web Services
 
CON208_Building Microservices on AWS
CON208_Building Microservices on AWSCON208_Building Microservices on AWS
CON208_Building Microservices on AWSAmazon Web Services
 
MBL309_User Engagement, Messaging, and Analytics Using Amazon Pinpoint from A...
MBL309_User Engagement, Messaging, and Analytics Using Amazon Pinpoint from A...MBL309_User Engagement, Messaging, and Analytics Using Amazon Pinpoint from A...
MBL309_User Engagement, Messaging, and Analytics Using Amazon Pinpoint from A...Amazon Web Services
 
DEV204_Debugging Modern Applications Introduction to AWS X-Ray
DEV204_Debugging Modern Applications Introduction to AWS X-RayDEV204_Debugging Modern Applications Introduction to AWS X-Ray
DEV204_Debugging Modern Applications Introduction to AWS X-RayAmazon Web Services
 
MCL306_Making IoT Smarter with AWS Rekognition.pdf
MCL306_Making IoT Smarter with AWS Rekognition.pdfMCL306_Making IoT Smarter with AWS Rekognition.pdf
MCL306_Making IoT Smarter with AWS Rekognition.pdfAmazon Web Services
 

What's hot (20)

CTD201_Introduction to Amazon CloudFront and AWS Lambda@Edge
CTD201_Introduction to Amazon CloudFront and AWS Lambda@EdgeCTD201_Introduction to Amazon CloudFront and AWS Lambda@Edge
CTD201_Introduction to Amazon CloudFront and AWS Lambda@Edge
 
DEV207_Deploying and Managing Ruby Applications on AWS
DEV207_Deploying and Managing Ruby Applications on AWSDEV207_Deploying and Managing Ruby Applications on AWS
DEV207_Deploying and Managing Ruby Applications on AWS
 
ARC331_How I Made My Motorbike Talk
ARC331_How I Made My Motorbike TalkARC331_How I Made My Motorbike Talk
ARC331_How I Made My Motorbike Talk
 
ENT212-An Overview of Best Practices for Large-Scale Migrations
ENT212-An Overview of Best Practices for Large-Scale MigrationsENT212-An Overview of Best Practices for Large-Scale Migrations
ENT212-An Overview of Best Practices for Large-Scale Migrations
 
MBL209_Learn How MicroStrategy on AWS is Helping Vivint Solar Deliver Clean E...
MBL209_Learn How MicroStrategy on AWS is Helping Vivint Solar Deliver Clean E...MBL209_Learn How MicroStrategy on AWS is Helping Vivint Solar Deliver Clean E...
MBL209_Learn How MicroStrategy on AWS is Helping Vivint Solar Deliver Clean E...
 
ARC205_Born in the Cloud
ARC205_Born in the CloudARC205_Born in the Cloud
ARC205_Born in the Cloud
 
DEV206_Life of a Code Change to a Tier 1 Service
DEV206_Life of a Code Change to a Tier 1 ServiceDEV206_Life of a Code Change to a Tier 1 Service
DEV206_Life of a Code Change to a Tier 1 Service
 
Interstella 8888: Advanced Microservice Operations - CON407 - re:Invent 2017
Interstella 8888: Advanced Microservice Operations - CON407 - re:Invent 2017Interstella 8888: Advanced Microservice Operations - CON407 - re:Invent 2017
Interstella 8888: Advanced Microservice Operations - CON407 - re:Invent 2017
 
DAT320_Moving a Galaxy into Cloud
DAT320_Moving a Galaxy into CloudDAT320_Moving a Galaxy into Cloud
DAT320_Moving a Galaxy into Cloud
 
I Want to Analyze and Visualize Website Access Logs, but Why Do I Need Server...
I Want to Analyze and Visualize Website Access Logs, but Why Do I Need Server...I Want to Analyze and Visualize Website Access Logs, but Why Do I Need Server...
I Want to Analyze and Visualize Website Access Logs, but Why Do I Need Server...
 
CTD405_Building Serverless Video Workflows
CTD405_Building Serverless Video WorkflowsCTD405_Building Serverless Video Workflows
CTD405_Building Serverless Video Workflows
 
STG401_This Is My Architecture
STG401_This Is My ArchitectureSTG401_This Is My Architecture
STG401_This Is My Architecture
 
GPSWKS406-Migrating a Microsoft ASP.NET Application to AWS
GPSWKS406-Migrating a Microsoft ASP.NET Application to AWSGPSWKS406-Migrating a Microsoft ASP.NET Application to AWS
GPSWKS406-Migrating a Microsoft ASP.NET Application to AWS
 
Deep Dive on Amazon Glacier - STG303 - re:Invent 2017
Deep Dive on Amazon Glacier - STG303 - re:Invent 2017Deep Dive on Amazon Glacier - STG303 - re:Invent 2017
Deep Dive on Amazon Glacier - STG303 - re:Invent 2017
 
ARC304_From One to Many Evolving VPC Design
ARC304_From One to Many Evolving VPC DesignARC304_From One to Many Evolving VPC Design
ARC304_From One to Many Evolving VPC Design
 
GPSTEC322-GPS Creating Your Virtual Data Center VPC Fundamentals Connectivity...
GPSTEC322-GPS Creating Your Virtual Data Center VPC Fundamentals Connectivity...GPSTEC322-GPS Creating Your Virtual Data Center VPC Fundamentals Connectivity...
GPSTEC322-GPS Creating Your Virtual Data Center VPC Fundamentals Connectivity...
 
CON208_Building Microservices on AWS
CON208_Building Microservices on AWSCON208_Building Microservices on AWS
CON208_Building Microservices on AWS
 
MBL309_User Engagement, Messaging, and Analytics Using Amazon Pinpoint from A...
MBL309_User Engagement, Messaging, and Analytics Using Amazon Pinpoint from A...MBL309_User Engagement, Messaging, and Analytics Using Amazon Pinpoint from A...
MBL309_User Engagement, Messaging, and Analytics Using Amazon Pinpoint from A...
 
DEV204_Debugging Modern Applications Introduction to AWS X-Ray
DEV204_Debugging Modern Applications Introduction to AWS X-RayDEV204_Debugging Modern Applications Introduction to AWS X-Ray
DEV204_Debugging Modern Applications Introduction to AWS X-Ray
 
MCL306_Making IoT Smarter with AWS Rekognition.pdf
MCL306_Making IoT Smarter with AWS Rekognition.pdfMCL306_Making IoT Smarter with AWS Rekognition.pdf
MCL306_Making IoT Smarter with AWS Rekognition.pdf
 

Similar to DEV329_Cisco’s Journey from Monolith to Microservices

Building the Largest Repo for Serverless Compliance-as-Code - SID205 - re:Inv...
Building the Largest Repo for Serverless Compliance-as-Code - SID205 - re:Inv...Building the Largest Repo for Serverless Compliance-as-Code - SID205 - re:Inv...
Building the Largest Repo for Serverless Compliance-as-Code - SID205 - re:Inv...Amazon Web Services
 
SID331_Architecting Security and Governance Across a Multi-Account Strategy
SID331_Architecting Security and Governance Across a Multi-Account StrategySID331_Architecting Security and Governance Across a Multi-Account Strategy
SID331_Architecting Security and Governance Across a Multi-Account StrategyAmazon Web Services
 
Healthcare Payers and Serverless Batch Processing Engines - HLC308 - re:Inven...
Healthcare Payers and Serverless Batch Processing Engines - HLC308 - re:Inven...Healthcare Payers and Serverless Batch Processing Engines - HLC308 - re:Inven...
Healthcare Payers and Serverless Batch Processing Engines - HLC308 - re:Inven...Amazon Web Services
 
Advanced Patterns in Microservices Implementation with Amazon ECS - CON402 - ...
Advanced Patterns in Microservices Implementation with Amazon ECS - CON402 - ...Advanced Patterns in Microservices Implementation with Amazon ECS - CON402 - ...
Advanced Patterns in Microservices Implementation with Amazon ECS - CON402 - ...Amazon Web Services
 
How Nextdoor Built a Scalable, Serverless Data Pipeline for Billions of Event...
How Nextdoor Built a Scalable, Serverless Data Pipeline for Billions of Event...How Nextdoor Built a Scalable, Serverless Data Pipeline for Billions of Event...
How Nextdoor Built a Scalable, Serverless Data Pipeline for Billions of Event...Amazon Web Services
 
Stream processing and managing real-time data
Stream processing and managing real-time dataStream processing and managing real-time data
Stream processing and managing real-time dataAmazon Web Services
 
FSV305-Optimizing Payments Collections with Containers and Machine Learning
FSV305-Optimizing Payments Collections with Containers and Machine LearningFSV305-Optimizing Payments Collections with Containers and Machine Learning
FSV305-Optimizing Payments Collections with Containers and Machine LearningAmazon Web Services
 
CON320_Monitoring, Logging and Debugging Containerized Services
CON320_Monitoring, Logging and Debugging Containerized ServicesCON320_Monitoring, Logging and Debugging Containerized Services
CON320_Monitoring, Logging and Debugging Containerized ServicesAmazon Web Services
 
Day Two Operations of Kubernetes on AWS (GPSTEC309) - AWS re:Invent 2018
Day Two Operations of Kubernetes on AWS (GPSTEC309) - AWS re:Invent 2018Day Two Operations of Kubernetes on AWS (GPSTEC309) - AWS re:Invent 2018
Day Two Operations of Kubernetes on AWS (GPSTEC309) - AWS re:Invent 2018Amazon Web Services
 
ABD206-Building Visualizations and Dashboards with Amazon QuickSight
ABD206-Building Visualizations and Dashboards with Amazon QuickSightABD206-Building Visualizations and Dashboards with Amazon QuickSight
ABD206-Building Visualizations and Dashboards with Amazon QuickSightAmazon Web Services
 
規劃大規模遷移到 AWS 的最佳實踐
規劃大規模遷移到 AWS 的最佳實踐規劃大規模遷移到 AWS 的最佳實踐
規劃大規模遷移到 AWS 的最佳實踐Amazon Web Services
 
Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...
Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...
Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...Amazon Web Services
 
ARC325_Managing Multiple AWS Accounts at Scale
ARC325_Managing Multiple AWS Accounts at ScaleARC325_Managing Multiple AWS Accounts at Scale
ARC325_Managing Multiple AWS Accounts at ScaleAmazon Web Services
 
Born in the Cloud, Built like a Startup
Born in the Cloud, Built like a StartupBorn in the Cloud, Built like a Startup
Born in the Cloud, Built like a StartupAmazon Web Services
 
re:Invent CON320 Tracing and Debugging for Containerized Services
re:Invent CON320 Tracing and Debugging for Containerized Servicesre:Invent CON320 Tracing and Debugging for Containerized Services
re:Invent CON320 Tracing and Debugging for Containerized ServicesCalvin French-Owen
 
Using AWS to Achieve Both Autonomy and Governance at 3M
Using AWS to Achieve Both Autonomy and Governance at 3MUsing AWS to Achieve Both Autonomy and Governance at 3M
Using AWS to Achieve Both Autonomy and Governance at 3MCasey Lee
 
DEV332_Using AWS to Achieve Both Autonomy and Governance at 3M
DEV332_Using AWS to Achieve Both Autonomy and Governance at 3MDEV332_Using AWS to Achieve Both Autonomy and Governance at 3M
DEV332_Using AWS to Achieve Both Autonomy and Governance at 3MAmazon Web Services
 
Getting Started with Serverless Architectures with Microservices_AWSPSSummit_...
Getting Started with Serverless Architectures with Microservices_AWSPSSummit_...Getting Started with Serverless Architectures with Microservices_AWSPSSummit_...
Getting Started with Serverless Architectures with Microservices_AWSPSSummit_...Amazon Web Services
 

Similar to DEV329_Cisco’s Journey from Monolith to Microservices (20)

Building the Largest Repo for Serverless Compliance-as-Code - SID205 - re:Inv...
Building the Largest Repo for Serverless Compliance-as-Code - SID205 - re:Inv...Building the Largest Repo for Serverless Compliance-as-Code - SID205 - re:Inv...
Building the Largest Repo for Serverless Compliance-as-Code - SID205 - re:Inv...
 
ENT315_Landing Zones
ENT315_Landing ZonesENT315_Landing Zones
ENT315_Landing Zones
 
SID331_Architecting Security and Governance Across a Multi-Account Strategy
SID331_Architecting Security and Governance Across a Multi-Account StrategySID331_Architecting Security and Governance Across a Multi-Account Strategy
SID331_Architecting Security and Governance Across a Multi-Account Strategy
 
HLC308_Refactoring to the Cloud
HLC308_Refactoring to the CloudHLC308_Refactoring to the Cloud
HLC308_Refactoring to the Cloud
 
Healthcare Payers and Serverless Batch Processing Engines - HLC308 - re:Inven...
Healthcare Payers and Serverless Batch Processing Engines - HLC308 - re:Inven...Healthcare Payers and Serverless Batch Processing Engines - HLC308 - re:Inven...
Healthcare Payers and Serverless Batch Processing Engines - HLC308 - re:Inven...
 
Advanced Patterns in Microservices Implementation with Amazon ECS - CON402 - ...
Advanced Patterns in Microservices Implementation with Amazon ECS - CON402 - ...Advanced Patterns in Microservices Implementation with Amazon ECS - CON402 - ...
Advanced Patterns in Microservices Implementation with Amazon ECS - CON402 - ...
 
How Nextdoor Built a Scalable, Serverless Data Pipeline for Billions of Event...
How Nextdoor Built a Scalable, Serverless Data Pipeline for Billions of Event...How Nextdoor Built a Scalable, Serverless Data Pipeline for Billions of Event...
How Nextdoor Built a Scalable, Serverless Data Pipeline for Billions of Event...
 
Stream processing and managing real-time data
Stream processing and managing real-time dataStream processing and managing real-time data
Stream processing and managing real-time data
 
FSV305-Optimizing Payments Collections with Containers and Machine Learning
FSV305-Optimizing Payments Collections with Containers and Machine LearningFSV305-Optimizing Payments Collections with Containers and Machine Learning
FSV305-Optimizing Payments Collections with Containers and Machine Learning
 
CON320_Monitoring, Logging and Debugging Containerized Services
CON320_Monitoring, Logging and Debugging Containerized ServicesCON320_Monitoring, Logging and Debugging Containerized Services
CON320_Monitoring, Logging and Debugging Containerized Services
 
Day Two Operations of Kubernetes on AWS (GPSTEC309) - AWS re:Invent 2018
Day Two Operations of Kubernetes on AWS (GPSTEC309) - AWS re:Invent 2018Day Two Operations of Kubernetes on AWS (GPSTEC309) - AWS re:Invent 2018
Day Two Operations of Kubernetes on AWS (GPSTEC309) - AWS re:Invent 2018
 
ABD206-Building Visualizations and Dashboards with Amazon QuickSight
ABD206-Building Visualizations and Dashboards with Amazon QuickSightABD206-Building Visualizations and Dashboards with Amazon QuickSight
ABD206-Building Visualizations and Dashboards with Amazon QuickSight
 
規劃大規模遷移到 AWS 的最佳實踐
規劃大規模遷移到 AWS 的最佳實踐規劃大規模遷移到 AWS 的最佳實踐
規劃大規模遷移到 AWS 的最佳實踐
 
Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...
Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...
Ripping off the Bandage: Re-Architecting Traditional Three-Tier Monoliths to ...
 
ARC325_Managing Multiple AWS Accounts at Scale
ARC325_Managing Multiple AWS Accounts at ScaleARC325_Managing Multiple AWS Accounts at Scale
ARC325_Managing Multiple AWS Accounts at Scale
 
Born in the Cloud, Built like a Startup
Born in the Cloud, Built like a StartupBorn in the Cloud, Built like a Startup
Born in the Cloud, Built like a Startup
 
re:Invent CON320 Tracing and Debugging for Containerized Services
re:Invent CON320 Tracing and Debugging for Containerized Servicesre:Invent CON320 Tracing and Debugging for Containerized Services
re:Invent CON320 Tracing and Debugging for Containerized Services
 
Using AWS to Achieve Both Autonomy and Governance at 3M
Using AWS to Achieve Both Autonomy and Governance at 3MUsing AWS to Achieve Both Autonomy and Governance at 3M
Using AWS to Achieve Both Autonomy and Governance at 3M
 
DEV332_Using AWS to Achieve Both Autonomy and Governance at 3M
DEV332_Using AWS to Achieve Both Autonomy and Governance at 3MDEV332_Using AWS to Achieve Both Autonomy and Governance at 3M
DEV332_Using AWS to Achieve Both Autonomy and Governance at 3M
 
Getting Started with Serverless Architectures with Microservices_AWSPSSummit_...
Getting Started with Serverless Architectures with Microservices_AWSPSSummit_...Getting Started with Serverless Architectures with Microservices_AWSPSSummit_...
Getting Started with Serverless Architectures with Microservices_AWSPSSummit_...
 

More from Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

More from Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

DEV329_Cisco’s Journey from Monolith to Microservices

  • 1. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS re:INVENT CISCO’S JOURNEY FROM MONOLITH TO MICROSERVICES ADVANCED ARCHITECTURAL PATTERNS Ronnen Slasky, AWS Solutions Architect Avi Fruchter, Cisco CTO IVP November 28, 2017 EDCS-11803578
  • 2. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AGENDA Microservices Persistency Patterns Cisco’s Migration to Microservices
  • 3. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Technology Organization Processes Modern Software Development Microservices Service Teams Continuous Delivery
  • 4. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. In 2014: • Thousands of service teams • Building microservices • Practicing continuous delivery 50 Million Deployments Microservices at Amazon
  • 5. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Centralized Data Management DB cart accountuser Monolithic Service
  • 6. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Principle: Each Microservice has its own Database • Choose the right technology for each service • Operational ownership Decentralized Data Management user-svc Redis Amazon RDS cart-svc search-svc Elasticsearch Amazon DynamoDB
  • 7. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Microservices Persistency Patterns Shared Static Data Shared Mutable Data Transactions
  • 8. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Scenario #1: Shared Static Data Challenge: Sharing Static Data Across Multiple Services cart-svc account-svcuser-svc Zip Codes
  • 9. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Pattern A: Duplicate Table Scenario #1: Shared Static Data user-svc cart-svc account- svc ZipCodes ZipCodes ZipCodes
  • 10. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Pattern A: Duplicate Table Pattern B: Property File Scenario #1: Shared Static Data use-svc ZipCodes ZipCodes ZipCodes user-svc cart-svc account- svc user-svc cart-svc account- svc ZipCodes ZipCodes ZipCodes
  • 11. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Pattern C: New ServicePattern A: Duplicate Table Pattern B: Property File Scenario #1: Shared Static Data use-svc ZipCodes ZipCodes ZipCodes user-svc cart-svc account- svc user-svc cart-svc account- svc ZipCodes ZipCodes ZipCodes ZipCode-svc ZipCodes account- svc cart-svcuser-svc
  • 12. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Scenario #2: Shared Mutable Data Challenge Monolithic database makes it easy to access shared data. This is not so simple in a Microservice Architecture cart-svcuser-svc shipping-svc Users Shipping
  • 13. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Pattern A: Synchronous Lookup Scenario #2: Shared Mutable Data shipping-svc user-svc RDS
  • 14. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Pattern B: Lookup, Cache + Asynchronous Event Pattern A: Synchronous Lookup Scenario #2: Shared Mutable Data shipping-svc user-svc RDS shipping-svc user-svc RDSCache
  • 15. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Scenario #3: Transactions Challenge Monolithic database enable transactions across multiple entities Splitting data to their own datastores makes this more complex Monolithic Service Single Transaction Boundary Account-svc Order-svc RDS Monolithic Database Account Table Order Table
  • 16. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Scenario #3: Transactions Pattern A: Queue and Retry • Eventually consistent • Simple and robust implementation • Gracefully handles failure Separate Transaction Boundary Microservice Order-svc Order Table Microservice Account-svc Account Table
  • 17. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Scenario #3: Transactions Transaction Manager User-svc Cart-svc Account-svc Pattern B: Two Phased Commit • Atomic Commit Protocol = Guarantees Consistency
  • 18. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Scenario #3: Transactions Propose User Propose Cart Propose Account User-svc Cart-svc Account-svc Transaction Manager Pattern B: Two Phased Commit • Atomic Commit Protocol = Guarantees Consistency • Two distinct phases: • Voting phase
  • 19. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Scenario #3: Transactions User-svc Cart-svc Account-svc Transaction Manager Propose User Propose Cart Propose Account Commit/Abort Commit/Abort Commit/Abort Pattern B: Two Phased Commit • Atomic Commit Protocol = Guarantees Consistency • Two distinct phases: • Voting phase • Commit phase
  • 20. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Scenario #3: Transactions User-svc Cart-svc Account-svc Transaction Manager Propose User Propose Cart Propose Account Commit/Abort Commit/Abort Commit/Abort Pattern B: Two Phased Commit • Atomic Commit Protocol = Guarantees Consistency • Two distinct phases: • Voting phase • Commit phase • Locks resources between phases • Fit for short lived transactions
  • 21. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Scenario #3: Transactions Pattern C: Saga Pattern A Saga is a long lived transaction that can be written as a sequence of transactions that can be interleaved with other transactions. The database management system guarantees that either all the transactions of a saga are successfully completed or compensated transactions are run to amend a partial execution.Hector Garcia-Molina and Keneth Salem
  • 22. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Scenario #3: Transactions A Saga is a long lived transaction that can be written as a sequence of transactions that can be interleaved with other transactions. The database management system guarantees that either all the transactions of a saga are successfully completed or compensated transactions are run to amend a partial execution.Hector Garcia-Molina and Keneth Salem T1, T2, T3….Tn Pattern C: Saga Pattern
  • 23. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Scenario #3: Transactions A Saga is a long lived transaction that can be written as a sequence of transactions that can be interleaved with other transactions. The database management system guarantees that either all the transactions of a saga are successfully completed or compensated transactions are run to amend a partial execution.Hector Garcia-Molina and Keneth Salem Cn… C3, C2, C1 Pattern C: Saga Pattern
  • 24. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Scenario #3: Transactions A Saga is a long lived transaction that can be written as a sequence of transactions that can be interleaved with other transactions. The database management system guarantees that either all the transactions of a saga are successfully completed or compensated transactions are run to amend a partial execution.Hector Garcia-Molina and Keneth Salem Cn Semantically Undoes Tn Pattern C: Saga Pattern
  • 25. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Scenario #3: Transactions A Saga is a long lived transaction that can be written as a sequence of transactions that can be interleaved with other transactions. The database management system guarantees that either all the transactions of a saga are successfully completed or compensated transactions are run to amend a partial execution.Hector Garcia-Molina and Keneth Salem Either T1, T2, T3….Tn or T1, T2, ….Tn, Cn….C2, C1 Pattern C: Saga Pattern Guarantee
  • 26. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Takeaways Breaking your Monolith can help move faster Select the right microservices persistency design pattern Learn from others
  • 27. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Cisco’s Migration to Microservices
  • 28. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 29. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 30. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Rebirth in the cloud WaterfallBare Metal Monoliths
  • 31. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Our Journey
  • 32. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Thousands of instances >100 microservices
  • 33. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. The four pillars Automation PipelineCloud ServicesMicroservices
  • 34. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Automation
  • 35. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Automation Click to Deploy $./deploy.sh FULL 01.17.40.17 nc_pipeline Click to Upgrade $./deploy.sh UPGRADE 01.17.40.17 nc_pipeline
  • 36. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Benefits Development Velocity New Customer Onboarding Short Feedback Cycles to Production Environment
  • 37. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Microservices
  • 38. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Two types of monoliths Functional Platforms
  • 39. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Platform monoliths Scale Log Database Deploy APP Monitor
  • 40. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 41. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. “Un-peel-able” Application
  • 42. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Success! 99.7% Code reduction 1,250,000 4,000 Lines of Code 860 ms 130 ms Latency 5 XL Machines 5 Small BOM
  • 43. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
  • 45. Functional monolith Development velocity Operational costs Scale
  • 46. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Success! 97.5% Code reduction 2,000,000 50,000 Lines of Code 70 ms 42 ms Latency 150 Core 550 RAM 50 Core 85 RAM BOM
  • 47. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Domain-driven design
  • 48. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. VOD navigation { “Title”:… “Synopsis”:… “Episode/season”:… “SellPrice”:… “Classification”:… “Credits”:… “Thumnail”:… “playableURI”:… “offers”:… } { “Title”:… “Synopsis”:… “Episode/season”:… “SellPrice”:… “Classification”:… “Credits”:… “Thumnail”:… “playableURI”:… }
  • 49. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Search { “Title”:… “Synopsis”:… “Episode/season”:… “SellPrice”:… “Classification”:… “Credits”:… “Thumnail”:… “playableURI”:… “offers”:… } { “Title”:… “Synopsis”:… “Episode/season”:… }
  • 50. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Sharing technology
  • 51. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Replacement in flight Fork Ingest Recache Sync
  • 52. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Cloud platform services
  • 53. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Cloud platform services Deployment Load Balancing Messaging Service Registry Monitoring Smart Routing Object Storage Alerts Logging
  • 54. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Smart routing GW GW µs1 µs1 µs1.1 µs2 µs2 µs2 µs4 µs4 µs4.1
  • 55. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Smart routing
  • 56. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Pipeline
  • 57. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Pipeline runs 24/7 >4,300 runs past year/~12 releases per day
  • 58. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Continuous delivery flow CONTINUOUS UPGRADE PIPELINE DAILY UPGRADE + CLEAN DEPLOY Sunday Service 1 Rel.3 Service 2 Rel.3 Service 4 Rel.3 Service 1 Rel.2 Service 2 Rel.2 Service 3 Rel.2 Service 1 Rel.3 Service 2 Rel.3 Service 4 Rel.3 Monday Service 2 Rel.2 Service 3 Rel.2 … Service 3 Rel.3
  • 59. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. What’s next?
  • 60. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Independent pipelines
  • 61. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Leverage native cloud services Applications Platform Development
  • 62. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Prod A AWS CodeDeploy AWS CodeBuild Prod B Prod C Dev AWS CodeDeploy AWS CodePipeline
  • 63. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. +( + )=
  • 64. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.