世界技术圈在发生什么?
云原生的演进
这里跟大家一起回顾一下张磊老师在云原生开发者日上关于“云原生技术演进”的分享。
有很多人会问,是不是云原生就等于K8s这些开源项目?其实今天出现的这些开源项目如K8s、docker、istio、dapr,是一些概念与方法论的一种技术实现,他们的背后就是云原生的理论体系,比如不可变的基础设施,高自动化、自愈自运维,语言和架构无关,高可扩展等等,而我们现在在实践的微服务、容器化、sidecar等就是为了支撑这些概念和方法论的技术和架构实现。这里有一条逻辑链路,就是当有一套概念和方法论之后,就会出现对应的技术和架构,我们在开源社区里就会出现相应的开源实现。
举个例子,容器化的技术架构对应的开源实现就有Docker、K8s这样的开源项目。用户端体现的这些开源项目,他其实实践的就是一套技术架构,而在这套技术架构背后的理论思想就是我们说的概念和方法论。整个云原生生态的体现就是这么一套方法论加架构加开源技术的这么一个集合,他的目的就是希望让云计算技术很好的去服务我们的开发者,目标就是帮助开发者降本增效,而云的一些特质就可以帮助我们去实现这一目标,比如云是无限弹性的,快速的资源交付,还可以按量付费等。
为了让云的这些特征能够最终帮助开发者降本增效,我们就需要这套逻辑链路来达成这个目标,这也是现阶段云原生技术角度来看一个非常自然的演进路线。
除了技术角度之外,我们还可以从时间维度来看云原生的演进过程。其实开发者希望得到的能力和基础设施平台能够提供的能力之间是有一道很大的鸿沟,开发者要的多,平台给得少,云计算实际上一直在解决这个问题。
时间线越往前,基础设施越弱,但开发者的诉求其实一直在增长,软件越写越复杂,彼此之间的鸿沟会越来越大,这时就会需要有人去填补这个鸿沟。在2010年以前,我相信大家都有听说过ESB这样的传统中间件的解决方案,中间件顾名思义就是填补在基础设施和开发者之间鸿沟的一套系统,它的能力非常强,可以满足开发者开发大型软件的需求。
随着时间推移,云计算技术越来越成熟,能力越来越丰富,有很多的需求可以用云的能力直接提供,所有陆续会出现一些比如PaaS这样的平台,其实就是云计算提供的中间件能力。到了2014之后,随着容器和K8s这样的技术出现,我们能在云计算平台拿到更多的能力,这是一种非常强大的平台层的抽象,我们前面讲过的不可变基础设施等都是通过容器、K8s技术实现的,之前需要花很多资源和精力搭建的中间件的能力,现在开发者可以非常容易的获取和实践,从此开发者的诉求和基础设施之间的鸿沟不断的在变小。
随着时间推移,2