Book Image

Practical Microservices

By : Umesh Ram Sharma
Book Image

Practical Microservices

By: Umesh Ram Sharma

Overview of this book

<p>A microservice architecture helps you build your application as a suite of different services. This approach has been widely adopted as it helps to easily scale up your application with reduced dependencies. This way if a part of your application is corrupted, it can be fixed easily thereby eliminating the possibility of completely shutting down your software. This book will teach you how to leverage Java to build scalable microservices. You will learn the fundamentals of this architecture and how to efficiently implement it practically.</p> <p>We start off with a brief introduction to the microservice architecture and how it fares with the other architectures. The book dives deep into essential microservice components and how to set up seamless communication between two microservice end points. You will create an effective data model and learn different ways to test and deploy a microservices. You will also learn the best way to migrate your software from a monolith to a microservice architecture.</p> <p>Finishing off with monitoring, scaling and troubleshooting, this book will set a solid foundation for you to start implementing microservices.</p>
Table of Contents (17 chapters)
Title Page
Credits
About the Author
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface

Where to start


There are two perspectives from which to approach evolving a microservice. One is from an architectural perspective and the other is from a database design perspective. We will discuss both perspectives one by one.

Architectural perspective and best practice

To start with, the best practice is to find out the feature with the lowest performance, or the feature with the least interaction. What would be even better is if you could choose a feature that does not directly interact with the user and is used to doing an offline job. Choose your service very wisely. It should not affect any other feature, and it should be completely independent of other services in terms of code, as well as the deployment cycle. For instance, we could have this service using the same database, but by using a completely independent deployment pipeline:

As in the preceding diagram, there are service layers that refer to lots of the feature's business logic. There could be a schedule jobs service or a...