What Are Microservices?

When To Use Microservices And What Are The Advantages?

Praveena Thavarajah
TheLeanProgrammer
2 min readAug 7, 2021

--

The software architecture organizes the software structures (components, interactions of the components with each other, environment, principles used to design the software product).

A software architect is a person who handles design architecture for a particular application.

The software architect’s functions are, 👇

1. Identify the system’s structure.

2. Identify the use-cases relevant to different scenarios.

3. Organize the user requirements (functional and non-functional)

There are many software architectures. When developing an application, the most suitable architecture has to select. Fault selection of architecture leads to the failure of an application. So the time and allocated budget will become useless.

Micro-services

Micro-services is an architecture, which has Service Oriented Architecture (SOA). SOA has an application scope. It is suitable for a large-scale application. The micro-service architecture uses to develop an application and structure it as a group of services.

This architecture has five core components are, 👇

1. Micro-service

2. Container

3. Service mesh

4. Service discovery

5. API gateway.

When to use Micro-services? 💁

  1. To build web applications that have to develop within a short period.
  2. To structure independent and individual services.
  3. To construct reusable services to use in many channels.
  4. To build common applications for enterprises.

Applications using micro-service architecture are 👇

  • Netflix
  • Uber

Advantages

1. Platform independent.

The micro-services can develop by different developing teams using any technology. It can separately deploy in the cloud.

2.Usages of lightweight protocols.

3. Supports containerization and cloud computing.

4. Presents of closely coupled services.

5. Scalable

It helps to scale each service when required.

6. Consume less time to market.

7. Speeds the CI/CD pipeline.

8. Easy to debug.

Disadvantages ❎

1. Poor performance

Advanced tools require to communicate. So micro-service architecture will be problematic to handle by small companies.

2.Message overhead

It leads to poor communication between services.

3. Complex

This architecture is complex because testing and monitoring are difficult.

4. Difficult to maintain

It has poor load balancing

5. Poor security

Conclusion

It is very important to have knowledge about software architectures. When developing and deploying an application, we need to select a suitable architecture before the coding process. If not, the entire team has to face issues at the end.

Don’t forget to follow The Lean Programmer Publication for more such articles, and subscribe to our newsletter tinyletter.com/TheLeanProgrammer

--

--