Book Image

Python Microservices Development – 2nd edition - Second Edition

By : Simon Fraser, Tarek Ziadé
Book Image

Python Microservices Development – 2nd edition - Second Edition

By: Simon Fraser, Tarek Ziadé

Overview of this book

The small scope and self-contained nature of microservices make them faster, cleaner, and more scalable than code-heavy monolithic applications. However, building microservices architecture that is efficient as well as lightweight into your applications can be challenging due to the complexity of all the interacting pieces. Python Microservices Development, Second Edition will teach you how to overcome these issues and craft applications that are built as small standard units using proven best practices and avoiding common pitfalls. Through hands-on examples, this book will help you to build efficient microservices using Quart, SQLAlchemy, and other modern Python tools In this updated edition, you will learn how to secure connections between services and how to script Nginx using Lua to build web application firewall features such as rate limiting. Python Microservices Development, Second Edition describes how to use containers and AWS to deploy your services. By the end of the book, you’ll have created a complete Python application based on microservices.
Table of Contents (14 chapters)
12
Other Books You May Enjoy
13
Index

Summary

The Jeeves bot is a typical web app that interacts with a database and a few backend services. The only unusual feature is that it receives most of its workload from one endpoint. Building this application with a monolithic architecture has allowed us to quickly iterate over several choices and get a prototype that works well during development and low-volume usage.

From our discussions about the actions, it should be clear that there are good candidates for migration to a microservice. If we run this bot for dozens or hundreds of Slack workspaces, then we may find that one component is used much more than others, or has reliability issues that are difficult to address in the current architecture. How should the application scale up? What happens when an external service it relies upon is encountering errors? What happens if one of our own components—our database or message broker—goes down?

In the next chapter, we will look at these issues: how to change...