Continuous Transformation Blog

Microservices: What They Are and Why Use Them

Written by Laura Mauersberger | August 14, 2017

The term "micro web services" was first used by Dr. Peter Rogers during a conference on cloud computing in 2005. "Microservices" themselves premiered at an event for software architects in 2011, where the term was used to describe a style of architecture that many attendees were experimenting with at the time. Netflix and Amazon were among the early pioneers of microservices.

The popularity of microservices has recently been on the rise because they can solve many current IT challenges such as increasing speed, scalability of applications and rapid test processes.

The philosophy behind microservices

The microservices style of architecture develops complex application software from small, individual applications that communicate with each other using language-independent interfaces (APIs). Companies run into trouble if they are unable to scale monolithic architecture that has developed over time, if their architecture is difficult to upgrade or maintenance becomes too complex. Microservices can be the answer to this problem, as they break down complex tasks into smaller processes that work independently of each other.

Microservices architecture

To create a sample microservices architecture we first have to decide how we want to structure our microservices. For example, we could divide them vertically into levels:

Central services—Handle business data persistence and apply business rules and other logic.

Composite services—Organize either a number of central services in order to fulfill a common task, or aggregate information from several central services.

API services —Open up a functionality externally to e.g. allow third parties to develop creative applications that utilize the underlying functionality in the system landscape.

Horizontally we would in this example apply a structure based on domains in the sense of business functionalities.

It is extremely important to define a target architecture before beginning to scale microservices, otherwise the IT landscape may end up devolving into chaos and exhibit worse properties than the existing monolithic applications.