现在,云原生、Kubernetes已经成为企业IT领域的时髦概念,几乎所有的企业都在关注;如果不提这些概念,好像企业就会在云市场竞争中失去绝对话语权。那么,云原生和Kubernetes是怎样一种关系?是什么让Kubernetes超越了Docker ,在容器大战中获得领导者地位?本文将逐一进行梳理!
kubernetes项目,由google公司在2014年启动,能在这么短的时间内“迅速上位”,其实有点不合常理!
稍微有一点阅历的人,都会记得90年代初的那场互联网大战,网络牌照问题的争议持续了好多年,直到TCP/IP协议推出,一切才归于平静!同时,我们也不会忘记.com时代的UNIX操作系统之战,当很多供应商正无法抉择时,开源Linux像一款黑马级应用,映入人们的眼帘。
kubernetes和TCP/IP、Linux一样,他们都有一个共同特征,那就是在基础设施层面上构建更广泛的应用。只是,Kubernetes为什么能以超乎寻常的速度走向容器之路?很多人都无法解释!如果非要找一个理由,那一定是云原生带来的强大颠覆力。
云带来的变化
首先,云计算的快速发展,是一切变化的前提。
虽然,kubernetes的快速崛起,由多种因素汇聚而成。但是,有一个因素非常重要,那就是公有云环境的逐渐成熟。如今,公有云市场已不只是几个大型云计算厂商在主导,一些希望通过云计算来获得关键业务能力的企业也在加大推广力度,加快公有云落地步伐。有越来越多的企业希望,借助公有云来获得IT基础架构的可伸缩性、可扩展性以及API工具调用模式的可配置性。
其次,DevOps也是Kubernetes能够获胜的关键力量。
DevOps并不是一个新概念,在容器和 Kubernetes 普及之前,就已经成为主流趋势了。DevOps的核心思想其实有两个:一个是通过人、流程、工具的优秀组合,帮助企业更好地开发、运行和管理软件,提高企业的工作效率;另一个是核心是,DevOps提供了广泛的工具集,能帮助开发和运维团队自动化执行很多任务。DevOps也渗透了以API为主导的连接方式,即每个数据都可成为管理的API,通过自助服务发现和控制应用。这种可配置的特性,在云时代得到了传承,并提供了更好的平台。也就是说,Kubernetes和容器的出现,让企业真正走向了DevOps,获得了工具落地的新一代IT基础架构。
云原生成为企业IT新的架构趋势
在云优秀实践和DevOps的双重因素推动下,云本地架构发生了微妙变化,一种基于云和DevOps优秀实践基础之上的云原生架构,脱颖而出。云原生架构能让企业以更快的速度实现云化目标。
虽然,云原生架构包含传统的虚拟化、容器以及无服务器计算等很多方面,但是综合来看,Kubernetes是不错的选择。
原生云不仅仅是一种架构方法,它是一个时代的缩影,是一种新的架构范例。通过原生云,企业IT将整体进入新的变革期。
云原生的前世今生
总体来看,云原生架构并不是凭空产生的,它吸收了之前许多架构的精华,让云计算成为可能。
在2000年左右,企业部署的是面向服务的体系架构(SOA),主要依赖于复杂的中间件来实现,通过企业服务总线(ESB)处理各种任务,包括系统集成、路由网关、数据转换、安全性问题等,同时被Web服务应用程序发现并调用。
SOA 的架构原则,大多采用点对点的通信连接,服务调用和集成逻辑被内嵌在应用实现中。这种方式在服务数量比较少的时候,确实简单、高效。但随着服务规模的增长,服务与服务之间的通信愈发复杂,连接路径和复杂性会剧增,给服务治理带来巨大挑战,很多人将这种模式称为“智能管道,哑端点”。
之后,随着云的兴起,再加上容器和微服务的推波助澜,SOA最终让位给微服务架构体系。
与基于XML的“哑端点”式的Web服务模式不同,微服务是松耦合、高内聚的单个执行单元,整体架构更偏向于“智能端点、哑管道”模式,所有的执行都通过一个个小程序来实现。但是为了确保这些程序的集成性,我们必须通过基于HTTP协议的轻量级开源简单队列服务来实现。
当企业IT的内部环境,开始从SOA向以云为中心的微服务体系结构转变的背景下,用“哑管道”替换ESB,意义重大。但是实现起来,存在着很多挑战,无法做到弹性扩展。因此,微服务架构的这种“缺陷”,为Kubernetes的发展提供了一个完美的“温床”。在以kubernetes为重要组件的本地云架构中,来自于SOA时代的ESB的很多优势被引入到云架构模式中,让用户可以获得“智能端点”和“智能服务网格”。