推荐序1

CNCF所提出的云原生概念在相当短的时间内得到了来自Alibaba、Google、IBM、Pivotal等公司的支持与参与,背后的核心驱动力在于通过打造“事实标准”的软件去解决云厂商对客户的锁定问题。

云原生的本质,是解决应用的弹性(resiliency)、易用性(usability)和可移植性(portability)。当这“三性”得到妥善的解决后,客户所开发的(分布式)应用可以方便、高效地同时部署于多个云厂商所提供的云服务之上,这不仅解决客户所担心的技术锁定问题,还使得应用能很好地满足法规(指要求某些影响国计民生的应用必须同时部署于多个云厂商的云上)、全球多活等严苛的要求。

在解决“三性”的道路上,Service Mesh被视为新一代分布式应用架构的软件基础设施,并被明确地写入了云原生概念的定义中。Service Mesh可以理解为是微服务软件架构(microservices)的进一步延伸,用于解决大规模微服务应用所面临的多语言支持、服务全局最优治理、服务(全球)发现与路由、安全保障等挑战的关键技术手段。

开源软件Istio的出现,有望成为云原生中Service Mesh的软件事实标准。Istio所提出的“数据平面”(Istio中的Pilot-discovery、Mixer等组件)和“控制平面”(Envoy)通过很好的概念切分践行着软件行业解决复杂问题的终级范式——分而治之,这两个“平面”外加“运维平面”(Service Mesh中并没有定义)将能很好地助力解决云原生所致力于解决的“三性”问题。

Service Mesh的最高境界在于让分布式应用无须关注服务(全球)发现与路由、限流、降级、熔断、安全等通用问题,但达到这一目标并非一蹴而就,这就需要同仁们在各自的岗位上共同学习、运用和成就这一技术。本书的出现能帮助读者更好地理解以Istio为代表的Service Mesh技术背后的设计思路和了解阶段性的探索成果。

李云 阿里巴巴中间件高级技术专家