7/17/2019 From HTTP to Kafka-based microservices FROM HTTP TO KAFKA-BASED FROM HTTP TO KAFKA-BASED MICROSERVICES MICROSERVICES Wojciech Rząsa, FLYR Poland @wrzasa localhost:4567/index.html?print-pdf#/ 1/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices ABOUT ME ABOUT ME Informatics specialist by passion and by profession 15 years of academic work PhD but primarily an engineer FLYR Inc. http://flyrlabs.com Distributed systems Rzeszow Ruby User Group http://rrug.pl localhost:4567/index.html?print-pdf#/ 2/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices FLYR FLYR Revenue management system for airlines Offices in San Francisco, USA (PST) Kraków, Poland (CEST) Machine Learning Microservices Python GCloud Kubernetes localhost:4567/index.html?print-pdf#/ 3/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices FLYR DEVS ON PYCON CZ FLYR DEVS ON PYCON CZ localhost:4567/index.html?print-pdf#/ 4/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices IN FLYR MICROSERVICES IN FLYR MICROSERVICES IPC based on HTTP localhost:4567/index.html?print-pdf#/ 5/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices IN FLYR MICROSERVICES IN FLYR MICROSERVICES IPC based on HTTP New requirements for eCommerce use case localhost:4567/index.html?print-pdf#/ 6/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices FAN-OUT REQUESTS FAN-OUT REQUESTS localhost:4567/index.html?print-pdf#/ 7/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices PARTIAL RESPONSES PARTIAL RESPONSES localhost:4567/index.html?print-pdf#/ 8/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices PARTIAL RESPONSES PARTIAL RESPONSES localhost:4567/index.html?print-pdf#/ 9/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices IN FLYR MICROSERVICES IN FLYR MICROSERVICES IPC based on HTTP New requirements for eCommerce use case partial responses localhost:4567/index.html?print-pdf#/ 10/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices IN FLYR MICROSERVICES IN FLYR MICROSERVICES IPC based on HTTP New requirements for eCommerce use case partial responses performance localhost:4567/index.html?print-pdf#/ 11/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices OK, LET'S SWITCH FROM HTTP OK, LET'S SWITCH FROM HTTP TO... A... MQ? TO... A... MQ? localhost:4567/index.html?print-pdf#/ 12/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices BUT... BUT... localhost:4567/index.html?print-pdf#/ 13/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices BUT... BUT... We have HTTP-based infrastructure localhost:4567/index.html?print-pdf#/ 14/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices BUT... BUT... We have HTTP-based infrastructure We have HTTP developers experience and habits localhost:4567/index.html?print-pdf#/ 15/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices BUT... BUT... We have HTTP-based infrastructure We have HTTP developers experience and habits We lack experience with MQ-based IPC localhost:4567/index.html?print-pdf#/ 16/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices BUT... BUT... We have HTTP-based infrastructure We have HTTP developers experience and habits We lack experience with MQ-based IPC We need to do it well ;-) localhost:4567/index.html?print-pdf#/ 17/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices WITH MQ WE GET WITH MQ WE GET Flexibility Reliability Scalability Robustness localhost:4567/index.html?print-pdf#/ 18/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices NEW OPPORTUNITIES... NEW OPPORTUNITIES... localhost:4567/index.html?print-pdf#/ 19/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices NEW OPPORTUNITIES... NEW OPPORTUNITIES... TO MAKE TO MAKE NEW MISTAKES NEW MISTAKES localhost:4567/index.html?print-pdf#/ 20/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices NEW OPPORTUNITIES... NEW OPPORTUNITIES... TO MAKE TO MAKE NEW MISTAKES NEW MISTAKES Concurrency issues localhost:4567/index.html?print-pdf#/ 21/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices NEW OPPORTUNITIES... NEW OPPORTUNITIES... TO MAKE TO MAKE NEW MISTAKES NEW MISTAKES Concurrency issues Race conditions localhost:4567/index.html?print-pdf#/ 22/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices NEW OPPORTUNITIES... NEW OPPORTUNITIES... TO MAKE TO MAKE NEW MISTAKES NEW MISTAKES Concurrency issues Race conditions Incorrect broker choice localhost:4567/index.html?print-pdf#/ 23/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices NEW OPPORTUNITIES... NEW OPPORTUNITIES... TO MAKE TO MAKE NEW MISTAKES NEW MISTAKES Concurrency issues Race conditions Incorrect broker choice Incorrect driver for the correct broker localhost:4567/index.html?print-pdf#/ 24/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices NEW OPPORTUNITIES... NEW OPPORTUNITIES... TO MAKE TO MAKE NEW MISTAKES NEW MISTAKES Concurrency issues Race conditions Incorrect broker choice Incorrect driver for the correct broker Incorrect usage patterns for the correct driver localhost:4567/index.html?print-pdf#/ 25/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices NEW OPPORTUNITIES... NEW OPPORTUNITIES... TO MAKE TO MAKE NEW MISTAKES NEW MISTAKES Concurrency issues Race conditions Incorrect broker choice Incorrect driver for the correct broker Incorrect usage patterns for the correct driver Incorrect usage patterns for the correct broker localhost:4567/index.html?print-pdf#/ 26/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices NEW OPPORTUNITIES... NEW OPPORTUNITIES... TO MAKE TO MAKE NEW MISTAKES NEW MISTAKES Concurrency issues Race conditions Incorrect broker choice Incorrect driver for the correct broker Incorrect usage patterns for the correct driver Incorrect usage patterns for the correct broker . . . localhost:4567/index.html?print-pdf#/ 27/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices LET'S CONTAIN THE RISKS IN LET'S CONTAIN THE RISKS IN ONE PLACE ONE PLACE localhost:4567/index.html?print-pdf#/ 28/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices LET'S CONTAIN THE RISKS IN LET'S CONTAIN THE RISKS IN ONE PLACE ONE PLACE (A LIBRARY) (A LIBRARY) localhost:4567/index.html?print-pdf#/ 29/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices AND CALL THIS PLACE AND CALL THIS PLACE async_calls async_calls localhost:4567/index.html?print-pdf#/ 30/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
7/17/2019 From HTTP to Kafka-based microservices AND CALL THIS PLACE AND CALL THIS PLACE async_calls async_calls (FOR THE LACK OF BETTER CONCEPT) (FOR THE LACK OF BETTER CONCEPT) localhost:4567/index.html?print-pdf#/ 31/83 From HTTP to Kafka-based microservices – Wojciech.Rzasa@flyrlabs.com – @wrzasa
Recommend
More recommend