DEV Community

Cover image for Understanding Microservices: A Technical Overview
Adaumir Paixão Victor da Costa
Adaumir Paixão Victor da Costa

Posted on

1

Understanding Microservices: A Technical Overview

Since the end of 2017, the term "microservices" has become increasingly common. But what exactly are microservices?

"Microservices are small, autonomous services working together to meet a specific demand." or "Independent services that together compose a single system."

To clarify, microservices represent a software architecture, not merely a web service.

As many systems and applications grow, it becomes increasingly challenging to implement changes. A simple change can necessitate a massive deployment. With luck, a deployment pipeline can ensure everything functions correctly before going live.

We are moving towards a scenario where we use physical servers for deployment. Now imagine deploying in the cloud: the cost of a simple change can be exorbitant, requiring more resources and generating unnecessary expenses. But then the question arises: is it possible to scale monolithic systems? Yes, it is possible. Even with horizontal scalability and load balancing, maintaining it over time is problematic.

Microservices are not simple; they demand more development time than monolithic systems. Analyzing whether to create a new system or convert a monolithic one must be done with great care and attention. Otherwise, we might end up creating a much bigger problem. So how can we be sure we're on the right track? This depends on the company's business rules and the system's scope.

Key Characteristics of Monolithic Architecture

  • Multiple functionalities in a single structure.
  • High coupling.
  • Application unavailability in case of changes.
  • Restricted to one technology.
  • Suitable for small applications.
  • Low scalability.

Key Characteristics of Microservices Architecture

  • Software modularized into small services.
  • Low coupling.
  • Independent deployment and testing.
  • High availability.
  • Open to any technology.
  • Suitable for large applications.
  • High scalability.

By adopting a microservices architecture, organizations can achieve greater flexibility, scalability, and maintainability. However, it's crucial to approach this transition with a thorough understanding of the challenges and requirements involved. Careful planning and consideration of the specific needs and context of the application are essential to harnessing the full benefits of microservices.

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay