Problem statement

In microservice architectures, we typically have a number of small microservices interacting with each other instead of a set of big monolithic applications. Each microservice is typically deployed in multiple environments--development, testing, load test, staging, and production. In addition, there can be multiple instances of microservices in different environments. For example, a specific microservice might be handling heavy load. There might be multiple production instances for that microservice in production.

The configuration of an application typically contains the following:

  • Database configuration: Details needed to connect to the database
  • Message broker configuration: Any configuration needed to connect to AMQP or similar resources
  • External services configuration: Other services that the microservice needs
  • Microservice configuration: Typical configuration related to the business logic of the microservice

Each instance of a microservice can have its own configuration--different databases, different external services it consumes, among others. For example, if a microservice is deployed in five environments and there are four instances in each environment, the microservice can have a total of 20 different configurations.

The following figure shows typical configurations needed for Microservice A. We are looking at two instances in development, three instances in QA, one instance in the stage, and four instances in production:

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset