Microservices plumbing

The benefits offered by the Microservice chassis pattern

Externalised Configuration

As the number of microservices grows so does the amount of separate configuration files, even more when we take in consideration all required environments, such as development, testing, staging and production. Maintaining hundreds of configurations in sync quickly becomes a daunting task.

Source: https://docs.pivotal.io/spring-cloud-services/1-5/common/index.html

Service Registry

An important feature of cloud native applications is auto-scaling, i.e. the number of instances of a microservice should vary based on its workload. However, this begs a question: how does each microservice know how many and where other instances of microservice are running, at any given time? Well, hardcoding URLs within microservices is not an option.

Using Service Discovery

Ideally, we want to change the number of instances of microservices based on the workload, and make them dynamically aware of each other. That’s where the concept of Service Discovery comes to the rescue.

Source: https://speakerdeck.com/ryanjbaxter/beginners-guide-to-spring-cloud-1

API Gateway

A gateway is a special node in a computer network, a key stopping point for data on its way to or from other networks. When a computer-server acts as a gateway, it operates as a Reverse Proxy server. When implementing complex applications, we can organise our solution in tiers. The same principle applies to microservice architecture where we can extract cross-cutting concerns off all microservices and implement them in a separate tier.

Source: https://speakerdeck.com/ryanjbaxter/beginners-guide-to-spring-cloud-1
  • authentication and authorisation
  • logging
  • auditing
  • rate limiting or throttling

API Gateway vs Service Registry

Source: Microsoft Docs
  1. Some requests are simply routed to the appropriate service — the Proxy design pattern
  2. Requests can be fanned out to multiple services — the Façade design pattern

Wrapping up — Spring Cloud

--

--

I am passionate about software engineering and architecture, and computer science in general.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
dbaltor

I am passionate about software engineering and architecture, and computer science in general.