纵观云原生生态,不管是云原生还是开源,都有很大的商业价值。时至今日,相关公司总市值接近 143 亿美元,融资接近 295 亿美元。在外人看来这可能很难理解,“免费”的东西如何能挣到这么多钱?实际上,免费和开源并不会降低这些项目为企业和终端用户提供服务的价值。相反,开源生态系统的可组合性提升了整个生态系统的创新和价值。
可组合性相当于复利
在金融领域,复利是世界第八大奇迹,因为钱能生钱。在软件、IT 和开源领域,可组合性是世界第一大奇迹,因为它是在创新之上创新。站在巨人的肩膀上,说的就是这个意思。
可组合的项目和产品可以搭配使用、重新组合、反复作为构建基础使用,从而满足每个客户的独特需求。在云原生领域,可组合性使开发人员能够快速迭代和交付功能,从而为金融服务、医疗保健、电信和运输等行业的企业创造复合价值。加入开放、可组合的生态系统,如云原生,可以为供应商和最终用户带来更好的产品、更大的市场和更好的商业成果,因为它们是可组合的。
可组合性分解
在深入探讨可组合性如何帮助我们实现这些商业成果之前,让我们退一步看看可组合性到底是什么。可组合性是处理组件间相互关系的系统设计原则。高度可组合的系统支持在各种组件中做出选择并组装,以满足特定的用户需求。
如果你与终端用户公司(使用但不销售软件的公司)合作过,你一定知道,虽然许多挑战可能是相同的(需要运行容器),但它们各有自己的“怪癖“(但防火墙需要静态出口网关)。可组合系统通过选用满足特定需求的组件克服这些挑战。用户可以根据特殊业务需求自由选择,云原生生态迅速扩张的原因就在于此。现在,我们已经对什么是可组合性有了更多的了解,下面介绍现实世界中如何应用。
可组合接口
存储
一开始,Kubernetes的许多部分,比如存储,都是作为 Kubernetes 核心代码的一部分。虽然将其作为一个整体提供可以简化安装,但如果企业想要增加存储系统支持(甚至修复现有卷插件的 Bug),就必须与 Kubernetes 的发布过程保持一致。此外,第三方存储代码造成的可靠性和安全性问题对维护者来说往往也很难(在某些情况下不可能)测试和维护。
容器存储接口(CSI)是为了规范存储系统将自己暴露给容器化工作负载的方式,使存储具有可组合性。现在有超过110个CSI驱动程序供大量的供应商和存储系统选用。创建可组合的接口,既增加了可供终端用户选择的选项数量,也增加了使用 Kubernetes 的终端用户数量,为存储供应商带来了更大的潜在市场。不仅如此,它还减轻了维护者的负担,提高了 Kubernetes 核心的安全性。对于接口来说,这并不坏。
网络
在网络方面,容器网络接口(CNI)由一组规范库组成,用于编写在 Linux 容器中配置网络接口的插件。在Cilium社区,我经常看到一些用户,开始时使用简单的 CNI,如Weave或Flannel,后来则切换到高级 CNI,如 Cilium,为的是满足可扩展性、可观察性或安全性需求。放在以前,重连整个集群中的每个接口几乎是不可能的。CNI 有标准化的容器网络,大大简化了切换 CNI 的任务,甚至有可能进行在线迁移。有了 CNI,终端用户可以选择适合他们需求的 CNI,并在有变化时进行切换。
eBPF
eBPF是一种可以安全地扩展 Linux 内核功能的技术,无需等待更改内核源代码。该技术可以在运行时选择并添加额外的功能,这带来了许多新的可能。Cloudflare 用它来缓解 DDoS,Meta 用它来实现高性能负载平衡,Cilium 用它来实现云原生网络、可观察性和安全性。它将功能移至主内核开发过程之外,这样大大加快了用户用上新功能的速度。它还解锁了新的用例,如 Tetragon 提供的安全可观察性。eBPF 使 Linux 内核具备了可组合性,并为云原生生态系统带来了许多有价值的新特性、功能和用例。
可组合接口的价值
Kubernetes 的存储和网络的可组合性为整个生态系统中的终端用户、供应商和维护者都带来了很多好处。首先,终端用户有更多的选择。这增加了采用 Kubernetes 的公司数量和它可以满足的用例。如果需求或用例发生变化,则可以进行替换,而不必从头开始。第二,终端用户增加意味着供应商收入增加。用户基数大了,需要技术支持、企业级功能或管理服务的用户也增加了。最后,通过更高程度的模块化,项目测试和维护更容易了,这可以减轻维护者的负担。可组合接口可以为整个生态系统赋能。
可组合生态系统
到目前为止,我们探讨了可以替换单个组件的价值以及这为企业带来的价值。这只是一个方面。可组合性不仅是指软件栈是由什么项目和产品组成,它还包括整个生态系统的可组合性。生态系统的价值不只是其各个组成部分的总和,还包括各部分之间的相互关系,以及如何将它们组装起来以满足生态系统和终端用户的需求。
构成一个生态系统的创意、人员和工具也是可组合的。在这种情况下,生态系统的价值才会真正得以释放。让我们来看一些真实的例子,看看可组合性如何提高整个云原生生态系统的价值。
创意
可观察性(有助于彻底地理解“分布式”系统)是一个热门领域,因为它可以帮助定位并解决生产环境 Bug,使你不会再被凌晨 3 点的警报惊醒。几年前对于可观察性如何实现,人们有许多不同的想法,其中包括OpenCensus和OpenTracing。将这两个项目的创意和功能合二为一就形成了OpenTelemetry,这是现在云原生领域发展最快的项目之一。这两个项目没有在标准化方面展开竞争,而是融合到了一个项目里,这为技术的发展提供了强大的推动力。这两个项目的结合,使 OpenTelemetry 社区能够汲取 OpenCensus 和 OpenTracing 项目的优秀创意,使贡献者们能够团结在一起推动项目更快地向前发展,最终为生态系统带来更好的项目。
人员
在可组合生态系统中,人们可以根据自己的兴趣、市场空白和客户需求换入和换出项目。例如,Matt Butcher创建了Helm作为 Kubernetes 的包管理器,Brigade作为 Kubernetes 上的事件驱动脚本平台,Krustlet作为运行 WASM 工作负载的 kubelet,甚至还帮助编制了图说Kubernetes儿童指南。因为云原生生态系统是可组合的,所以他可以基于现有的工作构建这些项目,因为他看到了人们对这些项目的需求。可组合性可以根据终端用户的需求构建,而不是从头开始。这可以创造有价值的项目,满足终端用户的需求,并为生态系统中的人们提供新的商机。
工具
Prow是基于 Kubernetes 的 CI/CD 系统,为 Kubernetes 运行测试基础设施。现在,这些项目已经扩展到整个云原生生态系统,有超过 24 个不同的项目和产品。在整个生态系统中重复使用相同的工具,开发人员能够更容易地为项目提供支持(因为他们已经熟悉了工具),也使许多项目可以利用 Prow 的改进和自动化技术。它还有助于加快新项目的启动速度,因为不需要重新配置 CI/CD。更好的工具有助于项目更快地交付功能,创建更好的产品,提升终端用户体验。
可组合性的复合商业价值
生态系统是由许多不同的部分组成的,包括创意、接口、人员以及工具。当彼此之间可以相互组合时,其交互网络会产生出更大的价值。这种组合和再组合以满足用户独特需求的能力具有如下商业价值。
帮助项目更快地交付特性和功能;
创造更好的、更符合终端用户需求的产品;
寻找空白,创造新的商机;
增加用户基数、用例覆盖和潜在市场规模;
为供应商和终端用户公司创造更好的商业成果。
可组合性为云原生世界提供了动力,也是其为企业带来商业价值的原因。
作者简介:
Bill Mulligan 在 Isovalent 任职,负责 Cilium 和 eBPF 社区的传播和发展。他之前曾在 CNCF、Loodse 和 RiseML 任职。他的 Twitter 账号是 @breakawaybilly。
原文链接:
评论