高可用可伸缩微服务架构:基于Dubbo、Spring Cloud和Service Mesh
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

序二

微服务是近几年流行起来的软件架构风格。回顾历史,从传统的单体应用架构,到面向服务架构SOA,再到今天逐渐被大众接受的微服务架构MSA,本质上来说,都是为了解决随着软件复杂度的上升,如何有效提升开发效率、发布效率的问题。

同样,这个问题在阿里巴巴电商系统的发展历程中也遇到过。由于业务体量巨大、需求变更频繁,导致淘宝和淘宝商城(天猫的前身)的研发效率变得低下,在这个背景下,2008年10月立项了著名的“五彩石”项目,对电商系统做了系统的拆分,完成了服务化改造。通过这个项目,孕育出了以HSF、Notify为代表的分布式中间件组件。并且,在随后的十年中,分布式中间件蓬勃发展,从软负载中心Config Server、配置中心Diamond Server,到全链路追踪EagleEye、限流Sentinel,再到全链路压测体系,可以说,基于分布式中间件构建的整个服务化体系是支撑“双11”GMV从2019年的5000万元到今天惊人的2135亿元的技术基石。正是服务化改造的成功实施和不断演进,为每年万亿流量的洪峰及层出不穷的大促玩法保驾护航了有10个年头。

当然,“没有银弹”的定律是亘古不变的。微服务架构在提升开发效率、提升系统扩展能力的同时,也带来了诸多复杂性,比如:运维上的开销、跨进程通信联调的问题、分布式系统的学习成本、排查问题的难度,以及测试回归上的诸多问题。所以,在采用微服务架构之前,要对上面提到的这些挑战、自己的业务,以及自己团队的技能集有着很清醒的了解,切勿为了微服务而微服务。即使是在选择了微服务架构之后,也会面临技术栈选型的问题,从国内广泛使用的Apache Dubbo,到国际上的Spring Cloud, JavaEE Micoprofile领域的JBoss Wildfly,再到最近开始提出的Cloud Native MicroServices,选择并成功实施其中的一种技术栈,成为广大架构师们挠头的事情。好在现在出现了一本《高可用可伸缩微服务架构》,从微服务基础介绍起,横向地比较了三种有代表性的微服务架构选型,探讨了微服务架构中后期需要解决的事务、网关、服务编排、高可用等高级话题,并深入分享了实战案例。整本书从基础概念到高级话题,从理论到实践都有涉及,面面俱到,实属架构师案头不可或缺的参考书。

很荣幸在Apache Dubbo准备从阿帕奇软件基金会毕业并成为顶级项目之际,应本书作者之一,也是Apache Dubbo PPMC之一的秦金卫先生的邀请来为本书作序。在今年Apache Dubbo的规划中,云原生微服务是路线图中的重点。也以此序与诸位读者共勉,期望Apache Dubbo能够成为各位在架构选型中重点考虑的一环。


罗毅

(花名北纬,阿里巴巴高级技术专家,Apache Dubbo负责人)