Logo
Back

General introduction to the topic of microservices

Published on:

September 14, 2021

Reading time:

minutes

This article introduces you to microservices in general.


What are microservices?

Microservices are an architectural concept for application development. What distinguishes them from traditional monolithic approaches is the division of applications into their core functions. Each function or service can be designed and implemented independently. This means that individual services can function without affecting other services in any way. 
 
The microservice is a core function and thus runs independently of other services. Microservices architecture is about more than just bundling such core functions. It is about structuring communication and development teams to enable future scalability and integration of new features. 
 
The combination of product and working method goes back to Conway's Law: The computer scientist Conway stated as early as 1967 that the anatomy of systems and programs always resembles that of the group entrusted with their development. 
 

Microservice architecture versus monolithic architecture

While the monolith architecture tries to bring everything together in one program, microservices are only responsible for one purpose and work independently of each other. Traditional software development works like a monolith: all tasks are implemented in one large application program. All individual services are presented through a user interface and access an enormous database, all implemented in a single application. The microservices approach is based on modules: Each microservice performs only one task. The workflows are as different as the results of the two approaches. 
 
While in a microservice architecture the team is only concerned with the elaboration of a microservice, in monoliths the grouping is organized differently. The working groups are arranged according to the technologies they work with: One team is dedicated to databases, another programs individual services, and a third deals with user interface design. Other workgroups are responsible for update release, maintenance, and analysis. In a monolith architecture, all commands are interdependent.  
 

What is meant by this architectural style?

Microservices are not only software technologies, but also the way developers work: What is the best way to implement large software projects? As a general rule of thumb, projects using microservices could always follow Ken Thompson's Unix philosophy: "Do one thing, do it well". Thus, developers should focus on one activity, but perfect it. The statement is not only a coding tip, but also describes how the individual microservices work. 
 
If companies understand this from a software development perspective, they should form small working groups that take care of a service, implemented in microservices. From a project management perspective, it's about focusing workgroups and ensuring their autonomy. Instead of centralized management, each team takes full responsibility for its end product, for the entire development cycle: from creation to delivery to subsequent monitoring. This way of working has many advantages and the result is a modular software architecture. 
 
The microservices architecture is essentially a further development of the Service Oriented Architecture (SOA): Small services also play a role in this architecture pattern. However, they are still integrated into a larger system and are not as autonomous as one would expect microservices to be. Just as there is no exact definition for the latter, SOA is also a rather vague term.  
 

For whom/when are microservices suitable?

Microservices offer a modular structure that especially benefits large teams. The main advantage of a microservice architecture is its high responsiveness. Complex business situations require flexible architecture and autonomous teams. The work culture and IT projects required for this differ significantly from the traditional.  
 
Microservices aim to achieve autonomy through professional completeness. They succeed only rudimentarily, especially in the special case of standalone web systems. Partial completion and partial consistency must be considered from a technical point of view, users can see intermediate states and must be able to work with states that differ between subsystems. 
 
Complexity, autonomy and consistency serve as criteria to make technical decisions for or against the use of microservices. Zone diagrams allow organizations to find an application and show its suitability for microservices.  
 


Overview of the entire blog series on microservices

 

just make it simple

Wilhelmine-Reichard-Str. 26 80935 Munich

Mon - Fri 8:00 AM - 17:30 PM

Copyright © 2024 asioso. All Rights Reserved.