Microservices for the rest of us
-
Upload
datawire -
Category
Technology
-
view
405 -
download
2
Transcript of Microservices for the rest of us
![Page 1: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/1.jpg)
Microservices for the rest of usLessons you can (safely) ignore from Netflix, Amazon, and other unicorns
![Page 2: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/2.jpg)
datawire.io 2
![Page 3: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/3.jpg)
datawire.io 3
Amazon, 2008
![Page 4: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/4.jpg)
Hailo, 2014
![Page 5: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/5.jpg)
Netflix
![Page 6: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/6.jpg)
What do you need if you’re building the Death Star?
![Page 7: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/7.jpg)
Use the Force.
![Page 8: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/8.jpg)
What’s the Force?
backpressure rate limiting retries timeouts asynchronous RPC asynchronous one way messaging
circuit breakers service discovery code packaging continuous deployment scheduling …
![Page 9: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/9.jpg)
![Page 10: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/10.jpg)
I don’t need The Force to build my
microservices architecture!
![Page 11: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/11.jpg)
Adopting Microservices
Chewbecca The Force
Number of services at Uber over time
![Page 12: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/12.jpg)
Microservices = Service Oriented Development
Developer happiness, not architecture
(Google “smiling developers”)
Experiment and iterate
(don’t try to do all your design upfront)
![Page 13: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/13.jpg)
![Page 14: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/14.jpg)
Make microservices cheap — the developer workflow
Code a microservice Test the microservice Run and deploy the microservice Integration test Debug
![Page 15: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/15.jpg)
Code
You can use a plain ol’ webapp for the most part. HTTP and JSON are Good Enough (tm).
Test
Test your webapp / RESTful APIs using your standard testing tools.
![Page 16: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/16.jpg)
Run and Deploy
Continuous deployment is critical for rapid iteration Docker on Mesos, k8s is the trendy standard EC2 works, too!
![Page 17: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/17.jpg)
Integration Testing
Complete Integration testing before production requires massive investment in complex CI/CD Minimize the impact of a bug blowing up production
![Page 18: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/18.jpg)
Debugging
Find and fix problems quickly Integration bugs are the hardest to root cause
![Page 19: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/19.jpg)
Make microservices cheap — the developer workflow
Code a microservice Test the microservice Run and deploy the microservice Integration test Debug
![Page 20: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/20.jpg)
One more thing …
![Page 21: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/21.jpg)
Topology: the way constituent parts are interrelated or arranged.
![Page 22: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/22.jpg)
Traditionally, architects defined topology.
![Page 23: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/23.jpg)
Traditional Topology Management
Client
DNS
LB
Server
Server
ServerRouting table is (relatively) static. Routing policy is global.
resolve
traffic
![Page 24: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/24.jpg)
Now, developers can define topologies.
![Page 25: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/25.jpg)
Load Balancing
Client
Discovery Service
Service
ServiceRouting table is realtime. Routing policy is local.
routes
traffic
heartbeats
Smart endpoint
![Page 26: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/26.jpg)
Data Processing
Store
Discovery
Transform
Transform
Ingest
Ingest
Ingest
![Page 27: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/27.jpg)
Summary
Build topologies: Service discovery and routing Code / test: Webapp framework, HTTP, JSON Run and deploy: Continuous deployment pipeline Integration test: Software resilience or hard core CI Debugging: logging
![Page 28: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/28.jpg)
Demo
![Page 29: Microservices for the rest of us](https://reader034.fdocuments.us/reader034/viewer/2022051009/587e850b1a28abd6038b72ad/html5/thumbnails/29.jpg)
datawire.io 29
https://www.datawire.io https://www.datawire.io/careers/
Questions [email protected]
@rdli