从MongoDB诞生之初,其联合创始人Eliot Horowitz就计划构建一个托管数据库服务。正如他在一次采访中强调的那样,如果能够有人为他们管理数据库,开发人员就不会希望自己管理数据库,当然前提是他们不会牺牲安全性和可靠性。换句话说,开源的自然补充就是云。
这并不是说云计算会扼杀开源。尽管Redmonk分析师James Governor的观点是正确的:在开发者关注的地方,“便利是杀手级应用”,但他也提醒我们,开源“是构建软件、建立信任和培养社区的一个好方法”,而云服务不一定能提供这些。即使企业客户接受更多的软件即服务(SaaS)供应商,如Snowflake、Datadog,开源软件还是会比以往任何时候都重要。
这一事实在我们急于云化一切的时候是很容易被忽略的。Tidelift首席执行官兼联合创始人Donald Fischer说:“十年后,管理开源的许多复杂性将对开发人员不可见,就像云计算让人们忘记了服务器刀片和路由器一样。”
这听起来不错,但并不是每个人都对这一趋势充满热情。
一方面,正如分析师Lawrence Hecht所指出的,还不确定我们是不是“希望(开源)对用户是不可见的”。“当然,我们可能想省去管理代码的麻烦,但是有一个可审计的线索是有价值的。”即使是那些不想检查或编译源代码的人(我们大多数人都是这样),拥有这种访问权限也是很有用的。
此外,Duane O'Brien强调还有另一个风险:消除用户对支持托管云服务的开源软件的可见性“也会有在用户和贡献者之间增加一个隔离层的效果。这种隔离层将进一步传播这样一种观念,即开源是其他人做的事情,会带来一些额外的副作用。正如Alberto Ruiz指出的,这可能会有害于开源项目的可持续性。Jason Baker认为,这也可能会降低开发人员参与其中的热情。
但是,事实上,这不是云与开源之间的较量。正如Fischer继续强调的那样,这实际上是一个转移最终用户对该软件的关注的问题:“云计算与私有数据中心的类比说明了一个机会:专家在上游做一般性的工作,腾出时间和脑力专注于新的特定于组织的能力。”
即使是提供专有服务的公司,开源也是必不可少的。Snowflake刚刚公开了它的专有数据仓库服务,其底层是开源软件,比如FoundationDB。Datadog也类似,下面用着Elasticsearch。
我们应该感谢这些SaaS公司,它们使开源软件的使用更加容易。我们也认识到,没有开源,它们根本就不可能存在。
正如Randy Shoup所说,“如果我们必须运维基础设施,我们强烈希望开源。但如果我们把它当作一项服务来购买,我们就不在乎它里面有什么了。”而最终用户不必在意的原因恰恰是是构建者们仍然非常关心开源。这种情况短期内不会改变。