欢迎大家来到软负载世界,这是计算机分布式计算的一个重要领域,这个世界非常有趣,因为每天都在发生新的变化。记得 2010 年刚毕业的时候,阿里的工程师们还在津津乐道于Spring、iBatis、Nginx、Thrift 等基础技术并乐此不疲;那个时候大家专注的都是一个点,没人试图将整个公司的服务集群管理与调度起来,因为在当时“环境、配置及负载”问题并没有得到很好的解决。例如配置方面:有些使用 AntX,有些使用Maven,更有甚者是直接编写在代码里;又如负载方面:有些使用Nginx或者LVS反向代理的形式,有些则使用HSF直连的方式。在这样的混乱局面下,根本没法统一调度。
后来中间件正式成立了软负载团队,笔者也有幸运参与了 ConfigServer、Diamond、VIPServer 等经典组件的开发,见证了环境一步一步被统一与治理起来的全过程。如今 Service Mesh 概念的提出及 Istio、Linkerd 2.0、Nginmesh等一系列实践项目的出现更是让软负载如虎添翼,可以说已经达到了透明的级别,相比 2010 年的时候可谓翻天覆地。
要知道凡事都是有前因后果的,任何技术与方案都不是一蹴而就的,很多思维、思想都是在现有的基础之上进一步发展的。Service Mesh 之所以能达到今天的程度,与之前的基础是分割不开的,因此先回顾一下历史,看看软负载到底是如何由最基础的硬件服务一步步演化到服务网格(Service Mesh)的吧。