SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
Orchestration Patterns for
Microservices with Messaging by
RabbitMQ
Greg Chase, Pivotal Software
Dan Baskette, Pivotal Software
Agenda
2
1.  Communication Requirements for Microservices
2.  Use cases where RabbitMQ shines
3.  How to use RabbitMQ for Pivotal Cloud Foundry
4.  Demo
3
Communication Requirements for
Microservices
Why Systems are Evolving to Microservices
Architectures
Characteristics of a
Microservices system:
●  Independent executable
component
●  Does one thing well
●  Often Event & message
driven
●  Fault tolerant
●  Evolutionary
Differentiating Requirements for Communicating
Between Microservices
●  Timing: Synchronous, asynchronous, batched, delayed, offline
●  Interactions: Notification, acknowledged, request-response, workflow
●  Scale: 1000’s messages per second / 10,000’s / 100,000’s
●  Cardinality: 1 to 1 or 1 to many?
Great for request-response, but can break microservices style
Synchronous Communication Starts Out Simple
Benefits
●  Simple and familiar
●  Easy to test
●  Firewall friendly
●  Simpler architecture
Drawbacks
●  Server must always send a
response
●  Both sender and receiver must
be available
●  Not scalable by itself
Trip
Management
Passenger
(mobile)
POST/trips Get/passengers/<passengerID>
REST Passenger
Management
202 OK201 Created
REST
More complex to setup but can simplify services, provide scale & resilience
Asynchronous Communications Patterns
Event Log / Topic Firehose Message queues
Two common patterns for handling messaging in MSA:
Producer
Hadoop Apps DBs
8
Patterns for RabbitMQ
Open source message broker for communication between decoupled applications
What is RabbitMQ?
Asychronous
Messaging
●  Multiple
protocols
●  Queues
●  Exchanges
Developer
Experience
●  Containers
●  Configuration
management
●  Cross-language
●  All major
languages
Distributed
Deployment
●  Highly
available
●  High scale
●  Multi-zone
Enterprise & Cloud
Ready
●  Authentication
●  Encryption
●  Cloud-friendly
Tools & Plugins
●  Continuous
integration
●  Metrics
●  Enterprise
integration
Management &
Monitoring
●  HTTP-API
●  Command line
●  UI tool
Exchanges route messages to queues to await delivery
RabbitMQ Concepts
P
C
Exch
C
Producer Exchange:
●  Fanout
●  Direct
●  Topic
●  Header
“Foo.bar”
Binding
“*.bar”
“Foo.#”
Queues Consumers
“Meta” match “value”
Easy, flexible messaging supporting many message types and routes
Example Patterns for RabbitMQ and Use Cases
Work queues
C
C
General Pub/Sub
C
C
P Exch
Routing
C
C
P Exch
“*.bar”
“Foo.#”
“Meta” match “value”
1
How to use RabbitMQ for Pivotal
Cloud Foundry
Provide RabbitMQ as a service for your developers
RabbitMQ for Pivotal Cloud Foundry
●  Two kinds of deployments
○  Pre-provisioned HA multitenant
RabbitMQ cluster
○  Dedicated single node RabbitMQ
instances
●  Developers gain self-service
access to dedicated or vhost
●  Monitoring available via RabbitMQ
tools
●  RabbitMQ for PCF metrics
exposed to PCF Firehouse
●  Automate deployment,
management and monitoring of
RabbitMQ
HA RabbitMQ multi tenant cluster or dedicated single nodes
Deploy Two Types for RabbitMQ Services in PCF
●  Pre-provision RabbitMQ as highly
available cluster
●  Utilize RabbitMQ HAProxies for load
balancing
●  Deploy to multiple availability zones
●  Simple provisioning through CF CLI
●  On demand provisioning of dedicated
RabbitMQ single nodes
●  Select maximum service instances to
control consumption of IaaS resources
●  Developers have direct access to
RabbitMQ instances
App
Elastic
Runtime
Message Brokers in Microservices Architecture
An opinionated packaging of RabbitMQ for Cloud Native development
Targeted Use Cases for RabbitMQ for PCF
Inter application messaging Backing service for:
Spring Cloud Services
Spring Cloud Data Flow
Quarterly release cadence
Future enhancements of RabbitMQ for PCF
Based on RabbitMQ 3.6.x
Multitenant clusters
Dedicated single node
1.8 1.9 1.10 1.11
Based on RabbitMQ 3.7.x
Dedicated cluster
Ongoing improvements to developer experience and operator automation
This timeline reflects current forecast of product enhancements and may change without notice. These
are not to be construed as committed dates or versions for delivery.
1
FunCollector
Demo
FunCollector - Demo App
●  Spring Boot microservices based
●  Cloud Native and Deployed on Pivotal Cloud Foundry
●  Services
‒  RabbitMQ for Publish/Subscribe messaging between components
‒  Pivotal Google Compute Service Broker - Machine Learning API
‒  PostgreSQL Storage
●  Each component is independently scalable
●  Built to address my “Vice”
Web UI
Web UI
Web UI
ImageRecog
Vision APIImageRecog
Vision APIImageRecog
Vision API
PopIdentifier
PopIdentifier
PopIdentifier
Photo Accepted and
Published to VisionReady
Queue as Object with
Bytestream
Photo is consumed
from queue and
forwarded to
Google Vision API
for Text
Recognition
Object is Enhanced with
Metadata and Published to
VisionResults Queue
Metadata is consumed from
queue and evaluated. Then it’s
compared vs. Master List and
item is Identified
Photo is taken by user and
uploaded
TheCollector
Identified item
is published to
Identified
Queue
Queue is consumed and
Database Updated
FunCollector
Agenda
2
1.  Communication Requirements for Microservices
2.  Use cases where RabbitMQ shines
3.  How to use RabbitMQ for Pivotal Cloud Foundry
4.  Demo
Orchestration Patterns for Microservices with Messaging by RabbitMQ

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Microservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and KafkaMicroservices Part 3 Service Mesh and Kafka
Microservices Part 3 Service Mesh and Kafka
 
Design patterns for microservice architecture
Design patterns for microservice architectureDesign patterns for microservice architecture
Design patterns for microservice architecture
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
 
Scaling a Core Banking Engine Using Apache Kafka | Peter Dudbridge, Thought M...
Scaling a Core Banking Engine Using Apache Kafka | Peter Dudbridge, Thought M...Scaling a Core Banking Engine Using Apache Kafka | Peter Dudbridge, Thought M...
Scaling a Core Banking Engine Using Apache Kafka | Peter Dudbridge, Thought M...
 
HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기
 
Building Streaming Data Pipelines with Google Cloud Dataflow and Confluent Cl...
Building Streaming Data Pipelines with Google Cloud Dataflow and Confluent Cl...Building Streaming Data Pipelines with Google Cloud Dataflow and Confluent Cl...
Building Streaming Data Pipelines with Google Cloud Dataflow and Confluent Cl...
 
Patterns of resilience
Patterns of resiliencePatterns of resilience
Patterns of resilience
 
Micro services Architecture
Micro services ArchitectureMicro services Architecture
Micro services Architecture
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
The Log of All Logs: Raft-based Consensus Inside Kafka | Guozhang Wang, Confl...
The Log of All Logs: Raft-based Consensus Inside Kafka | Guozhang Wang, Confl...The Log of All Logs: Raft-based Consensus Inside Kafka | Guozhang Wang, Confl...
The Log of All Logs: Raft-based Consensus Inside Kafka | Guozhang Wang, Confl...
 
Dual write strategies for microservices
Dual write strategies for microservicesDual write strategies for microservices
Dual write strategies for microservices
 
(알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막
(알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막(알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막
(알도개) GraalVM – 자바를 넘어선 새로운 시작의 서막
 
Introduction To Microservices
Introduction To MicroservicesIntroduction To Microservices
Introduction To Microservices
 
Microservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, KanbanMicroservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, Kanban
 
Building Event Driven Architectures with Kafka and Cloud Events (Dan Rosanova...
Building Event Driven Architectures with Kafka and Cloud Events (Dan Rosanova...Building Event Driven Architectures with Kafka and Cloud Events (Dan Rosanova...
Building Event Driven Architectures with Kafka and Cloud Events (Dan Rosanova...
 
Kubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the Ugly
Kubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the UglyKubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the Ugly
Kubernetes Summit 2021: Multi-Cluster - The Good, the Bad and the Ugly
 
Kafka: All an engineer needs to know
Kafka: All an engineer needs to knowKafka: All an engineer needs to know
Kafka: All an engineer needs to know
 
Grokking TechTalk #33: High Concurrency Architecture at TIKI
Grokking TechTalk #33: High Concurrency Architecture at TIKIGrokking TechTalk #33: High Concurrency Architecture at TIKI
Grokking TechTalk #33: High Concurrency Architecture at TIKI
 
Scalability, Availability & Stability Patterns
Scalability, Availability & Stability PatternsScalability, Availability & Stability Patterns
Scalability, Availability & Stability Patterns
 
Performance Engineering Masterclass: Efficient Automation with the Help of SR...
Performance Engineering Masterclass: Efficient Automation with the Help of SR...Performance Engineering Masterclass: Efficient Automation with the Help of SR...
Performance Engineering Masterclass: Efficient Automation with the Help of SR...
 

Similar a Orchestration Patterns for Microservices with Messaging by RabbitMQ

Similar a Orchestration Patterns for Microservices with Messaging by RabbitMQ (20)

Messaging-as-a-Service Rivieradev 2017
Messaging-as-a-Service Rivieradev 2017Messaging-as-a-Service Rivieradev 2017
Messaging-as-a-Service Rivieradev 2017
 
What is RabbitMQ ?
What is RabbitMQ ?What is RabbitMQ ?
What is RabbitMQ ?
 
Blue-green deploys with Pulsar & Envoy in an event-driven microservice ecosys...
Blue-green deploys with Pulsar & Envoy in an event-driven microservice ecosys...Blue-green deploys with Pulsar & Envoy in an event-driven microservice ecosys...
Blue-green deploys with Pulsar & Envoy in an event-driven microservice ecosys...
 
Realtime mobile&iot solutions using mqtt and message sight
Realtime mobile&iot solutions using mqtt and message sightRealtime mobile&iot solutions using mqtt and message sight
Realtime mobile&iot solutions using mqtt and message sight
 
Pivotal Cloud Foundry 2.1: Making Transformation Real Webinar
Pivotal Cloud Foundry 2.1: Making Transformation Real WebinarPivotal Cloud Foundry 2.1: Making Transformation Real Webinar
Pivotal Cloud Foundry 2.1: Making Transformation Real Webinar
 
Velocity Conference '13: Asynchronous messaging for performance optimization,...
Velocity Conference '13: Asynchronous messaging for performance optimization,...Velocity Conference '13: Asynchronous messaging for performance optimization,...
Velocity Conference '13: Asynchronous messaging for performance optimization,...
 
SignalR or RabbitMQ: Which is the better messaging tool?
SignalR or RabbitMQ: Which is the better messaging tool?SignalR or RabbitMQ: Which is the better messaging tool?
SignalR or RabbitMQ: Which is the better messaging tool?
 
API Days Australia
API Days AustraliaAPI Days Australia
API Days Australia
 
apidays LIVE Australia 2020 - Building an Enterprise Eventing Platform by Gna...
apidays LIVE Australia 2020 - Building an Enterprise Eventing Platform by Gna...apidays LIVE Australia 2020 - Building an Enterprise Eventing Platform by Gna...
apidays LIVE Australia 2020 - Building an Enterprise Eventing Platform by Gna...
 
IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...
IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...
IBM IMPACT 2014 - AMC-1882 Building a Scalable & Continuously Available IBM M...
 
API Days Singapore
API Days SingaporeAPI Days Singapore
API Days Singapore
 
apidays LIVE Singapore - Moving to an Event Driven Microservices Architecture...
apidays LIVE Singapore - Moving to an Event Driven Microservices Architecture...apidays LIVE Singapore - Moving to an Event Driven Microservices Architecture...
apidays LIVE Singapore - Moving to an Event Driven Microservices Architecture...
 
Do You Need A Service Mesh?
Do You Need A Service Mesh?Do You Need A Service Mesh?
Do You Need A Service Mesh?
 
Beyond REST and RPC: Asynchronous Eventing and Messaging Patterns
Beyond REST and RPC: Asynchronous Eventing and Messaging PatternsBeyond REST and RPC: Asynchronous Eventing and Messaging Patterns
Beyond REST and RPC: Asynchronous Eventing and Messaging Patterns
 
Open Source Networking Days- Service Mesh
Open Source Networking Days- Service MeshOpen Source Networking Days- Service Mesh
Open Source Networking Days- Service Mesh
 
Yotpo microservices
Yotpo microservicesYotpo microservices
Yotpo microservices
 
MRA AMA Part 10: Kubernetes and the Microservices Reference Architecture
MRA AMA Part 10: Kubernetes and the Microservices Reference ArchitectureMRA AMA Part 10: Kubernetes and the Microservices Reference Architecture
MRA AMA Part 10: Kubernetes and the Microservices Reference Architecture
 
Introduction MQTT in English
Introduction MQTT in EnglishIntroduction MQTT in English
Introduction MQTT in English
 
Netflix Data Pipeline With Kafka
Netflix Data Pipeline With KafkaNetflix Data Pipeline With Kafka
Netflix Data Pipeline With Kafka
 
Netflix Data Pipeline With Kafka
Netflix Data Pipeline With KafkaNetflix Data Pipeline With Kafka
Netflix Data Pipeline With Kafka
 

Más de VMware Tanzu

Más de VMware Tanzu (20)

What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About It
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at Scale
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a Product
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
 

Último

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

Orchestration Patterns for Microservices with Messaging by RabbitMQ

  • 1. Orchestration Patterns for Microservices with Messaging by RabbitMQ Greg Chase, Pivotal Software Dan Baskette, Pivotal Software
  • 2. Agenda 2 1.  Communication Requirements for Microservices 2.  Use cases where RabbitMQ shines 3.  How to use RabbitMQ for Pivotal Cloud Foundry 4.  Demo
  • 4. Why Systems are Evolving to Microservices Architectures Characteristics of a Microservices system: ●  Independent executable component ●  Does one thing well ●  Often Event & message driven ●  Fault tolerant ●  Evolutionary
  • 5. Differentiating Requirements for Communicating Between Microservices ●  Timing: Synchronous, asynchronous, batched, delayed, offline ●  Interactions: Notification, acknowledged, request-response, workflow ●  Scale: 1000’s messages per second / 10,000’s / 100,000’s ●  Cardinality: 1 to 1 or 1 to many?
  • 6. Great for request-response, but can break microservices style Synchronous Communication Starts Out Simple Benefits ●  Simple and familiar ●  Easy to test ●  Firewall friendly ●  Simpler architecture Drawbacks ●  Server must always send a response ●  Both sender and receiver must be available ●  Not scalable by itself Trip Management Passenger (mobile) POST/trips Get/passengers/<passengerID> REST Passenger Management 202 OK201 Created REST
  • 7. More complex to setup but can simplify services, provide scale & resilience Asynchronous Communications Patterns Event Log / Topic Firehose Message queues Two common patterns for handling messaging in MSA: Producer Hadoop Apps DBs
  • 9. Open source message broker for communication between decoupled applications What is RabbitMQ? Asychronous Messaging ●  Multiple protocols ●  Queues ●  Exchanges Developer Experience ●  Containers ●  Configuration management ●  Cross-language ●  All major languages Distributed Deployment ●  Highly available ●  High scale ●  Multi-zone Enterprise & Cloud Ready ●  Authentication ●  Encryption ●  Cloud-friendly Tools & Plugins ●  Continuous integration ●  Metrics ●  Enterprise integration Management & Monitoring ●  HTTP-API ●  Command line ●  UI tool
  • 10. Exchanges route messages to queues to await delivery RabbitMQ Concepts P C Exch C Producer Exchange: ●  Fanout ●  Direct ●  Topic ●  Header “Foo.bar” Binding “*.bar” “Foo.#” Queues Consumers “Meta” match “value”
  • 11. Easy, flexible messaging supporting many message types and routes Example Patterns for RabbitMQ and Use Cases Work queues C C General Pub/Sub C C P Exch Routing C C P Exch “*.bar” “Foo.#” “Meta” match “value”
  • 12. 1 How to use RabbitMQ for Pivotal Cloud Foundry
  • 13. Provide RabbitMQ as a service for your developers RabbitMQ for Pivotal Cloud Foundry ●  Two kinds of deployments ○  Pre-provisioned HA multitenant RabbitMQ cluster ○  Dedicated single node RabbitMQ instances ●  Developers gain self-service access to dedicated or vhost ●  Monitoring available via RabbitMQ tools ●  RabbitMQ for PCF metrics exposed to PCF Firehouse ●  Automate deployment, management and monitoring of RabbitMQ
  • 14. HA RabbitMQ multi tenant cluster or dedicated single nodes Deploy Two Types for RabbitMQ Services in PCF ●  Pre-provision RabbitMQ as highly available cluster ●  Utilize RabbitMQ HAProxies for load balancing ●  Deploy to multiple availability zones ●  Simple provisioning through CF CLI ●  On demand provisioning of dedicated RabbitMQ single nodes ●  Select maximum service instances to control consumption of IaaS resources ●  Developers have direct access to RabbitMQ instances App Elastic Runtime
  • 15. Message Brokers in Microservices Architecture
  • 16. An opinionated packaging of RabbitMQ for Cloud Native development Targeted Use Cases for RabbitMQ for PCF Inter application messaging Backing service for: Spring Cloud Services Spring Cloud Data Flow
  • 17. Quarterly release cadence Future enhancements of RabbitMQ for PCF Based on RabbitMQ 3.6.x Multitenant clusters Dedicated single node 1.8 1.9 1.10 1.11 Based on RabbitMQ 3.7.x Dedicated cluster Ongoing improvements to developer experience and operator automation This timeline reflects current forecast of product enhancements and may change without notice. These are not to be construed as committed dates or versions for delivery.
  • 19. FunCollector - Demo App ●  Spring Boot microservices based ●  Cloud Native and Deployed on Pivotal Cloud Foundry ●  Services ‒  RabbitMQ for Publish/Subscribe messaging between components ‒  Pivotal Google Compute Service Broker - Machine Learning API ‒  PostgreSQL Storage ●  Each component is independently scalable ●  Built to address my “Vice”
  • 20. Web UI Web UI Web UI ImageRecog Vision APIImageRecog Vision APIImageRecog Vision API PopIdentifier PopIdentifier PopIdentifier Photo Accepted and Published to VisionReady Queue as Object with Bytestream Photo is consumed from queue and forwarded to Google Vision API for Text Recognition Object is Enhanced with Metadata and Published to VisionResults Queue Metadata is consumed from queue and evaluated. Then it’s compared vs. Master List and item is Identified Photo is taken by user and uploaded TheCollector Identified item is published to Identified Queue Queue is consumed and Database Updated FunCollector
  • 21. Agenda 2 1.  Communication Requirements for Microservices 2.  Use cases where RabbitMQ shines 3.  How to use RabbitMQ for Pivotal Cloud Foundry 4.  Demo