SlideShare a Scribd company logo
1 of 29
Download to read offline
Introduction to Reactive
Microservices Architecture
Richard Langlois P. Eng.
Solutions Architect
12 juillet 2016
 Microservices / Reactive
 Change in the organization
 Amazon.ca using Microservices
 Service Scalability
 Failure Isolation: Circuit Breaker, Bulkhead, Back Pressure
 Service Discovery
 Versioning
 Netflix Stack
12 juillet 2016
Agenda
 Monolith:
 Legacy enterprise applications are big monolith
 If service fails, everything stops working.
 Have to scale everything together
 Hard to maintain
 Hard to understand
 Any change requires a scary big deploy
 Service-Oriented Architecture (SOA):
 Multiple services collaborate to provide some capabilities
 Issue with communication protocol (SOAP), vendor
middleware (ESB), service granularity, lack of guidance
12 juillet 2016
Monolith -> SOA -> Microservices
 System composed of a set of small, isolated services
 Services:
 Have single area of responsibility, do one thing well
 Autonomous, deployed as isolated service
 Boundary is business boundary
 Communication between services via network calls (e.g.
REST over HTTP).
 Exposes an Application Programming interface (API)
 Golden rule: Able to make a change to a service and deploy
it by itself without changing anything else?
12 juillet 2016
What is a Microservices based System
12 juillet 2016
Monolith versus Microservices
 Reactive system is Responsive, Resilient, Elastic and Message Driven
 Responsive: System responds in a timely manner.
 Resilient: System stays responsive in the face of failure.
 Elastic: The system stays responsive under varying workload.
 Message Driven: Rely on asynchronous message-passing.
12 juillet 2016
What is a Reactive System
 Technology Heterogeneity: right technology for each job
 Resilience: failure does not cascade
 Scaling: can just scale those services that need scaling
 Ease of Deployment: change to a single service / deploy it
 Organizational Alignment: architecture aligned to
organization
 Optimized for Replaceability: being small in size, the cost
to replace them is small
12 juillet 2016
Key Benefits of Microservices
 Monolithic:
 organization built around functional team (QA, Dev, Product Owner)
 Silo teams
 Cons: communication problems, many meetings, dependencies, us vs. them
 Microservices:
 organization built around cross-functional team
 Built around business needs, decision is made faster
 Code is shipped faster
 Team owns a product: create, maintain.
 Effective communication: right information goes to right place, right time
12 juillet 2016
Changes in the Organization
 Web page Amazon.ca composed of 11 microservices
12 juillet 2016
Amazon.com using Microservices
12 juillet 2016
Services serving up UI components
12 juillet 2016
API Gateway
12 juillet 2016
Backends for Frontends (BFF)
 Scaling: transformation that enlarges or diminishes.
 Vertical scaling (Scale Up):
 increase the capacity of existing system by adding more
powerful hardware
 Cons: Additional investment, Single Point of Failure
 Horizontal scaling (Scale Down):
 Adds extra identical boxes to server
 Cons: Requires Load balancer for managing connection
12 juillet 2016
Service Scalability
12 juillet 2016
Vertical vs Horizontal Scaling
 keep a failure in one part of the system from
destroying everything
 Cascading failure : occurs when failure jumps from
one system to another
 Preventing cascading failure is key to resilience
 Some patterns:
 Bulkhead
 Circuit Breaker
 Back-Pressure
12 juillet 2016
Failure Isolation
 In ship building, bulkhead is a part of the ship that can be sealed off to
protect the rest of the ship
 Example of bulkhead:
 Separate connection pools for each downstream connection
 Physical redundancy : 4 independent servers for a service, then
failure of one can’t affect the others
 Logical redundancy: 4 application instances running on a server,
one crash, system still running
12 juillet 2016
Bulkhead
12 juillet 2016
Bulkhead (Continued)
12 juillet 2016
So why Titanic sank?
 Wraps a component that can circumvent calls when the component is
not healthy.
 Prevent operations rather than re-execute them.
 Closed state: circuit breaker executes operations as usual.
 Open state: calls to the circuit beaker fail immediately.
 Half-Open state: next call is allowed to go through, if succeeds,
returns to Close state, if fails, returns to Open state.
 Automatic mechanism to seal a bulkhead
 Protects the consumer from downstream problem
 Protects the downstream service from more calls
 Recommend circuit breakers for all synchronous downstream calls
 Available products: Netflix Hystrix
12 juillet 2016
Circuit Breaker
12 juillet 2016
Circuit Breaker (Continued)
 Mechanism ensuring that a fast system can’t overload its
slower counterpart.
 If a service gets overloaded, it does not become
unresponsive, it sends “currently unavailable” messages so
upstream clients and services can route around it.
 Supported by Reactive Streams specification
 Products: Akka Streams, RxJava, Spark Streaming, Cassandra
drivers
12 juillet 2016
Back pressure
12 juillet 2016
Back Pressure (continued)
 Service needs to know the other service’s address
1. A service registers itself to Service Registry
2. Client uses Service Registry to lookup the service address
3. Client uses this address to call the service
 Products: Netflix Eureka, ZooKeeper, etcd
12 juillet 2016
Service Discovery
 Happens when interface of a service changes
1. Coexist both the old and new interfaces in the service
2. Allows consumers to migrate gradually
3. Delete old interface when no longer used
 Version number in request headers or in URL
 E.g. /v1/customer or /v2/customer
12 juillet 2016
Versioning
12 juillet 2016
Versioning (Continued)
12 juillet 2016
Netflix stack (OSS)
 Dashboard
12 juillet 2016
Monitoring (Netflix)
 Books:
 Building Microservices, Sam Newman, 2015
 Reactive Microservices Architecture, Jonas Bonar, 2016
 Microservices - Flexible Software Architectures, Eberhard Wolff, 2016
 Release It! Design and Deploy Production-Ready Software, Michael T. Nygard
 Web:
 Martin Fowler web site: http://martinfowler.com/articles/microservices.html
 The Netflix OSS: https://netflix.github.io
 Twitter:
 @HystrixOSS
 @samnewman
 @crichardson
 @martinfowler
12 juillet 2016
Ressources
 Questions?
12 juillet 2016
Merci

More Related Content

What's hot

Keynote-Service Orientation – Why is it good for your business
Keynote-Service Orientation – Why is it good for your businessKeynote-Service Orientation – Why is it good for your business
Keynote-Service Orientation – Why is it good for your businessWSO2
 
Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures
Continuous Delivery, DevOps, Cloud - New Requirements for New ArchitecturesContinuous Delivery, DevOps, Cloud - New Requirements for New Architectures
Continuous Delivery, DevOps, Cloud - New Requirements for New ArchitecturesEberhard Wolff
 
Developing Enterprise Applications for the Cloud, from Monolith to Microservice
Developing Enterprise Applications for the Cloud, from Monolith to MicroserviceDeveloping Enterprise Applications for the Cloud, from Monolith to Microservice
Developing Enterprise Applications for the Cloud, from Monolith to MicroserviceJack-Junjie Cai
 
Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...Kim Clark
 
Asynchronous Microservices in nodejs
Asynchronous Microservices in nodejsAsynchronous Microservices in nodejs
Asynchronous Microservices in nodejsBruno Pedro
 
The Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET frameworkThe Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET frameworkMassimo Bonanni
 
Microservices to Scale using Azure Service Fabric
Microservices to Scale using Azure Service FabricMicroservices to Scale using Azure Service Fabric
Microservices to Scale using Azure Service FabricMukul Jain
 
Microservices with Node and Docker
Microservices with Node and DockerMicroservices with Node and Docker
Microservices with Node and DockerTony Pujals
 
Adjust Carbon Topology to Match High Availability Scenario Requirements
Adjust Carbon Topology to Match High Availability Scenario Requirements   Adjust Carbon Topology to Match High Availability Scenario Requirements
Adjust Carbon Topology to Match High Availability Scenario Requirements WSO2
 
Introducing the WSO2 Elastic Load Balancer
Introducing the WSO2 Elastic Load BalancerIntroducing the WSO2 Elastic Load Balancer
Introducing the WSO2 Elastic Load BalancerWSO2
 
Micro-services architecture
Micro-services architectureMicro-services architecture
Micro-services architectureFarwa Ansari
 
NIC - Windows Azure Pack - Level 300
NIC - Windows Azure Pack - Level 300NIC - Windows Azure Pack - Level 300
NIC - Windows Azure Pack - Level 300Kristian Nese
 
Multi-Containers Orchestration with Live Migration and High-Availability for ...
Multi-Containers Orchestration with Live Migration and High-Availability for ...Multi-Containers Orchestration with Live Migration and High-Availability for ...
Multi-Containers Orchestration with Live Migration and High-Availability for ...Jelastic Multi-Cloud PaaS
 

What's hot (20)

Keynote-Service Orientation – Why is it good for your business
Keynote-Service Orientation – Why is it good for your businessKeynote-Service Orientation – Why is it good for your business
Keynote-Service Orientation – Why is it good for your business
 
Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures
Continuous Delivery, DevOps, Cloud - New Requirements for New ArchitecturesContinuous Delivery, DevOps, Cloud - New Requirements for New Architectures
Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures
 
Azure Service Fabric Overview
Azure Service Fabric OverviewAzure Service Fabric Overview
Azure Service Fabric Overview
 
Developing Enterprise Applications for the Cloud, from Monolith to Microservice
Developing Enterprise Applications for the Cloud, from Monolith to MicroserviceDeveloping Enterprise Applications for the Cloud, from Monolith to Microservice
Developing Enterprise Applications for the Cloud, from Monolith to Microservice
 
Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...
 
Asynchronous Microservices in nodejs
Asynchronous Microservices in nodejsAsynchronous Microservices in nodejs
Asynchronous Microservices in nodejs
 
The Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET frameworkThe Microservices world in. NET Core and. NET framework
The Microservices world in. NET Core and. NET framework
 
Microservices to Scale using Azure Service Fabric
Microservices to Scale using Azure Service FabricMicroservices to Scale using Azure Service Fabric
Microservices to Scale using Azure Service Fabric
 
Microservices with Node and Docker
Microservices with Node and DockerMicroservices with Node and Docker
Microservices with Node and Docker
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Adjust Carbon Topology to Match High Availability Scenario Requirements
Adjust Carbon Topology to Match High Availability Scenario Requirements   Adjust Carbon Topology to Match High Availability Scenario Requirements
Adjust Carbon Topology to Match High Availability Scenario Requirements
 
Introducing the WSO2 Elastic Load Balancer
Introducing the WSO2 Elastic Load BalancerIntroducing the WSO2 Elastic Load Balancer
Introducing the WSO2 Elastic Load Balancer
 
Micro-services architecture
Micro-services architectureMicro-services architecture
Micro-services architecture
 
NIC - Windows Azure Pack - Level 300
NIC - Windows Azure Pack - Level 300NIC - Windows Azure Pack - Level 300
NIC - Windows Azure Pack - Level 300
 
Multi-Containers Orchestration with Live Migration and High-Availability for ...
Multi-Containers Orchestration with Live Migration and High-Availability for ...Multi-Containers Orchestration with Live Migration and High-Availability for ...
Multi-Containers Orchestration with Live Migration and High-Availability for ...
 
Unit 2
Unit 2Unit 2
Unit 2
 
Jelastic Cluster Admin Panel Overview
Jelastic Cluster Admin Panel OverviewJelastic Cluster Admin Panel Overview
Jelastic Cluster Admin Panel Overview
 
vRA7 What's New
vRA7 What's NewvRA7 What's New
vRA7 What's New
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
 
vm provisioning
vm provisioningvm provisioning
vm provisioning
 

Similar to Introduction to Reactive Microservices Architecture.

Microservices architecture ext
Microservices architecture extMicroservices architecture ext
Microservices architecture extVikash Kodati
 
The Why and How of Applications with APIs and microservices
The Why and How of Applications with APIs and microservicesThe Why and How of Applications with APIs and microservices
The Why and How of Applications with APIs and microservicesRonald Ashri
 
Mmckeown hadr that_conf
Mmckeown hadr that_confMmckeown hadr that_conf
Mmckeown hadr that_confMike McKeown
 
A MomentumSI Briefing: SOA in 2013
A MomentumSI Briefing: SOA in 2013A MomentumSI Briefing: SOA in 2013
A MomentumSI Briefing: SOA in 2013Jeff Schneider
 
Tef con2016 (1)
Tef con2016 (1)Tef con2016 (1)
Tef con2016 (1)ggarber
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsAraf Karsh Hamid
 
Managing Large Flask Applications On Google App Engine (GAE)
Managing Large Flask Applications On Google App Engine (GAE)Managing Large Flask Applications On Google App Engine (GAE)
Managing Large Flask Applications On Google App Engine (GAE)Emmanuel Olowosulu
 
Amplitude wave architecture - Test
Amplitude wave architecture - TestAmplitude wave architecture - Test
Amplitude wave architecture - TestKiran Naiga
 
Microservices approach for Websphere commerce
Microservices approach for Websphere commerceMicroservices approach for Websphere commerce
Microservices approach for Websphere commerceHARIHARAN ANANTHARAMAN
 
Reactive Architecture
Reactive ArchitectureReactive Architecture
Reactive ArchitectureKnoldus Inc.
 
High-Speed Reactive Microservices - trials and tribulations
High-Speed Reactive Microservices - trials and tribulationsHigh-Speed Reactive Microservices - trials and tribulations
High-Speed Reactive Microservices - trials and tribulationsRick Hightower
 
LCE13: Bob Monkman Keynote LCE13
LCE13: Bob Monkman Keynote LCE13LCE13: Bob Monkman Keynote LCE13
LCE13: Bob Monkman Keynote LCE13Linaro
 
RightScale User Conference / Fall / 2010 - Morning Sessions
RightScale User Conference / Fall / 2010 - Morning SessionsRightScale User Conference / Fall / 2010 - Morning Sessions
RightScale User Conference / Fall / 2010 - Morning SessionsRightScale
 
Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices confluent
 
Design (Cloud systems) for Failures
Design (Cloud systems) for FailuresDesign (Cloud systems) for Failures
Design (Cloud systems) for FailuresRodolfo Kohn
 
Microservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureMicroservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureKelly Goetsch
 
Enterprise Ready - What's New in Data Center
Enterprise Ready - What's New in Data CenterEnterprise Ready - What's New in Data Center
Enterprise Ready - What's New in Data CenterAtlassian
 
Whitepaper : Building an Efficient Microservices Architecture
Whitepaper : Building an Efficient Microservices ArchitectureWhitepaper : Building an Efficient Microservices Architecture
Whitepaper : Building an Efficient Microservices ArchitectureNewt Global Consulting LLC
 
Cloud-Native Fundamentals: An Introduction to 12-Factor Applications
Cloud-Native Fundamentals: An Introduction to 12-Factor ApplicationsCloud-Native Fundamentals: An Introduction to 12-Factor Applications
Cloud-Native Fundamentals: An Introduction to 12-Factor ApplicationsVMware Tanzu
 

Similar to Introduction to Reactive Microservices Architecture. (20)

Microservices architecture ext
Microservices architecture extMicroservices architecture ext
Microservices architecture ext
 
The Why and How of Applications with APIs and microservices
The Why and How of Applications with APIs and microservicesThe Why and How of Applications with APIs and microservices
The Why and How of Applications with APIs and microservices
 
Mmckeown hadr that_conf
Mmckeown hadr that_confMmckeown hadr that_conf
Mmckeown hadr that_conf
 
A MomentumSI Briefing: SOA in 2013
A MomentumSI Briefing: SOA in 2013A MomentumSI Briefing: SOA in 2013
A MomentumSI Briefing: SOA in 2013
 
Tef con2016 (1)
Tef con2016 (1)Tef con2016 (1)
Tef con2016 (1)
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
 
Managing Large Flask Applications On Google App Engine (GAE)
Managing Large Flask Applications On Google App Engine (GAE)Managing Large Flask Applications On Google App Engine (GAE)
Managing Large Flask Applications On Google App Engine (GAE)
 
Amplitude wave architecture - Test
Amplitude wave architecture - TestAmplitude wave architecture - Test
Amplitude wave architecture - Test
 
12-Factor App
12-Factor App12-Factor App
12-Factor App
 
Microservices approach for Websphere commerce
Microservices approach for Websphere commerceMicroservices approach for Websphere commerce
Microservices approach for Websphere commerce
 
Reactive Architecture
Reactive ArchitectureReactive Architecture
Reactive Architecture
 
High-Speed Reactive Microservices - trials and tribulations
High-Speed Reactive Microservices - trials and tribulationsHigh-Speed Reactive Microservices - trials and tribulations
High-Speed Reactive Microservices - trials and tribulations
 
LCE13: Bob Monkman Keynote LCE13
LCE13: Bob Monkman Keynote LCE13LCE13: Bob Monkman Keynote LCE13
LCE13: Bob Monkman Keynote LCE13
 
RightScale User Conference / Fall / 2010 - Morning Sessions
RightScale User Conference / Fall / 2010 - Morning SessionsRightScale User Conference / Fall / 2010 - Morning Sessions
RightScale User Conference / Fall / 2010 - Morning Sessions
 
Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices
 
Design (Cloud systems) for Failures
Design (Cloud systems) for FailuresDesign (Cloud systems) for Failures
Design (Cloud systems) for Failures
 
Microservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureMicroservices + Oracle: A Bright Future
Microservices + Oracle: A Bright Future
 
Enterprise Ready - What's New in Data Center
Enterprise Ready - What's New in Data CenterEnterprise Ready - What's New in Data Center
Enterprise Ready - What's New in Data Center
 
Whitepaper : Building an Efficient Microservices Architecture
Whitepaper : Building an Efficient Microservices ArchitectureWhitepaper : Building an Efficient Microservices Architecture
Whitepaper : Building an Efficient Microservices Architecture
 
Cloud-Native Fundamentals: An Introduction to 12-Factor Applications
Cloud-Native Fundamentals: An Introduction to 12-Factor ApplicationsCloud-Native Fundamentals: An Introduction to 12-Factor Applications
Cloud-Native Fundamentals: An Introduction to 12-Factor Applications
 

More from Richard Langlois P. Eng.

More from Richard Langlois P. Eng. (6)

Monitoring with Prometheus
Monitoring with PrometheusMonitoring with Prometheus
Monitoring with Prometheus
 
Continuous Test Automation, by Richard Langlois P. Eng. and Yuri Pechenko.
Continuous Test Automation, by Richard Langlois P. Eng. and Yuri Pechenko.Continuous Test Automation, by Richard Langlois P. Eng. and Yuri Pechenko.
Continuous Test Automation, by Richard Langlois P. Eng. and Yuri Pechenko.
 
Reactive Programming in Java and Spring Framework 5
Reactive Programming in Java and Spring Framework 5Reactive Programming in Java and Spring Framework 5
Reactive Programming in Java and Spring Framework 5
 
What's New in Java 9
What's New in Java 9What's New in Java 9
What's New in Java 9
 
DevOps, Yet Another IT Revolution
DevOps, Yet Another IT RevolutionDevOps, Yet Another IT Revolution
DevOps, Yet Another IT Revolution
 
What is new in JUnit5
What is new in JUnit5What is new in JUnit5
What is new in JUnit5
 

Recently uploaded

Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 

Recently uploaded (20)

Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 

Introduction to Reactive Microservices Architecture.

  • 1. Introduction to Reactive Microservices Architecture Richard Langlois P. Eng. Solutions Architect 12 juillet 2016
  • 2.  Microservices / Reactive  Change in the organization  Amazon.ca using Microservices  Service Scalability  Failure Isolation: Circuit Breaker, Bulkhead, Back Pressure  Service Discovery  Versioning  Netflix Stack 12 juillet 2016 Agenda
  • 3.  Monolith:  Legacy enterprise applications are big monolith  If service fails, everything stops working.  Have to scale everything together  Hard to maintain  Hard to understand  Any change requires a scary big deploy  Service-Oriented Architecture (SOA):  Multiple services collaborate to provide some capabilities  Issue with communication protocol (SOAP), vendor middleware (ESB), service granularity, lack of guidance 12 juillet 2016 Monolith -> SOA -> Microservices
  • 4.  System composed of a set of small, isolated services  Services:  Have single area of responsibility, do one thing well  Autonomous, deployed as isolated service  Boundary is business boundary  Communication between services via network calls (e.g. REST over HTTP).  Exposes an Application Programming interface (API)  Golden rule: Able to make a change to a service and deploy it by itself without changing anything else? 12 juillet 2016 What is a Microservices based System
  • 5. 12 juillet 2016 Monolith versus Microservices
  • 6.  Reactive system is Responsive, Resilient, Elastic and Message Driven  Responsive: System responds in a timely manner.  Resilient: System stays responsive in the face of failure.  Elastic: The system stays responsive under varying workload.  Message Driven: Rely on asynchronous message-passing. 12 juillet 2016 What is a Reactive System
  • 7.  Technology Heterogeneity: right technology for each job  Resilience: failure does not cascade  Scaling: can just scale those services that need scaling  Ease of Deployment: change to a single service / deploy it  Organizational Alignment: architecture aligned to organization  Optimized for Replaceability: being small in size, the cost to replace them is small 12 juillet 2016 Key Benefits of Microservices
  • 8.  Monolithic:  organization built around functional team (QA, Dev, Product Owner)  Silo teams  Cons: communication problems, many meetings, dependencies, us vs. them  Microservices:  organization built around cross-functional team  Built around business needs, decision is made faster  Code is shipped faster  Team owns a product: create, maintain.  Effective communication: right information goes to right place, right time 12 juillet 2016 Changes in the Organization
  • 9.  Web page Amazon.ca composed of 11 microservices 12 juillet 2016 Amazon.com using Microservices
  • 10. 12 juillet 2016 Services serving up UI components
  • 12. 12 juillet 2016 Backends for Frontends (BFF)
  • 13.  Scaling: transformation that enlarges or diminishes.  Vertical scaling (Scale Up):  increase the capacity of existing system by adding more powerful hardware  Cons: Additional investment, Single Point of Failure  Horizontal scaling (Scale Down):  Adds extra identical boxes to server  Cons: Requires Load balancer for managing connection 12 juillet 2016 Service Scalability
  • 14. 12 juillet 2016 Vertical vs Horizontal Scaling
  • 15.  keep a failure in one part of the system from destroying everything  Cascading failure : occurs when failure jumps from one system to another  Preventing cascading failure is key to resilience  Some patterns:  Bulkhead  Circuit Breaker  Back-Pressure 12 juillet 2016 Failure Isolation
  • 16.  In ship building, bulkhead is a part of the ship that can be sealed off to protect the rest of the ship  Example of bulkhead:  Separate connection pools for each downstream connection  Physical redundancy : 4 independent servers for a service, then failure of one can’t affect the others  Logical redundancy: 4 application instances running on a server, one crash, system still running 12 juillet 2016 Bulkhead
  • 18. 12 juillet 2016 So why Titanic sank?
  • 19.  Wraps a component that can circumvent calls when the component is not healthy.  Prevent operations rather than re-execute them.  Closed state: circuit breaker executes operations as usual.  Open state: calls to the circuit beaker fail immediately.  Half-Open state: next call is allowed to go through, if succeeds, returns to Close state, if fails, returns to Open state.  Automatic mechanism to seal a bulkhead  Protects the consumer from downstream problem  Protects the downstream service from more calls  Recommend circuit breakers for all synchronous downstream calls  Available products: Netflix Hystrix 12 juillet 2016 Circuit Breaker
  • 20. 12 juillet 2016 Circuit Breaker (Continued)
  • 21.  Mechanism ensuring that a fast system can’t overload its slower counterpart.  If a service gets overloaded, it does not become unresponsive, it sends “currently unavailable” messages so upstream clients and services can route around it.  Supported by Reactive Streams specification  Products: Akka Streams, RxJava, Spark Streaming, Cassandra drivers 12 juillet 2016 Back pressure
  • 22. 12 juillet 2016 Back Pressure (continued)
  • 23.  Service needs to know the other service’s address 1. A service registers itself to Service Registry 2. Client uses Service Registry to lookup the service address 3. Client uses this address to call the service  Products: Netflix Eureka, ZooKeeper, etcd 12 juillet 2016 Service Discovery
  • 24.  Happens when interface of a service changes 1. Coexist both the old and new interfaces in the service 2. Allows consumers to migrate gradually 3. Delete old interface when no longer used  Version number in request headers or in URL  E.g. /v1/customer or /v2/customer 12 juillet 2016 Versioning
  • 26. 12 juillet 2016 Netflix stack (OSS)
  • 27.  Dashboard 12 juillet 2016 Monitoring (Netflix)
  • 28.  Books:  Building Microservices, Sam Newman, 2015  Reactive Microservices Architecture, Jonas Bonar, 2016  Microservices - Flexible Software Architectures, Eberhard Wolff, 2016  Release It! Design and Deploy Production-Ready Software, Michael T. Nygard  Web:  Martin Fowler web site: http://martinfowler.com/articles/microservices.html  The Netflix OSS: https://netflix.github.io  Twitter:  @HystrixOSS  @samnewman  @crichardson  @martinfowler 12 juillet 2016 Ressources