Pros and Cons of Microservices Architecture
This article discusses why microservices have become popular, outlines their advantages such as continuous delivery, easier maintenance, independent scaling, fault tolerance, and technology flexibility, and also examines the challenges like service decomposition, distributed system complexities, and multi‑team coordination, helping readers decide when to adopt them.
Microservices have become a hot trend, with many individuals and companies eager to try them.
The author notes that job seekers often view companies using microservices as more attractive, while those still using monolithic or legacy SSH architectures are seen as less promising, highlighting the perceived importance of microservices.
However, not every project or company needs microservices. The author recounts a case where a friend’s tea company forced microservices on a new project, leading to excessive changes across many services for a small modification, ultimately causing the architect to leave and the project to revert to a monolith.
This example shows that adopting microservices should depend on the specific project and company context, without blindly following trends.
Previously, the author discussed problems with monolithic applications.
Today, the author explores the benefits and drawbacks of microservices.
Microservices Advantages
Large Projects Can Deliver Continuously
Microservices split a large system into many independent services, each handled by its own team with dedicated development and deployment pipelines, allowing parallel work without interference.
Each small service can be tested and deployed independently, preventing a single change from affecting the entire system and enabling distributed team ownership.
The author recalls a tech event where a CEO mentioned releasing a new version while speaking, illustrating the rapid release capability of microservices compared to monoliths.
Easy Maintenance
This point is self‑explanatory.
In a monolith, new developers may struggle to understand the whole codebase, whereas microservices are small and focused, making them easier to grasp and develop.
Because microservices are smaller, development tools like Eclipse or IDEA start and test faster.
Independent Scaling of Services
Independent scaling allows better utilization of hardware resources.
Monolithic applications must run on machines sized for the most demanding module, while microservices can be deployed separately, enabling targeted scaling and clustering without affecting other services.
Higher Fault Tolerance
Since each microservice runs independently, failures can be isolated; a problem in one service (e.g., a memory leak) does not impact the others.
Flexibility to Adopt Latest Technologies
Monolithic applications face painful upgrades, often resulting in outdated tech stacks persisting for years.
In microservices, each service can be upgraded independently, allowing teams to experiment with new technologies at low risk.
Microservices Drawbacks
Like any approach, microservices present challenges that, if mishandled, can backfire.
Service Decomposition
The author believes this is the biggest challenge; poorly split services lead to chaos and regret.
Distributed System Challenges
Before using distributed architecture, you only had one problem: insufficient concurrency. After adopting it, you get many new problems: data synchronization, primary key generation, circuit breaking, distributed transactions, etc.
This joke illustrates the complexities introduced by distributed systems.
Coordination Among Multiple Development Teams
Monolithic development requires managing a single team, but microservices involve many teams, each responsible for different services, demanding coordination and posing project management challenges.
The article concludes by inviting readers to share their experiences with microservices.
Reference:
[1] Chris Richardson. 微服务架构设计模式[M]. 北京:机械工业出版社,2019.
Full-Stack Internet Architecture
Introducing full-stack Internet architecture technologies centered on Java
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.