Microservice Architecture at Medium
本文介绍了 Medium 的 Microservices 架构。Medium 跟进的比较晚,在不伤害开发的生产力的前提下,他们总结出了几点策略:
- 新服务需要有价值,要么是产品上的,要么是工程上的。
- 服务之间不要共享存储。具体来说,可以抽象一个服务专门处理一类数据,或者 grpc/http pubsub, 或者用 ETL 管线同步数据。
- 区分 building a service & running a service。
- 服务需要很容易被观测
- 不是每个服务都需要从头撸
- 仔细处理服务失效
- 防止 microservice syndromes 粗线:用 微服务会引入更多问题。例如需要仔细建模,衡量引入的语言和技术栈,服务耦合,observability,倾向于开发新服务而不是修bug。
Medium 目前的技术栈是:一个大 Node 应用为主,一些小服务为辅。