开发人员之所以采用云,是因为他们最初采用开源的许多原因。这是否意味着开源已经过时?
据笔者个人经历来看,在所有条件相同的情况下,开发人员会更喜欢开放而不是封闭。但在云时代,软件属于开源纯度范围的地方并不是开发人员最关心的问题。Microsoft Office 拥有数亿用户是有原因的。为什么甲骨文几十年来一直在数据库排行榜上名列前茅(尽管这种情况正在发生变化)。开源是软件领域的一场巨大运动,它极大地改变了人们对软件的看法。
MongoDB公司的首席财务官/首席运营官迈克尔·戈登(Michael Gordon)针对分析师提出Community(MongoDB 的免费和开放版本)用户如何转变为 Atlas(完全托管的云服务)的付费客户的疑问,表示:“Atlas 自助服务,无论是免费分层还是付费,它都是下载社区服务器并自行管理的现代、更现代的版本。”
换句话说,开发人员正在转向免费使用的托管云服务,就像他们曾经下载免费使用的开源软件一样。但值得留意的是,大多数开发人员关注的焦点不是许多自由和开源 (FOSS) 倡导者想象的那种意义上的自由。开发人员只想要使用该软件的便利,而无需获得财务、法律等部门的批准。他们有工作要做,并试图以尽可能少的障碍来完成工作。
换句话说,他们想要“自由”就像“以最方便的方式建造的自由”。
越来越多的“最方便的方式”是云。那么,如何以开发人员真正关心的方式将开源便利性转化为云时代?
让开源在云端更方便
越来越引起共鸣的一种方式是开源和多云之间的相互作用。Crunchy Data 的产品负责人Craig Kerstiens认为,要让多云发挥作用,开发人员需要“使用 PostgreSQL、MongoDB 或 Redis 等一流但开放的技术”进行构建。关键不在于哪些技术,而在于这些技术可以在开发人员可能希望的所有不同云、数据中心或笔记本电脑环境中运行的想法。
它们本身甚至不需要是开源的,但开发人员必须能够以最普通的格式运行它们,以便使应用程序可以跨云移植。由 vanilla Kerstiens 暗指 PostgreSQL 之类的东西:您可以下载的版本与某些云提供商运行的托管 PostgreSQL 服务相似但失去了保真度(因为他们添加了补丁和其他性能改进,但它们对上游 PostgreSQL 没有贡献)。
Kerstiens估计这种方法适用于 90% 以上的企业工作负载。
开源应用的另一个重要方式与第一点有关。考虑到每个云有多么不同——即使在存储、计算等所谓的商品领域也是如此——开源提供了一种“通用语言”,开发人员可以在云之间随身携带。正如我所写的,虽然云在实现 PostgreSQL 的方式上可能有所不同,例如,了解 PostgreSQL 的开发人员可以使用 AWS、Google Cloud 或 Microsoft Azure 来提高工作效率。 Kerstiens 说:“对于开发人员而言,了解特定云供应商的复杂性可能很重要,但许多开源技术(Kubernetes、Linux、PostgreSQL 等)为开发人员提供了在云之间转移的技能。”