Book Image

Microservice Patterns and Best Practices

By : Vinicius Feitosa Pacheco
Book Image

Microservice Patterns and Best Practices

By: Vinicius Feitosa Pacheco

Overview of this book

Microservices are a hot trend in the development world right now. Many enterprises have adopted this approach to achieve agility and the continuous delivery of applications to gain a competitive advantage. This book will take you through different design patterns at different stages of the microservice application development along with their best practices. Microservice Patterns and Best Practices starts with the learning of microservices key concepts and showing how to make the right choices while designing microservices. You will then move onto internal microservices application patterns, such as caching strategy, asynchronism, CQRS and event sourcing, circuit breaker, and bulkheads. As you progress, you'll learn the design patterns of microservices. The book will guide you on where to use the perfect design pattern at the application development stage and how to break monolithic application into microservices. You will also be taken through the best practices and patterns involved while testing, securing, and deploying your microservice application. At the end of the book, you will easily be able to create interoperable microservices, which are testable and prepared for optimum performance.
Table of Contents (20 chapters)
Title Page
Dedication
Packt Upsell
Contributors
Preface
Index

Bulkheads – using the ecosystem against failures


Throughout this chapter, we've talked about the prevention of failures and how we can develop an application with high availability and resilience. In this section, we will see how our structure can protect us.

Designing for redundancy

By the time our application has performed in only one instance and is very flexible due to the distribution of components in containers, we are still very susceptible to systemic failure.

The use of redundancy is an interesting approach to solving this problem. With redundancy, even if a node of the application is lost, the others can continue responding.

A good example of redundancy for microservices consists of a load balancer with a usage policy to redirect the request. Many nodes can be created, and if one of these nodes fails, there's still another available to respond.

The following diagram seeks to show exactly that. A request is sent to the load balancer, which, according to some rule chosen by the development...