是时候聊一下程序员争相追逐的“香馍馍” Istio了

社区客服

2017 年年初,我所在的公司开始对整个业务系统进行重构和微服务化,替换掉因业务发展而不堪重负的、运行了 10 年的庞大的单体应用。我有幸作为小组技术负责人,负责部分业务的微服务架构的设计和开发工作。

随着微服务迁移工作的深入,服务化过程中遇到的问题越来越多,痛点也越加明显。当我们的业务被拆分成若干个服务时,不可避免地要进行服务之间的交互,很多时候需要多个服务共同协作才能完成一个完整的业务流程。在这种情况下,服务间的通信问题也暴露得更加明显。我开始思考如何实现分布式系统的弹性设计,以及解决容错、监控等问题。

我偶然通过阅读“What’s a service mesh? And why do I need one?”这篇文章接触到服务网格概念,并了解到它是解决微服务通信问题的好帮手。与此同时,Istio 也发布了 1.0 版本。在仔细了解了 Istio 的整体技术架构后,我深深地被这种优雅的设计所折服,各组件职责清晰、松散耦合,数据平面可替换,Mixer 的适配器模式又提供了强大的可扩展性。加之 Google、IBM 和 Lyft 的支持,我预感 Istio 会和 Kubernetes一样,成为又一个明星级的产品。

服务网格是一个新颖的概念,Istio 作为它的一个实现产品,诞生也不到两年的时间,网络上很难找到相关的学习资源,主要的学习资料就是 Istio 官方提供的文档。这份文档虽然十分详尽地介绍了 Istio 的方方面面,但语言较为晦涩,内容组织也不适合初学者。今天这本《Istio实战指南》恰好满足了初学者的需求。