SlideShare a Scribd company logo
1 of 36
Migrating to Cloud-Native
Architectures Using Microservices:
an Experience Report
Armin Balalaie, Abbas Heydarnoori
Sharif University of Technology
Pooyan Jamshidi
Imperial College London
Microservices
A cloud-native architecture
Developing a single application as a suite of
small services
Source: http://martinfowler.com/articles/microservices.html
Services are built around business capabilities
Source: http://martinfowler.com/articles/microservices.html
Services are independently deployable by
fully automated deployment machinery
Source: http://martinfowler.com/articles/microservices.html
Feedback to Dev is necessary from Ops and
Micro-services facilitate it
• Micro-services as native cloud architecture that enable DevOps
• Performance-aware DevOps
• Design-time performance models
• Performance monitoring
• Performance change detection
• Performance anti-patterns detection
• Evolution: Filling the gap between Dev and Ops
• Software Architecture Optimization for Performance
• Resource provisioning and management
More details on “performance-oriented DevOps” published by SPEC Research Group on DevOps:
https://research.spec.org/news/single-view/article/technical-report-on-performance-oriented-devops-
published.html
There is a bare minimum of centralized
management of the services (Polyglot-ness)
Source: http://martinfowler.com/articles/microservices.html
SSaaS (Server Side as a Service)
A platform that makes mobile application development easier
Features of SSaaS
• Mobile application developers can use server-side capabilities
without knowing any server-side programming languages
• RDBMS as a Service
• Define data models in SSaaS dashboard
• Use the models’ objects in mobile application development
• Built-in user management
• Chat as a Service
• Integration with RDBMSaaS user authentication
Architecture of SSaaS before the migration
Reasons for migration
• On-demand capability of Chat as a Service
• The need for a reusable resource manager
• Management of resources like relational database instances, e.g. MySQL
database.
• The need for decentralized data governance
• Chat service’s metadata needed a dedicated place
• The need for automated deployment
• The need for built-in scalability
Target Architecture of SSaaS
Migration Steps
Incremental steps
Preparing the Continuous Integration Pipeline
Transforming DeveloperData to a Service
Introducing Continuous Delivery
Introducing Edge Server
Introducing Dynamic Service Collaboration
Introducing Resource Manager
Introducing ChatServices and DeveloperInfoServices
Clusterization
Lessons Learned
Experiences in migrating to microservices
Deployment in the development
environment is difficult for a
typical developer
Service contracts are double
important
Distributed system development
needs skilled developers
Creating service development
templates is important
The research on Micro-services has started only in 2015,
Plenty of opportunities ahead!
1. Kratzke, N.: About microservices, containers and their underestimated impact on network
performance. CLOUD (March 2015)
2. Levcovitz, A., Terra, R., Valente, M.T.: Towards a technique for extracting microservices from
monolithic enterprise systems. VEM (September 2015)
3. Rahman, M., Gao, J.: A reusable automated acceptance testing architecture for microservices in
behavior-driven development. SOSE(March 2015)
4. Stubbs, J., Moreira, W., Dooley, R.: Distributed systems of microservices using docker and
serfnode. IWSG (June 2015)
5. Viennot, N., L´ ecuyer, M., Bell, J., Geambasu, R., Nieh, J.: Synapse: A microservices architecture
for heterogeneous-database web applications. EuroSys. (April 2015)
More details? http://arxiv.org/abs/1507.08217
Our current agenda!
• Migration patterns for micro-services
• Architectural tactics
• Situational method engineering for extracting common reusable
practices
• Method chunks
• Pattern template for documenting practices
• Migration patterns vs. design patterns
Migration Transition Graph
Cloud Migration through Pattern Composition
• The migration patterns can be seen as a sequence of activities by which
an application is gradually migrated to the micro-services.
• The migration patterns can be composed (i.e., executed sequentially) to
move a monolithic application to micro-services.
Migration Pattern Selection
Objective MP1 MP2 MP3 MP4 MP5 MP6 MP7 MP8 MP9 MP10 MP11 MP12 MP13 MP14 MP15
Time to market -- -- -- -- --
New capabilities -- -- -- --
Reduce operational cost -- -- -- -- -- --
Leverage investments -- -- --
Free up on-premise resources
Scalability -- -- -- -- -- -- --
Operational efficiency -- -- -- -- -- -- -- --
Re-host
Cloudification
Relocation
Refactor
Rebinding
Replacement
Modernization
Assembly-based Situational Migration
Objective MP1 MP2 MP3 MP4 MP5 MP6 MP7 MP8 MP9 MP10 MP11 MP12 MP13 M P14 MP15
Time to market -- -- -- -- --
New capabilities -- -- -- -- --
Reduce operational cost -- -- -- -- -- -- --
Leverage investments -- -- -- -- -- --
Free up on premise resources
Scalability -- -- -- -- -- -- --
Operational efficiency -- -- -- -- -- -- -- --
Assembly-based Migration Plan Construction
Objective M P1 MP2 M P3 M P4 MP5 M P6 M P7 MP8 M P9 M P10 M P11 MP12 M P13 MP14 M P15
Time to market -- -- -- -- --
New capabilities -- -- -- -- --
Reduce operational cost -- -- -- -- -- -- --
Leverage investments -- -- -- -- -- --
Free up on premise resources
Scalability -- -- -- -- -- -- --
Operational efficiency -- -- -- -- -- -- -- --
Migration Pattern Meta-Model
Migration Patterns in the context of Cloud-RMM
P. Jamshidi, A. Ahmad, C. Pahl, "Cloud Migration Research: A Systematic Review", IEEE Transactions on Cloud
Computing, 2013, DOI:10.1109/TCC.2013.10.
Migration patterns
Primarily facilitate
planning
Enable Auto-Deployment of
Multi-Tier Systems
in Hybrid Cloud Environment
Developing a single application as a suite of
small services
Source: http://martinfowler.com/articles/microservices.html
Architecture of SSaaS before the migration
Target Architecture of SSaaS
Clusterization
Services are built around business capabilities
Source: http://martinfowler.com/articles/microservices.html
Services are independently deployable by
fully automated deployment machinery
Source: http://martinfowler.com/articles/microservices.html
There is a bare minimum of centralized
management of the services (Polyglot-ness)
Source: http://martinfowler.com/articles/microservices.html
Transforming DeveloperData to a Service Introducing Continuous Delivery
Introducing Edge Server Introducing Dynamic Service Collaboration Introducing Resource Manager
Deployment in the development
environment is difficult for a
typical developer
Service contracts are double
important
Distributed system development
needs skilled developers
Creating service development
templates is important

More Related Content

Viewers also liked

AWS Innovate 2016- Planning a Phased Cloud Migration Strategy - Abhishek Mah...
AWS Innovate 2016- Planning a Phased Cloud Migration Strategy - Abhishek  Mah...AWS Innovate 2016- Planning a Phased Cloud Migration Strategy - Abhishek  Mah...
AWS Innovate 2016- Planning a Phased Cloud Migration Strategy - Abhishek Mah...Amazon Web Services Korea
 
Intro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_sIntro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_sSeong-Bok Lee
 
Migrating Traditional Apps from On-Premises to the Hybrid Cloud
Migrating Traditional Apps from On-Premises to the Hybrid CloudMigrating Traditional Apps from On-Premises to the Hybrid Cloud
Migrating Traditional Apps from On-Premises to the Hybrid CloudRackspace
 
Migrating Enterprise Applications to AWS: Best Practices & Techniques (ENT303...
Migrating Enterprise Applications to AWS: Best Practices & Techniques (ENT303...Migrating Enterprise Applications to AWS: Best Practices & Techniques (ENT303...
Migrating Enterprise Applications to AWS: Best Practices & Techniques (ENT303...Amazon Web Services
 
Best Practices: Operational Checklists for the AWS Cloud - AWS NYC Summit 2012
Best Practices: Operational Checklists for the AWS Cloud - AWS NYC Summit 2012Best Practices: Operational Checklists for the AWS Cloud - AWS NYC Summit 2012
Best Practices: Operational Checklists for the AWS Cloud - AWS NYC Summit 2012Amazon Web Services
 
Migrating Existing Applications to AWS Cloud
Migrating Existing Applications to AWS CloudMigrating Existing Applications to AWS Cloud
Migrating Existing Applications to AWS Cloudjineshvaria
 
Dockercon State of the Art in Microservices
Dockercon State of the Art in MicroservicesDockercon State of the Art in Microservices
Dockercon State of the Art in MicroservicesAdrian Cockcroft
 

Viewers also liked (10)

IT Transformation with AWS
IT Transformation with AWSIT Transformation with AWS
IT Transformation with AWS
 
AWS Innovate 2016- Planning a Phased Cloud Migration Strategy - Abhishek Mah...
AWS Innovate 2016- Planning a Phased Cloud Migration Strategy - Abhishek  Mah...AWS Innovate 2016- Planning a Phased Cloud Migration Strategy - Abhishek  Mah...
AWS Innovate 2016- Planning a Phased Cloud Migration Strategy - Abhishek Mah...
 
Intro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_sIntro to hpe helion stackato_paa_s
Intro to hpe helion stackato_paa_s
 
Aws migration case study_blr_meetup
Aws migration case study_blr_meetupAws migration case study_blr_meetup
Aws migration case study_blr_meetup
 
Migrating Traditional Apps from On-Premises to the Hybrid Cloud
Migrating Traditional Apps from On-Premises to the Hybrid CloudMigrating Traditional Apps from On-Premises to the Hybrid Cloud
Migrating Traditional Apps from On-Premises to the Hybrid Cloud
 
Migrating Enterprise Applications to AWS: Best Practices & Techniques (ENT303...
Migrating Enterprise Applications to AWS: Best Practices & Techniques (ENT303...Migrating Enterprise Applications to AWS: Best Practices & Techniques (ENT303...
Migrating Enterprise Applications to AWS: Best Practices & Techniques (ENT303...
 
Best Practices: Operational Checklists for the AWS Cloud - AWS NYC Summit 2012
Best Practices: Operational Checklists for the AWS Cloud - AWS NYC Summit 2012Best Practices: Operational Checklists for the AWS Cloud - AWS NYC Summit 2012
Best Practices: Operational Checklists for the AWS Cloud - AWS NYC Summit 2012
 
Migrating Existing Applications to AWS Cloud
Migrating Existing Applications to AWS CloudMigrating Existing Applications to AWS Cloud
Migrating Existing Applications to AWS Cloud
 
Dockercon State of the Art in Microservices
Dockercon State of the Art in MicroservicesDockercon State of the Art in Microservices
Dockercon State of the Art in Microservices
 
AWS Migration Planning Roadmap
AWS Migration Planning RoadmapAWS Migration Planning Roadmap
AWS Migration Planning Roadmap
 

More from Pooyan Jamshidi

Learning LWF Chain Graphs: A Markov Blanket Discovery Approach
Learning LWF Chain Graphs: A Markov Blanket Discovery ApproachLearning LWF Chain Graphs: A Markov Blanket Discovery Approach
Learning LWF Chain Graphs: A Markov Blanket Discovery ApproachPooyan Jamshidi
 
A Framework for Robust Control of Uncertainty in Self-Adaptive Software Conn...
 A Framework for Robust Control of Uncertainty in Self-Adaptive Software Conn... A Framework for Robust Control of Uncertainty in Self-Adaptive Software Conn...
A Framework for Robust Control of Uncertainty in Self-Adaptive Software Conn...Pooyan Jamshidi
 
Machine Learning Meets Quantitative Planning: Enabling Self-Adaptation in Aut...
Machine Learning Meets Quantitative Planning: Enabling Self-Adaptation in Aut...Machine Learning Meets Quantitative Planning: Enabling Self-Adaptation in Aut...
Machine Learning Meets Quantitative Planning: Enabling Self-Adaptation in Aut...Pooyan Jamshidi
 
Ensembles of Many Diverse Weak Defenses can be Strong: Defending Deep Neural ...
Ensembles of Many Diverse Weak Defenses can be Strong: Defending Deep Neural ...Ensembles of Many Diverse Weak Defenses can be Strong: Defending Deep Neural ...
Ensembles of Many Diverse Weak Defenses can be Strong: Defending Deep Neural ...Pooyan Jamshidi
 
Transfer Learning for Performance Analysis of Machine Learning Systems
Transfer Learning for Performance Analysis of Machine Learning SystemsTransfer Learning for Performance Analysis of Machine Learning Systems
Transfer Learning for Performance Analysis of Machine Learning SystemsPooyan Jamshidi
 
Transfer Learning for Performance Analysis of Configurable Systems: A Causal ...
Transfer Learning for Performance Analysis of Configurable Systems:A Causal ...Transfer Learning for Performance Analysis of Configurable Systems:A Causal ...
Transfer Learning for Performance Analysis of Configurable Systems: A Causal ...Pooyan Jamshidi
 
Machine Learning meets DevOps
Machine Learning meets DevOpsMachine Learning meets DevOps
Machine Learning meets DevOpsPooyan Jamshidi
 
Integrated Model Discovery and Self-Adaptation of Robots
Integrated Model Discovery and Self-Adaptation of RobotsIntegrated Model Discovery and Self-Adaptation of Robots
Integrated Model Discovery and Self-Adaptation of RobotsPooyan Jamshidi
 
Transfer Learning for Performance Analysis of Highly-Configurable Software
Transfer Learning for Performance Analysis of Highly-Configurable SoftwareTransfer Learning for Performance Analysis of Highly-Configurable Software
Transfer Learning for Performance Analysis of Highly-Configurable SoftwarePooyan Jamshidi
 
Architectural Tradeoff in Learning-Based Software
Architectural Tradeoff in Learning-Based SoftwareArchitectural Tradeoff in Learning-Based Software
Architectural Tradeoff in Learning-Based SoftwarePooyan Jamshidi
 
Production-Ready Machine Learning for the Software Architect
Production-Ready Machine Learning for the Software ArchitectProduction-Ready Machine Learning for the Software Architect
Production-Ready Machine Learning for the Software ArchitectPooyan Jamshidi
 
Transfer Learning for Software Performance Analysis: An Exploratory Analysis
Transfer Learning for Software Performance Analysis: An Exploratory AnalysisTransfer Learning for Software Performance Analysis: An Exploratory Analysis
Transfer Learning for Software Performance Analysis: An Exploratory AnalysisPooyan Jamshidi
 
Learning Software Performance Models for Dynamic and Uncertain Environments
Learning Software Performance Models for Dynamic and Uncertain EnvironmentsLearning Software Performance Models for Dynamic and Uncertain Environments
Learning Software Performance Models for Dynamic and Uncertain EnvironmentsPooyan Jamshidi
 
Sensitivity Analysis for Building Adaptive Robotic Software
Sensitivity Analysis for Building Adaptive Robotic SoftwareSensitivity Analysis for Building Adaptive Robotic Software
Sensitivity Analysis for Building Adaptive Robotic SoftwarePooyan Jamshidi
 
Transfer Learning for Improving Model Predictions in Highly Configurable Soft...
Transfer Learning for Improving Model Predictions in Highly Configurable Soft...Transfer Learning for Improving Model Predictions in Highly Configurable Soft...
Transfer Learning for Improving Model Predictions in Highly Configurable Soft...Pooyan Jamshidi
 
Transfer Learning for Improving Model Predictions in Robotic Systems
Transfer Learning for Improving Model Predictions  in Robotic SystemsTransfer Learning for Improving Model Predictions  in Robotic Systems
Transfer Learning for Improving Model Predictions in Robotic SystemsPooyan Jamshidi
 
Machine Learning meets DevOps
Machine Learning meets DevOpsMachine Learning meets DevOps
Machine Learning meets DevOpsPooyan Jamshidi
 
An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...
An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...
An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...Pooyan Jamshidi
 

More from Pooyan Jamshidi (20)

Learning LWF Chain Graphs: A Markov Blanket Discovery Approach
Learning LWF Chain Graphs: A Markov Blanket Discovery ApproachLearning LWF Chain Graphs: A Markov Blanket Discovery Approach
Learning LWF Chain Graphs: A Markov Blanket Discovery Approach
 
A Framework for Robust Control of Uncertainty in Self-Adaptive Software Conn...
 A Framework for Robust Control of Uncertainty in Self-Adaptive Software Conn... A Framework for Robust Control of Uncertainty in Self-Adaptive Software Conn...
A Framework for Robust Control of Uncertainty in Self-Adaptive Software Conn...
 
Machine Learning Meets Quantitative Planning: Enabling Self-Adaptation in Aut...
Machine Learning Meets Quantitative Planning: Enabling Self-Adaptation in Aut...Machine Learning Meets Quantitative Planning: Enabling Self-Adaptation in Aut...
Machine Learning Meets Quantitative Planning: Enabling Self-Adaptation in Aut...
 
Ensembles of Many Diverse Weak Defenses can be Strong: Defending Deep Neural ...
Ensembles of Many Diverse Weak Defenses can be Strong: Defending Deep Neural ...Ensembles of Many Diverse Weak Defenses can be Strong: Defending Deep Neural ...
Ensembles of Many Diverse Weak Defenses can be Strong: Defending Deep Neural ...
 
Transfer Learning for Performance Analysis of Machine Learning Systems
Transfer Learning for Performance Analysis of Machine Learning SystemsTransfer Learning for Performance Analysis of Machine Learning Systems
Transfer Learning for Performance Analysis of Machine Learning Systems
 
Transfer Learning for Performance Analysis of Configurable Systems: A Causal ...
Transfer Learning for Performance Analysis of Configurable Systems:A Causal ...Transfer Learning for Performance Analysis of Configurable Systems:A Causal ...
Transfer Learning for Performance Analysis of Configurable Systems: A Causal ...
 
Machine Learning meets DevOps
Machine Learning meets DevOpsMachine Learning meets DevOps
Machine Learning meets DevOps
 
Learning to Sample
Learning to SampleLearning to Sample
Learning to Sample
 
Integrated Model Discovery and Self-Adaptation of Robots
Integrated Model Discovery and Self-Adaptation of RobotsIntegrated Model Discovery and Self-Adaptation of Robots
Integrated Model Discovery and Self-Adaptation of Robots
 
Transfer Learning for Performance Analysis of Highly-Configurable Software
Transfer Learning for Performance Analysis of Highly-Configurable SoftwareTransfer Learning for Performance Analysis of Highly-Configurable Software
Transfer Learning for Performance Analysis of Highly-Configurable Software
 
Architectural Tradeoff in Learning-Based Software
Architectural Tradeoff in Learning-Based SoftwareArchitectural Tradeoff in Learning-Based Software
Architectural Tradeoff in Learning-Based Software
 
Production-Ready Machine Learning for the Software Architect
Production-Ready Machine Learning for the Software ArchitectProduction-Ready Machine Learning for the Software Architect
Production-Ready Machine Learning for the Software Architect
 
Transfer Learning for Software Performance Analysis: An Exploratory Analysis
Transfer Learning for Software Performance Analysis: An Exploratory AnalysisTransfer Learning for Software Performance Analysis: An Exploratory Analysis
Transfer Learning for Software Performance Analysis: An Exploratory Analysis
 
Architecting for Scale
Architecting for ScaleArchitecting for Scale
Architecting for Scale
 
Learning Software Performance Models for Dynamic and Uncertain Environments
Learning Software Performance Models for Dynamic and Uncertain EnvironmentsLearning Software Performance Models for Dynamic and Uncertain Environments
Learning Software Performance Models for Dynamic and Uncertain Environments
 
Sensitivity Analysis for Building Adaptive Robotic Software
Sensitivity Analysis for Building Adaptive Robotic SoftwareSensitivity Analysis for Building Adaptive Robotic Software
Sensitivity Analysis for Building Adaptive Robotic Software
 
Transfer Learning for Improving Model Predictions in Highly Configurable Soft...
Transfer Learning for Improving Model Predictions in Highly Configurable Soft...Transfer Learning for Improving Model Predictions in Highly Configurable Soft...
Transfer Learning for Improving Model Predictions in Highly Configurable Soft...
 
Transfer Learning for Improving Model Predictions in Robotic Systems
Transfer Learning for Improving Model Predictions  in Robotic SystemsTransfer Learning for Improving Model Predictions  in Robotic Systems
Transfer Learning for Improving Model Predictions in Robotic Systems
 
Machine Learning meets DevOps
Machine Learning meets DevOpsMachine Learning meets DevOps
Machine Learning meets DevOps
 
An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...
An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...
An Uncertainty-Aware Approach to Optimal Configuration of Stream Processing S...
 

Recently uploaded

The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxRTS corp
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profileakrivarotava
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesKrzysztofKkol1
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 

Recently uploaded (20)

The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profile
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 

Migrating to Cloud-Native Architectures Using Microservices: An Experience Report

  • 1. Migrating to Cloud-Native Architectures Using Microservices: an Experience Report Armin Balalaie, Abbas Heydarnoori Sharif University of Technology Pooyan Jamshidi Imperial College London
  • 3. Developing a single application as a suite of small services Source: http://martinfowler.com/articles/microservices.html
  • 4. Services are built around business capabilities Source: http://martinfowler.com/articles/microservices.html
  • 5. Services are independently deployable by fully automated deployment machinery Source: http://martinfowler.com/articles/microservices.html
  • 6. Feedback to Dev is necessary from Ops and Micro-services facilitate it • Micro-services as native cloud architecture that enable DevOps • Performance-aware DevOps • Design-time performance models • Performance monitoring • Performance change detection • Performance anti-patterns detection • Evolution: Filling the gap between Dev and Ops • Software Architecture Optimization for Performance • Resource provisioning and management More details on “performance-oriented DevOps” published by SPEC Research Group on DevOps: https://research.spec.org/news/single-view/article/technical-report-on-performance-oriented-devops- published.html
  • 7. There is a bare minimum of centralized management of the services (Polyglot-ness) Source: http://martinfowler.com/articles/microservices.html
  • 8. SSaaS (Server Side as a Service) A platform that makes mobile application development easier
  • 9. Features of SSaaS • Mobile application developers can use server-side capabilities without knowing any server-side programming languages • RDBMS as a Service • Define data models in SSaaS dashboard • Use the models’ objects in mobile application development • Built-in user management • Chat as a Service • Integration with RDBMSaaS user authentication
  • 10. Architecture of SSaaS before the migration
  • 11. Reasons for migration • On-demand capability of Chat as a Service • The need for a reusable resource manager • Management of resources like relational database instances, e.g. MySQL database. • The need for decentralized data governance • Chat service’s metadata needed a dedicated place • The need for automated deployment • The need for built-in scalability
  • 14. Preparing the Continuous Integration Pipeline
  • 20. Introducing ChatServices and DeveloperInfoServices
  • 22. Lessons Learned Experiences in migrating to microservices
  • 23. Deployment in the development environment is difficult for a typical developer
  • 24. Service contracts are double important
  • 27. The research on Micro-services has started only in 2015, Plenty of opportunities ahead! 1. Kratzke, N.: About microservices, containers and their underestimated impact on network performance. CLOUD (March 2015) 2. Levcovitz, A., Terra, R., Valente, M.T.: Towards a technique for extracting microservices from monolithic enterprise systems. VEM (September 2015) 3. Rahman, M., Gao, J.: A reusable automated acceptance testing architecture for microservices in behavior-driven development. SOSE(March 2015) 4. Stubbs, J., Moreira, W., Dooley, R.: Distributed systems of microservices using docker and serfnode. IWSG (June 2015) 5. Viennot, N., L´ ecuyer, M., Bell, J., Geambasu, R., Nieh, J.: Synapse: A microservices architecture for heterogeneous-database web applications. EuroSys. (April 2015) More details? http://arxiv.org/abs/1507.08217
  • 28. Our current agenda! • Migration patterns for micro-services • Architectural tactics • Situational method engineering for extracting common reusable practices • Method chunks • Pattern template for documenting practices • Migration patterns vs. design patterns
  • 30. Cloud Migration through Pattern Composition • The migration patterns can be seen as a sequence of activities by which an application is gradually migrated to the micro-services. • The migration patterns can be composed (i.e., executed sequentially) to move a monolithic application to micro-services.
  • 31. Migration Pattern Selection Objective MP1 MP2 MP3 MP4 MP5 MP6 MP7 MP8 MP9 MP10 MP11 MP12 MP13 MP14 MP15 Time to market -- -- -- -- -- New capabilities -- -- -- -- Reduce operational cost -- -- -- -- -- -- Leverage investments -- -- -- Free up on-premise resources Scalability -- -- -- -- -- -- -- Operational efficiency -- -- -- -- -- -- -- -- Re-host Cloudification Relocation Refactor Rebinding Replacement Modernization
  • 32. Assembly-based Situational Migration Objective MP1 MP2 MP3 MP4 MP5 MP6 MP7 MP8 MP9 MP10 MP11 MP12 MP13 M P14 MP15 Time to market -- -- -- -- -- New capabilities -- -- -- -- -- Reduce operational cost -- -- -- -- -- -- -- Leverage investments -- -- -- -- -- -- Free up on premise resources Scalability -- -- -- -- -- -- -- Operational efficiency -- -- -- -- -- -- -- --
  • 33. Assembly-based Migration Plan Construction Objective M P1 MP2 M P3 M P4 MP5 M P6 M P7 MP8 M P9 M P10 M P11 MP12 M P13 MP14 M P15 Time to market -- -- -- -- -- New capabilities -- -- -- -- -- Reduce operational cost -- -- -- -- -- -- -- Leverage investments -- -- -- -- -- -- Free up on premise resources Scalability -- -- -- -- -- -- -- Operational efficiency -- -- -- -- -- -- -- --
  • 35. Migration Patterns in the context of Cloud-RMM P. Jamshidi, A. Ahmad, C. Pahl, "Cloud Migration Research: A Systematic Review", IEEE Transactions on Cloud Computing, 2013, DOI:10.1109/TCC.2013.10. Migration patterns Primarily facilitate planning Enable Auto-Deployment of Multi-Tier Systems in Hybrid Cloud Environment
  • 36. Developing a single application as a suite of small services Source: http://martinfowler.com/articles/microservices.html Architecture of SSaaS before the migration Target Architecture of SSaaS Clusterization Services are built around business capabilities Source: http://martinfowler.com/articles/microservices.html Services are independently deployable by fully automated deployment machinery Source: http://martinfowler.com/articles/microservices.html There is a bare minimum of centralized management of the services (Polyglot-ness) Source: http://martinfowler.com/articles/microservices.html Transforming DeveloperData to a Service Introducing Continuous Delivery Introducing Edge Server Introducing Dynamic Service Collaboration Introducing Resource Manager Deployment in the development environment is difficult for a typical developer Service contracts are double important Distributed system development needs skilled developers Creating service development templates is important

Editor's Notes

  1. Describe differences between monolithic and microservices architecture in terms of number of services and scalability mechanisms
  2. Describe how microservices creates vertical layers both in team formation and architecture and every service needs a dedicated team to deliver a business capability completely.
  3. Describe the need for Continuous Delivery in microservices due to an increase in the number of services
  4. Describe how microservices enable polyglot-ness in both data storages and programming languages
  5. Describe SSaaS as a Mobile Backend as a Service through which mobile development time will be reduced and briefly mention its features
  6. Briefly describe the high-level components of SSaaS and their duties.
  7. Describe why a migration to microservices was needed for SSaaS
  8. Describe the necessity of defining a target architecture before executing the migration and briefly describe the new components that was needed for SSaaS migration including both supporting components and ones that have appeared as a result of re-architecting the system.
  9. Highlight the necessity of CD for a good microservices again. Describe CI as a starting point for CD. Explain why Containerization is a good option for deployment of microservices.
  10. Describe how DeveloperData transformed from an Integration Database to an Application Database and dependencies shifted from method-level to service-level
  11. Desribe separation of code and config as a best practice in CD that is achieved by using Configuration Server. In this step a full pipeline (with docker image creation) has been created for each service and deployment is automatic in a single server.
  12. Describe the importance of introducing an Edge Server in order to hide the future internal changes from end users
  13. Explain the importance of dynamic discovery of services and load balancing due to the increase in the number of services and describe the corresponding components
  14. Describe the importance of ResourceManager for reserving database instances for RDBMS and Chat services.
  15. Describe how DeveloperData re-architected for introducing these new services.
  16. Describe how CoreOS and Kubernetes used to deploy each service on a cluster
  17. Supporting components and depending services should be deployed and it is a lot
  18. There are more services in the system and each one can evolve independently. Inter-team communication and techniques like Tolerant Reader are important so as to not break the system
  19. Microservices involves distributed development. The team should be familiar with distribution. A typical example is defining states without knowing its side effects
  20. It is good to have controlled polyglot-ness so as to increase the speed of development. These can be gained using service initiation templates for different languages and data stores.