Introduction
When I started to work at Mozilla 7 years ago, we began to write web services for some Firefox features. Some of them eventually became microservices. This change did not happen over time, but gradually. The first driver of this shift was the fact that we moved all our services to a cloud provider and started to interact with some of their third-party services. When you host your app in the cloud, a microservice architecture becomes a natural fit. The other driver was the Firefox Account project. We wanted to offer a single identity to our users to interact with our services from Firefox. By doing so, all our services had to interact with the same identity provider, and some server-side pieces started to get redesigned as microservices to be more efficient in that context.
I think a lot of web developers out there have been through a similar experience or are going through it right now. I also believe Python is one of the best languages to write small and efficient microservices; its ecosystem is vibrant and the latest Python 3 features make Python competitive in that field against Node.js, which has had a stellar growth in the last 5 years.
This is what is this book is all about; I wanted to share my experience of writing microservices in Python through a simple use case that I have created for this purpose--Runnerly, which is available on GitHub for you to study. You can interact with me there, point mistakes if you see any, and we can continue to learn about writing excellent Python apps together.