Istio入门与实战

毛广献
前言 近几年来,容器技术的飞速发展使得微服务技术更容易落地,微服务架构在业界逐渐流行起来。但是微服务架构对基础设施要求较高,微服务依赖持续集成、服务注册、服务发现、负载均衡、健康检测、配置管理、服务路由、服务容错、日志收集、指标收集、调用链追踪等,而构建这一套基础设施的成本巨大。因此,微服务相关的框架逐渐露出水面,比如Java语言的Spring Cloud框架。虽然这些微服务框架为我们提供了很多便利,但由于这些框架是与编程语言绑定的,使得我们应用的技术栈受到了限制。即使后来有其他的微服务框架也支持多编程语言的技术栈,但由于这些微服务框架代码对服务代码入侵严重,给后续服务框架的bug修复和版本升级带来了一定的困难。所以,服务网格的概念一经提出,便得到了很多人的支持,人们对这项技术抱有很大的期望,希望能解决当前微服务所遇到的问题。 当我第一次接触服务网格技术的时候,就觉得服务网格将来可能会像IaaS、PaaS一样成为业界的主流技术,会得到广泛应用。其实,服务网格并没有提供什么新的概念和功能,它只是把原来服务框架所做的功能完全独立出来,整合了一个服务网格的基础设施层。这个改变看似很小,但是能使服务与服务治理功能实现完全解耦,这个影响是巨大的。 2017年5月,谷歌、IBM、Lyft等公司共同努力实现的开源服务网格Istio正式发布了第一个版本。而后又一个服务网格开源实现Conduit开始启航,服务网格进入了更多技术人员的视野,经过努力,Istio在2018年7月正式发布了1.0.0版本。 2018年是服务网格快速发展的一年,Istio发布的1.0.0版本标志着Istio已经成熟到可以接受生产流量的考验。2019年服务网格将会持续保持热度,作为一名技术人员,现在是时候了解一下服务网格技术了。而在所有的开源服务网格实现中,最成熟的肯定是Istio。因此,要学习和了解服务网格,首先应…