building resilient microservices with apache qpid … · 2017-12-14 · building resilient...
TRANSCRIPT
![Page 1: BUILDING RESILIENT MICROSERVICES with APACHE QPID … · 2017-12-14 · BUILDING RESILIENT MICROSERVICES ... Resilient system design. Microservices. Continuous delivery Design/build](https://reader034.vdocuments.mx/reader034/viewer/2022042305/5ed09499c75a212a63482fa5/html5/thumbnails/1.jpg)
BUILDING RESILIENT MICROSERVICES with APACHE QPID PROTON
Richard LiRafael Schloming datawire.io
![Page 2: BUILDING RESILIENT MICROSERVICES with APACHE QPID … · 2017-12-14 · BUILDING RESILIENT MICROSERVICES ... Resilient system design. Microservices. Continuous delivery Design/build](https://reader034.vdocuments.mx/reader034/viewer/2022042305/5ed09499c75a212a63482fa5/html5/thumbnails/2.jpg)
• MICROSERVICES • DESIGNING MICROSERVICES • DEMO • WRAP UP
![Page 3: BUILDING RESILIENT MICROSERVICES with APACHE QPID … · 2017-12-14 · BUILDING RESILIENT MICROSERVICES ... Resilient system design. Microservices. Continuous delivery Design/build](https://reader034.vdocuments.mx/reader034/viewer/2022042305/5ed09499c75a212a63482fa5/html5/thumbnails/3.jpg)
• Release any time • You’re responsible for
reliability, availability, scalability, security
• You’re also responsible for monitoring, billing, user admin, …
![Page 4: BUILDING RESILIENT MICROSERVICES with APACHE QPID … · 2017-12-14 · BUILDING RESILIENT MICROSERVICES ... Resilient system design. Microservices. Continuous delivery Design/build](https://reader034.vdocuments.mx/reader034/viewer/2022042305/5ed09499c75a212a63482fa5/html5/thumbnails/4.jpg)
Idiot proof deploy Homogenous tech stack
Minimize upgrade frequency
Synchronized release
Easy for vendor to debugACID; 1 simultaneous
release
![Page 5: BUILDING RESILIENT MICROSERVICES with APACHE QPID … · 2017-12-14 · BUILDING RESILIENT MICROSERVICES ... Resilient system design. Microservices. Continuous delivery Design/build](https://reader034.vdocuments.mx/reader034/viewer/2022042305/5ed09499c75a212a63482fa5/html5/thumbnails/5.jpg)
Ship as fast as possible Continuous delivery
Lots of functional breadth
Design/build in parts
Reliability, availability, security, scale
Resilient system design
![Page 6: BUILDING RESILIENT MICROSERVICES with APACHE QPID … · 2017-12-14 · BUILDING RESILIENT MICROSERVICES ... Resilient system design. Microservices. Continuous delivery Design/build](https://reader034.vdocuments.mx/reader034/viewer/2022042305/5ed09499c75a212a63482fa5/html5/thumbnails/6.jpg)
Microservices.
Continuous delivery
Design/build in parts
Resilient system design
![Page 7: BUILDING RESILIENT MICROSERVICES with APACHE QPID … · 2017-12-14 · BUILDING RESILIENT MICROSERVICES ... Resilient system design. Microservices. Continuous delivery Design/build](https://reader034.vdocuments.mx/reader034/viewer/2022042305/5ed09499c75a212a63482fa5/html5/thumbnails/7.jpg)
Componentization via Services
Organized around Business Capabilities
Products not Projects
Smart endpoints and dumb pipes
Decentralized Governance
Decentralized Data Management
Infrastructure Automation
Design for failure
Evolutionary Design
http://martinfowler.com/articles/microservices.html
![Page 8: BUILDING RESILIENT MICROSERVICES with APACHE QPID … · 2017-12-14 · BUILDING RESILIENT MICROSERVICES ... Resilient system design. Microservices. Continuous delivery Design/build](https://reader034.vdocuments.mx/reader034/viewer/2022042305/5ed09499c75a212a63482fa5/html5/thumbnails/8.jpg)
DESIGNING MICROSERVICES
![Page 9: BUILDING RESILIENT MICROSERVICES with APACHE QPID … · 2017-12-14 · BUILDING RESILIENT MICROSERVICES ... Resilient system design. Microservices. Continuous delivery Design/build](https://reader034.vdocuments.mx/reader034/viewer/2022042305/5ed09499c75a212a63482fa5/html5/thumbnails/9.jpg)
Monolith
1. Send a tweet.
2. Get followers. 3. Publish tweet.
App server
![Page 10: BUILDING RESILIENT MICROSERVICES with APACHE QPID … · 2017-12-14 · BUILDING RESILIENT MICROSERVICES ... Resilient system design. Microservices. Continuous delivery Design/build](https://reader034.vdocuments.mx/reader034/viewer/2022042305/5ed09499c75a212a63482fa5/html5/thumbnails/10.jpg)
Three App Servers
1. Send a tweet.
2. Get followers.
3. Publish tweet.
App server
![Page 11: BUILDING RESILIENT MICROSERVICES with APACHE QPID … · 2017-12-14 · BUILDING RESILIENT MICROSERVICES ... Resilient system design. Microservices. Continuous delivery Design/build](https://reader034.vdocuments.mx/reader034/viewer/2022042305/5ed09499c75a212a63482fa5/html5/thumbnails/11.jpg)
App Servers + Asynchronous Queue
1. Send a tweet.
2. Queue tweet for sending.
3. Process new tweets.
4. Get followers.
5. Publish tweet.
Not a typical app server
![Page 12: BUILDING RESILIENT MICROSERVICES with APACHE QPID … · 2017-12-14 · BUILDING RESILIENT MICROSERVICES ... Resilient system design. Microservices. Continuous delivery Design/build](https://reader034.vdocuments.mx/reader034/viewer/2022042305/5ed09499c75a212a63482fa5/html5/thumbnails/12.jpg)
App Servers + Asynchronous Queue
1. Send a tweet.
2. Queue tweet for sending.
3. Process new tweets.
4. Get followers.
5. Publish tweet.
Not a typical app server
Recommend followers
![Page 13: BUILDING RESILIENT MICROSERVICES with APACHE QPID … · 2017-12-14 · BUILDING RESILIENT MICROSERVICES ... Resilient system design. Microservices. Continuous delivery Design/build](https://reader034.vdocuments.mx/reader034/viewer/2022042305/5ed09499c75a212a63482fa5/html5/thumbnails/13.jpg)
Fully Asynchronous
1. Send a tweet.
2. Queue tweet for sending.
3. Process Tweet
4. Publish tweet.
Publish changes to followers
Recommend new people to follow
![Page 14: BUILDING RESILIENT MICROSERVICES with APACHE QPID … · 2017-12-14 · BUILDING RESILIENT MICROSERVICES ... Resilient system design. Microservices. Continuous delivery Design/build](https://reader034.vdocuments.mx/reader034/viewer/2022042305/5ed09499c75a212a63482fa5/html5/thumbnails/14.jpg)
MESSAGING
![Page 15: BUILDING RESILIENT MICROSERVICES with APACHE QPID … · 2017-12-14 · BUILDING RESILIENT MICROSERVICES ... Resilient system design. Microservices. Continuous delivery Design/build](https://reader034.vdocuments.mx/reader034/viewer/2022042305/5ed09499c75a212a63482fa5/html5/thumbnails/15.jpg)
HTTP
LB LB LB
![Page 16: BUILDING RESILIENT MICROSERVICES with APACHE QPID … · 2017-12-14 · BUILDING RESILIENT MICROSERVICES ... Resilient system design. Microservices. Continuous delivery Design/build](https://reader034.vdocuments.mx/reader034/viewer/2022042305/5ed09499c75a212a63482fa5/html5/thumbnails/16.jpg)
Asynchronous Messaging
Q T
![Page 17: BUILDING RESILIENT MICROSERVICES with APACHE QPID … · 2017-12-14 · BUILDING RESILIENT MICROSERVICES ... Resilient system design. Microservices. Continuous delivery Design/build](https://reader034.vdocuments.mx/reader034/viewer/2022042305/5ed09499c75a212a63482fa5/html5/thumbnails/17.jpg)
Asynchronous Message Broker
Broker
![Page 18: BUILDING RESILIENT MICROSERVICES with APACHE QPID … · 2017-12-14 · BUILDING RESILIENT MICROSERVICES ... Resilient system design. Microservices. Continuous delivery Design/build](https://reader034.vdocuments.mx/reader034/viewer/2022042305/5ed09499c75a212a63482fa5/html5/thumbnails/18.jpg)
DEMO
![Page 19: BUILDING RESILIENT MICROSERVICES with APACHE QPID … · 2017-12-14 · BUILDING RESILIENT MICROSERVICES ... Resilient system design. Microservices. Continuous delivery Design/build](https://reader034.vdocuments.mx/reader034/viewer/2022042305/5ed09499c75a212a63482fa5/html5/thumbnails/19.jpg)
Smart endpoints with Proton
Q T
“Barkers”
Outbox
Business Logic
Inbox
Clients
![Page 20: BUILDING RESILIENT MICROSERVICES with APACHE QPID … · 2017-12-14 · BUILDING RESILIENT MICROSERVICES ... Resilient system design. Microservices. Continuous delivery Design/build](https://reader034.vdocuments.mx/reader034/viewer/2022042305/5ed09499c75a212a63482fa5/html5/thumbnails/20.jpg)
• Native AMQP 1.0 protocol engine
• Core engine implemented in C • Language bindings in Python,
JavaScript, Ruby, PHP, Perl, Java, Go, C++
Practical Proton Details
• Part of Apache Qpid • Used by a number of Qpid
projects, including the C++ brokers, JMS Client, Qpid Dispatcher
• Also used by ActiveMQ, HornetQ, Microsoft Azure, IBM MQLite, and many organizations
http://qpid.apache.org/proton
![Page 21: BUILDING RESILIENT MICROSERVICES with APACHE QPID … · 2017-12-14 · BUILDING RESILIENT MICROSERVICES ... Resilient system design. Microservices. Continuous delivery Design/build](https://reader034.vdocuments.mx/reader034/viewer/2022042305/5ed09499c75a212a63482fa5/html5/thumbnails/21.jpg)
SUMMARY
• Microservices are a natural paradigm for cloud-delivered software
• Microservices need to be loosely coupled • Asynchronous messaging is the key to loose coupling • Proton provides a simple, powerful async messaging
engine