Scaling your services: Understanding the Service Discovery and Service Mesh

Scaling your services: Understanding the Service Discovery and Service Mesh

Let's take our traditional monolith and see what’s good with it. Let's say, our monolith has 4 modules — A, B, C, and D. Now whenever A wants to talk to B, it's very easy.

In today’s era, everyone is talking about microservices. The journey of the microservice architecture begins with a monolith. In a monolith, we are packing our entire app as a single unit, we are developing it and deploying it as a single app. A big chunk of code in a single repository, which is hard to maintain and scale. In order to handle the problems related to the monoliths, there is a common solution i.e. splitting the monolith in the number of manageable, independent services and scale them separately as and when required. These smaller services are known as microservices.

Let's take our traditional monolith and see what’s good with it. Let's say, our monolith has 4 modules — A, B, C, and D. Now whenever A wants to talk to B, it's very easy. It's just a function call as A will be able to call a public method of B as they are the part of the same app. But there exists a lot of problems with such a system like:

  1. If there is a bug in module A and the code is unable to compile. This will bring our entire service down
  2. If the load on module A is much much greater than module B, we are not able to scale module A independently.
  3. The release of module A is dependent on the release of module B

Therefore, it is suggested splitting our monoliths into smaller services.

Image for post

Figure 1 — Splitting a monolith into smaller services

But in a distributed setup, we have to face many challenges like how will module A gonna interact with module B.

Image for post

Figure 2 — Services communicating via a load balancer

software-architecture software-engineering service-mesh programming microservices

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

The Service Mesh in the Microservices World - DZone Microservices

In this article, take a look at the service mesh in the microservices world. The software industry has come a long journey and throughout this journey, Software Architecture has evolved a lot. Starting with 1-tier (Single-node), 2-tier (Client/ Server), 3-tier, and Distributed are some of the Software Architectural patterns we saw in this journey.

Software Developer vs Software Engineer — Differences: Bogus or Real?

In this article, see if there are any differences between software developers and software engineers. What you’re about to read mostly revolves around my personal thoughts, deductions, and offbeat imagination. If you have different sentiments, add them in the comment section, and let’s dispute! So, today’s topic…

Serverless Vs Microservices Architecture - A Deep Dive

Companies need to be thinking long-term before even starting a software development project. These needs are solved at the level of architecture: business owners want to assure agility, scalability, and performance.

Road to Simplicity: Hexagonal Architecture [Part One]

Software writing taught me that: a well written software is a simple software.

Science and Engineering in Software Architecture

Science and Engineering in Software Architecture - We are passing through tough times, “The moment everything changed” with COVID-19, quarentine, people trying adapt their day to day…