SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
An architectural pattern is a general, reusable solution to a
commonly occurring problem in software architecture within a
given context
- Wikipedia
COMMON ARCHITECTURAL PATTERNS
• Event-driven
• Peer-to-peer
• Service-oriented
• Monolithic
• Micro-services
• Etc.
ARCHITECTURAL PATTERNS
A critical analysis on when and how to embrace
Microservices
Asiri Liyanage
Senior Software Architect – Sysco
LABS
Are You Ready for Microservices?
Are You Ready for Microservices?
• Inception and growth of an application
• How to identify a MS
• Things to be considered when moving to MS
• Things to be careful of
AGENDA
Growth of an Application
• MVP
• Add components one by one
• All the logical components are
bundled together
SYSTEM GROWTH
Source: Reactive-ms-architecture by Jonas Bonér
Feel the pain?
• Have to have large infra, just to cater a
small to medium app
• Hard to maintain
• Release cycle is too lengthy, have to build-
deploy entire app
• Too much of testing
↳ Unit testing? integration, performance, load
↳ Small code changes, huge test cycle
↳ No automation!!!
↳ No-trust on the codebase or application as a whole
(fear of code changes)
• Tied to a single language
• That technology suits better than the current
technology for the new task!
MONOLITH
source: http://bits.citrusbyte.com/microservices/
PROPERTIES OF MICROSERVICES
• Enables Smaller Code Bases
• Small/focused services
with meaningful functionality, using
the best technology for the job
• Encapsulated Data
↳ Own Datasource
• Can have different technology stacks
• Many small teams
MICROSERVICES
https://dzone.com/articles/what-are-
microservices-actually
PROPERTIES OF MICROSERVICES
• Can be scaled independently.
• Independently Deployable
↳ Service Instance per VM
↳ Service Instance per container
↳ Serverless deployment
MICROSERVICES
Source: http://danielcoding.net/wp-content/uploads/2016/08/load-balancer.png
Deployment
Instance per VM
Instance per Container
source: https://dzone.com/articles/why-container-based-deployment-is-preferred-for-mi
As application complexity rises, start breaking the
system
• Identify areas where you could break the application into smaller components
source: https://cdn.thinglink.me/api/image/936871655911718915/1240/10/scaletowidth
STEP INTO THE GAME
How to start?
• Start breaking the system into small
components
• has its own data source
↳ Small code base
• Can be written in the correct language
of choice
• Remember properties of MS?
STEP INTO THE GAME
source: http://bits.citrusbyte.com/microservices/
DIFFICULTIES ON STARTING AT THE
INCEPTION!
• Trial and error period with lot of uncertainty
• Many integration points
• Development and Debugging issues,
↳ Testing challenges
↳ Might lead to redundant implementations
↳ Versioning nightmare!
• No domain specialty
• Application (at least UI) consistency, data
and txn consistency, security, performance
• Many instances (or containers) have to be maintained
• For a startup, this may be an overkill
WHY NOT AT THE START OF THE APPLICATION DEVELOPMENT?
FOR A MATURED ORGANIZATION
• Integration points are handled through
different means (e.g.: API Gateways,
ESBs, etc)
• Domain specialty is there
↳ There is a matured team who understands the
technology as well the domain
• Controlled by processes
• Development, Deployment practices (CI / CD)
• Dev Ops culture etc.
↳ Engineering process
• Specialty in technology
ARE YOU READY?
source: https://martinfowler.com/bliki/images/microservice-
verdict/productivity.png
FOR A MATURED ORGANIZATION
• Central logging frameworks like graylog, logstash etc
↳ Helpful in Debugging and monitoring
• Proper versioning practices
↳ Can use semantic versioning x.x.x
↳ or duals
• Controlled through governance
↳ Maintain contracts
↳ Easy to fix bugs in the component
• For new features and enhancements, micro-services may
sound perfect for a matured organization
ARE YOU READY?
WHAT OTHER THINGS TO CONSIDER?
• API Gateway – fault-tolerant APIs
↳ Circuit-breaker pattern
• Design for auto-scaling
↳ Local status should not be
maintained
↳ Co-relation IDs
• Containerization
• Asynchronous message passing
ADDITIONAL THINGS THAT GO HAND IN HAND WITH
MICROSERVICES
Source: http://bit.ly/2xoUmzG
Don't even consider microservices unless you have a
system that's too complex to manage as a monolith.
- Martin Fowler
Be Careful
• Distributed systems are prone to
failures
• Eventual consistency - may be suitable
for FB but not for a payment app!
• Complexity in dependency
management, testing and debugging
• Complexity in release management
• Cost - if not properly designed, might
lead to higher costs
THINGS TO REMEMBER
Source: http://bit.ly/2h6m4rj
Be Careful
• Serialization between microservices
• Additional complexity in testing a
distributed system
• Increased complexity in deployment
• Increased network communication
• Skill of the team matters
• Microservices is NOT the only choice!
THINGS TO REMEMBER
Source: http://bit.ly/2wZYhn0
Thank you

Contenu connexe

Tendances

Comparing open source private cloud platforms
Comparing open source private cloud platformsComparing open source private cloud platforms
Comparing open source private cloud platformsOSCON Byrum
 
What is Docker Architecture | Edureka
What is Docker Architecture | EdurekaWhat is Docker Architecture | Edureka
What is Docker Architecture | EdurekaEdureka!
 
Kubescape single pane of glass
Kubescape   single pane of glassKubescape   single pane of glass
Kubescape single pane of glassLibbySchulze1
 
Securing an Azure full-PaaS architecture - Data saturday #0001 Pordenone
Securing an Azure full-PaaS architecture - Data saturday #0001 PordenoneSecuring an Azure full-PaaS architecture - Data saturday #0001 Pordenone
Securing an Azure full-PaaS architecture - Data saturday #0001 PordenoneMarco Obinu
 
Moving Applications into Azure Kubernetes
Moving Applications into Azure KubernetesMoving Applications into Azure Kubernetes
Moving Applications into Azure KubernetesHussein Salman
 
Azure Nights August2017
Azure Nights August2017Azure Nights August2017
Azure Nights August2017Michael Frank
 
Azure vidyapeeth -Introduction to Azure Container Service & Registry Service
Azure vidyapeeth -Introduction to Azure Container Service & Registry ServiceAzure vidyapeeth -Introduction to Azure Container Service & Registry Service
Azure vidyapeeth -Introduction to Azure Container Service & Registry ServiceIlyas F ☁☁☁
 
Azure Site Recovery Loves Business Continuity
Azure Site Recovery Loves Business ContinuityAzure Site Recovery Loves Business Continuity
Azure Site Recovery Loves Business ContinuityMichael Frank
 
Bas 5676-java ee 8 introduction
Bas 5676-java ee 8 introductionBas 5676-java ee 8 introduction
Bas 5676-java ee 8 introductionKevin Sutter
 
Azure virtual machine-network
Azure virtual machine-networkAzure virtual machine-network
Azure virtual machine-networkThi Nguyen Dinh
 
El camino a las Cloud Native Apps - Application modernization on Azure with c...
El camino a las Cloud Native Apps - Application modernization on Azure with c...El camino a las Cloud Native Apps - Application modernization on Azure with c...
El camino a las Cloud Native Apps - Application modernization on Azure with c...Plain Concepts
 
Azure Design Review Checklist Availabilityの巻
Azure Design Review Checklist Availabilityの巻Azure Design Review Checklist Availabilityの巻
Azure Design Review Checklist Availabilityの巻Toru Makabe
 
Lessons from migrating container applications to azure
Lessons from migrating container applications to azureLessons from migrating container applications to azure
Lessons from migrating container applications to azureChristoph Schittko
 
Kubernetes in Azure
Kubernetes in AzureKubernetes in Azure
Kubernetes in AzureKarl Ots
 
Hybris install telco accelerators on aws-ec2
Hybris   install telco accelerators on aws-ec2Hybris   install telco accelerators on aws-ec2
Hybris install telco accelerators on aws-ec2Venugopal Gummadala
 
RBAC in Azure Kubernetes Service AKS
RBAC in Azure Kubernetes Service AKSRBAC in Azure Kubernetes Service AKS
RBAC in Azure Kubernetes Service AKSEmad Alashi
 
VMware on IBM Cloud Client Presentation
VMware on IBM Cloud Client PresentationVMware on IBM Cloud Client Presentation
VMware on IBM Cloud Client PresentationSumaya Erol
 

Tendances (20)

Comparing open source private cloud platforms
Comparing open source private cloud platformsComparing open source private cloud platforms
Comparing open source private cloud platforms
 
What is Docker Architecture | Edureka
What is Docker Architecture | EdurekaWhat is Docker Architecture | Edureka
What is Docker Architecture | Edureka
 
Kubescape single pane of glass
Kubescape   single pane of glassKubescape   single pane of glass
Kubescape single pane of glass
 
Securing an Azure full-PaaS architecture - Data saturday #0001 Pordenone
Securing an Azure full-PaaS architecture - Data saturday #0001 PordenoneSecuring an Azure full-PaaS architecture - Data saturday #0001 Pordenone
Securing an Azure full-PaaS architecture - Data saturday #0001 Pordenone
 
Moving Applications into Azure Kubernetes
Moving Applications into Azure KubernetesMoving Applications into Azure Kubernetes
Moving Applications into Azure Kubernetes
 
Azure Nights August2017
Azure Nights August2017Azure Nights August2017
Azure Nights August2017
 
Development and Test on AWS
Development and Test on AWSDevelopment and Test on AWS
Development and Test on AWS
 
Azure vidyapeeth -Introduction to Azure Container Service & Registry Service
Azure vidyapeeth -Introduction to Azure Container Service & Registry ServiceAzure vidyapeeth -Introduction to Azure Container Service & Registry Service
Azure vidyapeeth -Introduction to Azure Container Service & Registry Service
 
Azure Site Recovery Loves Business Continuity
Azure Site Recovery Loves Business ContinuityAzure Site Recovery Loves Business Continuity
Azure Site Recovery Loves Business Continuity
 
Bas 5676-java ee 8 introduction
Bas 5676-java ee 8 introductionBas 5676-java ee 8 introduction
Bas 5676-java ee 8 introduction
 
Azure virtual machine-network
Azure virtual machine-networkAzure virtual machine-network
Azure virtual machine-network
 
Microservices
MicroservicesMicroservices
Microservices
 
El camino a las Cloud Native Apps - Application modernization on Azure with c...
El camino a las Cloud Native Apps - Application modernization on Azure with c...El camino a las Cloud Native Apps - Application modernization on Azure with c...
El camino a las Cloud Native Apps - Application modernization on Azure with c...
 
Azure Design Review Checklist Availabilityの巻
Azure Design Review Checklist Availabilityの巻Azure Design Review Checklist Availabilityの巻
Azure Design Review Checklist Availabilityの巻
 
Lessons from migrating container applications to azure
Lessons from migrating container applications to azureLessons from migrating container applications to azure
Lessons from migrating container applications to azure
 
Microsoft cloud stack
Microsoft cloud stackMicrosoft cloud stack
Microsoft cloud stack
 
Kubernetes in Azure
Kubernetes in AzureKubernetes in Azure
Kubernetes in Azure
 
Hybris install telco accelerators on aws-ec2
Hybris   install telco accelerators on aws-ec2Hybris   install telco accelerators on aws-ec2
Hybris install telco accelerators on aws-ec2
 
RBAC in Azure Kubernetes Service AKS
RBAC in Azure Kubernetes Service AKSRBAC in Azure Kubernetes Service AKS
RBAC in Azure Kubernetes Service AKS
 
VMware on IBM Cloud Client Presentation
VMware on IBM Cloud Client PresentationVMware on IBM Cloud Client Presentation
VMware on IBM Cloud Client Presentation
 

Similaire à Are you ready for Microservices

ThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.jsThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.jsBrad Williams
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolithMarkus Eisele
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolithMarkus Eisele
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesMahmoudZidan41
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science PlatformDecision Science Community
 
Modernizing Applications with Microservices
Modernizing Applications with MicroservicesModernizing Applications with Microservices
Modernizing Applications with MicroservicesMarkus Eisele
 
Grokking microservices in 5 minutes
Grokking microservices in 5 minutesGrokking microservices in 5 minutes
Grokking microservices in 5 minutesAndrew Siemer
 
Operationalizing Docker at Scale: Lessons from Running Microservices in Produ...
Operationalizing Docker at Scale: Lessons from Running Microservices in Produ...Operationalizing Docker at Scale: Lessons from Running Microservices in Produ...
Operationalizing Docker at Scale: Lessons from Running Microservices in Produ...SignalFx
 
Evolving your Architecture to MicroServices
Evolving your Architecture to MicroServicesEvolving your Architecture to MicroServices
Evolving your Architecture to MicroServicesHector Tapia
 
JAX 2014 - The PaaS to a better IT architecture.
JAX 2014 - The PaaS to a better IT architecture.JAX 2014 - The PaaS to a better IT architecture.
JAX 2014 - The PaaS to a better IT architecture.Sebastian Faulhaber
 
Monoliths, Myths, and Microservices - CfgMgmtCamp
Monoliths, Myths, and Microservices - CfgMgmtCampMonoliths, Myths, and Microservices - CfgMgmtCamp
Monoliths, Myths, and Microservices - CfgMgmtCampMichael Ducy
 
Serverless microservices
Serverless microservicesServerless microservices
Serverless microservicesLalit Kale
 
Transforming to Microservices
Transforming to MicroservicesTransforming to Microservices
Transforming to MicroservicesKyle Brown
 
Accelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and KubernetesAccelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and KubernetesRick Hightower
 
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...Lightbend
 
Exploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscapeExploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscapeAlex Thissen
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern LaunguageInho Kang
 

Similaire à Are you ready for Microservices (20)

ThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.jsThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.js
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Webinar : Microservices and Containerization
Webinar : Microservices and ContainerizationWebinar : Microservices and Containerization
Webinar : Microservices and Containerization
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
 
Microservices
MicroservicesMicroservices
Microservices
 
Modernizing Applications with Microservices
Modernizing Applications with MicroservicesModernizing Applications with Microservices
Modernizing Applications with Microservices
 
Grokking microservices in 5 minutes
Grokking microservices in 5 minutesGrokking microservices in 5 minutes
Grokking microservices in 5 minutes
 
Microservice intro
Microservice introMicroservice intro
Microservice intro
 
Operationalizing Docker at Scale: Lessons from Running Microservices in Produ...
Operationalizing Docker at Scale: Lessons from Running Microservices in Produ...Operationalizing Docker at Scale: Lessons from Running Microservices in Produ...
Operationalizing Docker at Scale: Lessons from Running Microservices in Produ...
 
Evolving your Architecture to MicroServices
Evolving your Architecture to MicroServicesEvolving your Architecture to MicroServices
Evolving your Architecture to MicroServices
 
JAX 2014 - The PaaS to a better IT architecture.
JAX 2014 - The PaaS to a better IT architecture.JAX 2014 - The PaaS to a better IT architecture.
JAX 2014 - The PaaS to a better IT architecture.
 
Monoliths, Myths, and Microservices - CfgMgmtCamp
Monoliths, Myths, and Microservices - CfgMgmtCampMonoliths, Myths, and Microservices - CfgMgmtCamp
Monoliths, Myths, and Microservices - CfgMgmtCamp
 
Serverless microservices
Serverless microservicesServerless microservices
Serverless microservices
 
Transforming to Microservices
Transforming to MicroservicesTransforming to Microservices
Transforming to Microservices
 
Accelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and KubernetesAccelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and Kubernetes
 
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
 
Exploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscapeExploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscape
 
Microservice Pattern Launguage
Microservice Pattern LaunguageMicroservice Pattern Launguage
Microservice Pattern Launguage
 

Dernier

Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdfAndrey Devyatkin
 
Advantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxAdvantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxRTS corp
 
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
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...OnePlan Solutions
 
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
 
Effort Estimation Techniques used in Software Projects
Effort Estimation Techniques used in Software ProjectsEffort Estimation Techniques used in Software Projects
Effort Estimation Techniques used in Software ProjectsDEEPRAJ PATHAK
 
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...kalichargn70th171
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
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
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfkalichargn70th171
 
Understanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptxUnderstanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptxSasikiranMarri
 
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
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdfSteve Caron
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
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
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 

Dernier (20)

Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
2024-04-09 - From Complexity to Clarity - AWS Summit AMS.pdf
 
Advantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxAdvantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptx
 
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 ?
 
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
Revolutionizing the Digital Transformation Office - Leveraging OnePlan’s AI a...
 
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
 
Effort Estimation Techniques used in Software Projects
Effort Estimation Techniques used in Software ProjectsEffort Estimation Techniques used in Software Projects
Effort Estimation Techniques used in Software Projects
 
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
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
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
 
Understanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptxUnderstanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptx
 
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
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
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
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 

Are you ready for Microservices

  • 1.
  • 2. An architectural pattern is a general, reusable solution to a commonly occurring problem in software architecture within a given context - Wikipedia
  • 3. COMMON ARCHITECTURAL PATTERNS • Event-driven • Peer-to-peer • Service-oriented • Monolithic • Micro-services • Etc. ARCHITECTURAL PATTERNS
  • 4. A critical analysis on when and how to embrace Microservices Asiri Liyanage Senior Software Architect – Sysco LABS Are You Ready for Microservices?
  • 5. Are You Ready for Microservices? • Inception and growth of an application • How to identify a MS • Things to be considered when moving to MS • Things to be careful of AGENDA
  • 6. Growth of an Application • MVP • Add components one by one • All the logical components are bundled together SYSTEM GROWTH Source: Reactive-ms-architecture by Jonas Bonér
  • 7. Feel the pain? • Have to have large infra, just to cater a small to medium app • Hard to maintain • Release cycle is too lengthy, have to build- deploy entire app • Too much of testing ↳ Unit testing? integration, performance, load ↳ Small code changes, huge test cycle ↳ No automation!!! ↳ No-trust on the codebase or application as a whole (fear of code changes) • Tied to a single language • That technology suits better than the current technology for the new task! MONOLITH source: http://bits.citrusbyte.com/microservices/
  • 8. PROPERTIES OF MICROSERVICES • Enables Smaller Code Bases • Small/focused services with meaningful functionality, using the best technology for the job • Encapsulated Data ↳ Own Datasource • Can have different technology stacks • Many small teams MICROSERVICES https://dzone.com/articles/what-are- microservices-actually
  • 9. PROPERTIES OF MICROSERVICES • Can be scaled independently. • Independently Deployable ↳ Service Instance per VM ↳ Service Instance per container ↳ Serverless deployment MICROSERVICES Source: http://danielcoding.net/wp-content/uploads/2016/08/load-balancer.png
  • 10. Deployment Instance per VM Instance per Container source: https://dzone.com/articles/why-container-based-deployment-is-preferred-for-mi
  • 11. As application complexity rises, start breaking the system • Identify areas where you could break the application into smaller components source: https://cdn.thinglink.me/api/image/936871655911718915/1240/10/scaletowidth STEP INTO THE GAME
  • 12. How to start? • Start breaking the system into small components • has its own data source ↳ Small code base • Can be written in the correct language of choice • Remember properties of MS? STEP INTO THE GAME source: http://bits.citrusbyte.com/microservices/
  • 13. DIFFICULTIES ON STARTING AT THE INCEPTION! • Trial and error period with lot of uncertainty • Many integration points • Development and Debugging issues, ↳ Testing challenges ↳ Might lead to redundant implementations ↳ Versioning nightmare! • No domain specialty • Application (at least UI) consistency, data and txn consistency, security, performance • Many instances (or containers) have to be maintained • For a startup, this may be an overkill WHY NOT AT THE START OF THE APPLICATION DEVELOPMENT?
  • 14. FOR A MATURED ORGANIZATION • Integration points are handled through different means (e.g.: API Gateways, ESBs, etc) • Domain specialty is there ↳ There is a matured team who understands the technology as well the domain • Controlled by processes • Development, Deployment practices (CI / CD) • Dev Ops culture etc. ↳ Engineering process • Specialty in technology ARE YOU READY? source: https://martinfowler.com/bliki/images/microservice- verdict/productivity.png
  • 15. FOR A MATURED ORGANIZATION • Central logging frameworks like graylog, logstash etc ↳ Helpful in Debugging and monitoring • Proper versioning practices ↳ Can use semantic versioning x.x.x ↳ or duals • Controlled through governance ↳ Maintain contracts ↳ Easy to fix bugs in the component • For new features and enhancements, micro-services may sound perfect for a matured organization ARE YOU READY?
  • 16. WHAT OTHER THINGS TO CONSIDER? • API Gateway – fault-tolerant APIs ↳ Circuit-breaker pattern • Design for auto-scaling ↳ Local status should not be maintained ↳ Co-relation IDs • Containerization • Asynchronous message passing ADDITIONAL THINGS THAT GO HAND IN HAND WITH MICROSERVICES Source: http://bit.ly/2xoUmzG
  • 17. Don't even consider microservices unless you have a system that's too complex to manage as a monolith. - Martin Fowler
  • 18. Be Careful • Distributed systems are prone to failures • Eventual consistency - may be suitable for FB but not for a payment app! • Complexity in dependency management, testing and debugging • Complexity in release management • Cost - if not properly designed, might lead to higher costs THINGS TO REMEMBER Source: http://bit.ly/2h6m4rj
  • 19. Be Careful • Serialization between microservices • Additional complexity in testing a distributed system • Increased complexity in deployment • Increased network communication • Skill of the team matters • Microservices is NOT the only choice! THINGS TO REMEMBER Source: http://bit.ly/2wZYhn0

Notes de l'éditeur

  1. Revisit on MS
  2. Revisit on MS