Book Image

Hands-On Microservices with Django

By : Tieme Woldman
Book Image

Hands-On Microservices with Django

By: Tieme Woldman

Overview of this book

Are you a Django developer looking to leverage microservices to create optimized and scalable web applications? If yes, then this book is for you. With microservices, you can split an application into self-contained services, each with a specific scope running asynchronously while collectively executing processes. Written by an experienced Python developer, Hands-On Microservices with Django teaches you how to develop and deploy microservices using Django and accompanying components such as Celery and Redis. You'll start by learning the principles of microservices and message/task queues and how to design them effectively. Next, you’ll focus on building your first microservices with Django RESTful APIs (DFR) and RabbitMQ, mastering the fundamentals along the way. As you progress, you’ll get to grips with dockerizing your microservices. Later, you’ll discover how to optimize and secure them for production environments. By the end of this book, you’ll have the skills you need to design and develop production-ready Django microservices applications with DFR, Celery/RabbitMQ, Redis, and Django's cache framework.
Table of Contents (18 chapters)
Free Chapter
1
Part 1:Introducing Microservices and Getting Started
5
Part 2:Building the Microservices Foundation
11
Part 3:Taking Microservices to the Production Level

Applying multi-container deployment with Docker Compose

In addition to building separate containers for each application component, we can also build multiple containers at once for the application components. This simplifies deployment and saves us time.

To containerize our microservices application, we distinguish the following components as potential containers:

Figure 8.4 – Multi-container microservices application

Figure 8.4 – Multi-container microservices application

This way, we’ll have isolated containers for:

  • The Django subscription app running at port 8000.
  • Redis as the message broker for Celery.
  • The Celery workers for matching an address and sending a confirmation email.
  • The RESTful API running at port 7000.

We could also run MongoDB in a container, but since we use the cloud version, we have already isolated the database.

We could create these containers individually. But with the Docker compose facility, we can create the containers and necessary...