Microservice Trade-Offs
Many development teams have found the microservices architectural style to be a superior approach to a monolithic architecture. But other teams have found them to be a productivity-sapping burden. Like any architectural style, microservices bring costs and benefits. To make a sensible choice you have to understand these and apply them to your specific context.
![Photo of Martin Fowler](http://martinfowler.com/mf.jpg)
01 July 2015
- Strong Module Boundaries: Microservices reinforce modular structure, which is particularly important for larger teams.
- Independent Deployment: Simple services are easier to deploy, and since they are autonomous, are less likely to cause system failures when they go wrong.
- Technology Diversity: With microservices you can mix multiple languages, development frameworks and data-storage technologies.
Microservices provide benefits…
- Distribution: Distributed systems are harder to program, since remote calls are slow and are always at risk of failure.
- Eventual Consistency: Maintaining strong consistency is extremely difficult for a distributed system, which means everyone has to manage eventual consistency.
- Operational Complexity: You need a mature operations team to manage lots of services, which are being redeployed regularly.
…but come with costs
'개발자' 카테고리의 다른 글
(번역) 서버리스 아키텍처 (1) | 2016.06.24 |
---|---|
서버리스(Serverless)가 온다! (1) | 2016.06.15 |
자바가 아닌 다른 언어를 배워야 하는 이유 (0) | 2016.05.12 |
<웹진 172호 : 인사이드 이슈> 오픈 소스, 새로운 패러다임을 만들다 (0) | 2016.05.12 |
프로그래밍 입문자가 가장 원하는 직업은? (0) | 2016.05.09 |