肖然,Thoughtworks 中国区总经理、中关村智联联盟秘书长
上次与 Sam 见面交流已经是8年前的事了,当时正值《微服务设计》的原版(第1版)问世。第1版的出版恰逢微服务架构之热潮,迅速成为业界翘楚之作。而今拿到第2版的预览版,显而易见的是:内容更加丰富,篇幅大大加长。新版划分为三大板块:基础知识、具体实现、人和组织,其中的变化不仅反映了微服务领域的显著进步,也凸显了我们面临的新问题。
第2版更深入地探讨了微服务架构在规模化应用时遇到的新挑战。随着云服务和容器技术(如 Kubernetes)的普及,微服务已经成为系统设计的默认选项。然而,这种趋势也带来了服务间通信和数据一致性方面的挑战。服务数量一旦增多,传统的测试、构建和部署流程很可能变得复杂且难以管理。为了克服这些障碍,我们有必要掌握技术门槛更高的自动化解决方案。在第2版中,Sam 意在完整展现采用微服务架构所带来的全生命周期的复杂性,鼓励架构师在考虑微服务时,更多地关注长期投入的必要性。
从第1版到第2版,Sam 的主张始终如一:强调工程实践的重要性。随着 DevOps 和演进式架构等理念被主流群体接纳,越来越多的研发管理者意识到优秀的工程实践是不可或缺的。正如书中所定义的,微服务是一种强调服务可独立部署的架构方式。要成功实施微服务架构,必须有一整套端到端的工程实践作为支撑——包括基本的持续集成与持续交付、分层自动化测试,以及适应云时代的零信任和混沌工程实践。缺乏这些实践的支持,微服务的落地往往会导致研发团队面临协作上的冲突,并心生挫败感。遗憾的是,在自称采纳微服务架构的众多团队和组织中,工程实践能力的缺失依旧普遍存在。
回想起 Sam 在 Thoughtworks 的日子,他曾用“你必须是那个高个子”来形容采纳微服务的条件,这暗示了微服务对研发能力和技术平台的高要求。因此,我们必须重视提升工程实践能力,并确保技术平台的发展足以应对微服务带来的挑战。十多年来,得益于研发实践的积累和技术平台的完善,部分复杂性得到了有效的抽象和管理。然而,随着微服务的广泛采用和演进,复杂性也在不断增长。Sam 适时更新第2版,正是为了结合实际案例,帮助大家判断微服务是否适用于他们的项目。
最后,衷心感谢耐心将这本关于微服务的翔实参考书呈现给中国技术社区的译者们。尽管技术日新月异,但我相信,这样系统性的提炼和总结,依然是我们技术成长的坚实基石。