卷首语: 2019 年,是属于容器技术的时代
作者:阿里巴巴高级技术专家 张磊
2019 年,全世界的开发人员都开始习惯用容器测试软件,用容器做线上发布,开始对容器化软件构建和交付流程习以为常。全世界的架构师们都在对“云原生”侃侃而谈,描绘多云时代的应用治理方式,不经意间就把 “sidecar” 这种容器组织方式当做了默认选项。在“云”已经成为了大众基础设施的今天,我们已经习惯把“容器“当做现代软件基础设施的基本依赖,这就像我们每天打开 Eclipse 编写 Java 代码一样自然。
往回倒数两年, 整个容器生态都还在围着 Docker 公司争得不可开交,看起来完全没有定数。当时的国内很多公有云厂商,甚至都没有正式的 Kubernetes 服务。在那个时候,要依托容器技术在云上托管完整的软件生命周期,可以说是相当前沿的探索。谁能想到短短两年之后,容器这个站在巨人肩膀上的设计,就真的成为技术人员日常工作的一部分呢?
伴随着容器技术普及到“千家万户”,我们在这两年期间所经历的,是现代软件交付形式的一次重要变革。
如果不是亲历者的话,你很难想象 PaaS 乃至云计算产业的发展,会如何因为 2013 年一个创业公司开源项目的发布而被彻底改变。时至今日,容器镜像已经成为了现代软件交付与分发的事实标准。然而, Docker 公司却并没有在这个领域取得同样的领导地位。这里的原因相比大家已经了然于心:在容器技术取得巨大的成功之后,Docker 公司在接下来的“编排之争”中犯下了错误。Docker 公司凭借“容器镜像”这个巧妙的创新已经成功解决了“应用交付”所面临的最关键的技术问题。但在如何定义和管理应用这个更为上层的问题上,容器技术并不是“银弹”。
而相比于 Docker 体系以“单一容器”为核心的应用定义方式,Kubernetes 项目则提出了一整套容器化设计模式和对应的控制模型,从而明确了如何真正以容器为核心构建能够真正跟开发者对接起来的应用交付和开发范式。
Kubernetes 项目一直在做的,其实是在进一步清晰和明确“应用交付”这个亘古不变的话题。只不过,相比于交付一个容器和容器镜像, Kubernetes 项目正在尝试明确的定义云时代“应用”的概念。在这里,应用是一组容器的有机组合,同时也包括了应用运行所需的网络、存储的需求的描述。而像这样一个“描述”应用的 YAML 文件,放在 etcd 里存起来,然后通过控制器模型驱动整个基础设施的状态不断地向用户声明的状态逼近,就是 Kubernetes 的核心工作原理了。
未来:应用交付的革命不会停止
在 2019 年这个软件交付已经被 Kubernetes 和容器重新定义的时间点上,Kubernetes 项目正在继续尝试将应用的定义、管理和交付推向一个全新的高度。我们其实已经看到了现有模型的一些问题与不足之处,尤其是声明式 API 如何更好的与用户的体验达成一致。
我们能够看到,整个云计算生态正在尝试重新思考 PaaS 的故事。我们还能够看到,云的边界正在被技术和开源迅速的抹平。我们常常把云比作“水、电、煤”,并劝诫开发者不应该关心“发电”和“烧煤”的事情。在未来的云的世界里,开发者完全无差别的交付自己的应用到世界任何一个地方,很有可能会像现在我们会把电脑插头插在房间里任何一个插孔里那样自然。这也是为什么,我们看到越来越多的开发者在讨论“云原生”。
我们无法预见未来,但代码与技术演进的正在告诉我们这样一个事实:未来的软件一定是生长于云上的。这将会是“软件交付”这个本质问题的不断自我革命的终极走向,也是“云原生”理念的最核心假设。而所谓“云原生”,实际上就是在定义一条能够让应用最大程度利用云的能力、发挥云的价值的最佳路径。在这条路径上,脱离了“应用”这个载体,“云原生”就无从谈起;容器技术,则是将这个理念落地、将软件交付的革命持续进行下去的重要手段之一。
至于 Kubernetes 项目,它的确是整个“云原生”理念落地的核心与关键所在。但更为重要的是,在这次关于“软件”的技术革命中,Kubernetes 并不需要尝试在 PaaS 领域里分到一杯羹:它会成为连通“云”与“应用”的高速公路,以标准、高效的方式将“应用”快速交付到世界上任何一个位置。而这里的交付目的地,既可以是最终用户,也可以是 PaaS/Serverless 从而催生出更加多样化的应用托管生态。
“云”的价值,一定会回归到应用本身。
目录
热点 | Hot
华为鸿蒙或将提前推出,谷歌被曝希望与华为继续合作
交付程序不给钱,程序员一怒之下开源客户项目代码
理论派 | Theory
改进 TCP,阿里提出高速云网络拥塞控制协议 HPCC
推荐文章 | Article
苹果发布全新 SwiftUI 框架:一次编码,五端通用
阿里 P10、腾讯 T4、华为 18,互联网公司职级、薪资、股权大揭秘
观点 | Opinion
Hadoop 气数已尽:逃离复杂性,拥抱云计算
七牛云许式伟:我所理解的架构是什么
特别专栏 | Column
Kubernetes 已足够成熟?详细解读 1.15 新版本的多项关键特性
利用 CSI 和 Kubernetes 实现动态扩容
评论 (3 条评论)