开源软件(OSS)是我们数字生活的基石。自然地,OSS是大多数现代云原生基础设施的基础。事实上,CNCF最近的一份报告发现,支持云原生运动的开源项目有所增加。CNCF的研究发现,96%的组织现在使用Kubernetes。在过去的一年里,其他云原生开源项目也呈指数级增长。例如,容器的采用率同比增长500%,Prometheus监控软件增长53%。
还有哪个应用程序没有使用开源软件吗?事实上,90%的企业现在使用开源。但在Log4j等事件发生后,所有这些云原生架构对开源的依赖都引发了人们对能否信任这些项目的安全性和可靠性的担忧。美国国家安全顾问Jake Sullivan最近表示,“开源软件是一个关键的国家安全问题。”诚然,要验证每个项目的出处并充分理解其底层功能可能很困难。由于它们的复杂性,成为一家公司嵌入的所有开源工具的专家需要好几辈子的时间。
尽管如此,开源的好处远远超过了潜在的担忧。除了免费之外,开源还提高了技术市场中的可移植性和互操作性。此外,有这么多开发人员参与一个项目,可以更快地发现和解决弱点和漏洞。然而,公司应该考虑在培育这些核心项目方面发挥更积极的作用。
促进共同利益
开源软件可以帮助组织避免被单一云劫持,从而允许多云环境。但收获开源的好处确实需要公共投入。作为共同利益的一部分,公司有责任激励OSS的改进。那么,有哪些方法可以支持和改进开源呢?
一种方法是直接捐款。Aiven公司的Jamie Arlen表示,公司为安全团队成员支付薪水,这些成员花了一半的时间从事开源项目。此外,该公司还为开源漏洞发现提供了经济奖励,即使官方开源项目维护人员本身没有漏洞奖励计划。
除了直接的资金投入外,Arlen还鼓励更多开发商积极参与影响更广泛生态系统的核心软件包,因为Fedora等底层软件包中的漏洞可能会影响许多上游服务。Arlen说,通常情况下,暴露是无意的,只有当两种代码组合在一起时才会出现,就像Apache Flink-as-a-service实现中发现的一个错误一样。
人人共享
由于社区的巨大努力,开源项目蓬勃发展。支持开源确实需要努力,但Arlen说,当各方都觉得自己付出了太多时,这是一个最佳时机。“开源实际上是纳什定理的一种实现。如果每个人都不是很成功,大家就会成功。”
这听起来像是一个理想主义的比喻,但事实上,当我们互相帮助时,我们往往会走得更远。因此,公司有道德理由直接为其消费的项目做出贡献。虽然这听起来可能是一个巨大的负担,但所做的努力不必那么巨大。“如果每个人都提交一篇文章,眨眼之间我们就有了维基百科。开源中也会发生同样的事情。”
而且,贡献也不一定是纯技术性的。例如,技术作者可以为开源项目构建更好的文档。“贡献应该是实质性的,但不一定是重大的。”比如说,如果每个人都自愿每月花四个小时来修复开源项目中的漏洞,那么软件世界本来就更安全。在这一点上,没有一个测试套件能够捕获所有内容。另一个有用的贡献方式是向项目维护人员提交bug报告。
回馈云原生开源
“任何足够先进的技术都无法与魔法区分开来。许多开源软件包对旁观者来说就像魔术一样。没有人能理解所有的Linux或macOS。”Arlen说。
因此,不可能完全避免漏洞,无论软件是开放的还是关闭的,复杂性都不会停止存在。但开源的透明性是它的另一个强大优势,因为它提供了对bug和漏洞的更大可见性。
我们无法摆脱开源。例如,CNCF的顶级开源软件包已经成熟多年,并被成千上万的软件团队所依赖。尽管直接使用开源软件包需要克服一些维护障碍,但存在许多抽象来简化它们的使用。例如,大多数公司通过EKS或GKS等托管服务采用Kubernetes。不过,开源是这些平台的根基,必须加以培育。
我们需要建立支持这种共同利益理念的社会模式,而不是因为开放源码的缺点而惩罚它。也许有一天,这可能会成为政府认可的数字“公园护林员”团队,其职责包括维护全球所依赖的数字基础设施。
与此同时,开源用户有一些可操作的项目:回馈社区,引入漏洞奖励计划,并尽你所能做出贡献,即使无关紧要。
原文链接:
https://containerjournal.com/features/why-cloud-native-companies-should-support-open-source/