家中刀电脑软件突然找不见了不见了?找不着了?有什么兆头?

本文转载云头条原作者:Michael Stiefel是Reliable Software公司的负责人,是一名软件架构和开发顾问

虽然开源开发不会消失,但商业开源厂商的未来不是很有希望随着全面管理的服务大行其道,生产支持、工具和咨询等方面的机会已随之减少

云提供商在采用开源软件,并使其商业化但未必增添价值或支持未来开发。

业界对於为开源开发提供资金的最佳方式缺乏共识许多人仍然认为,开源软件应该是免费的

“开放核心”或“双重许可”等模式似乎是支持未来商业开源的最有前景的方法。

开源许可可能会在商业使用方面变得更有限制性

无法保证将来会复制过去的商业开源成功案例。

Redis已将蔀分企业模块的许可方式改为采用Apache 2.0+ Common Clause许可证这些模块无法用作独立的商业SaaS。此举专门针对云提供商

相关的争议引出了在开源社区已存在┅段时间的问题。开源使用效果最好的地方是软件基础设施而不是应用软件项目。如果云计算公司成为软件的基础设施提供商它们的市场控制力可能让它们得以接管开源项目,并以低于销售开源服务的公司的价格销售这些软件服务

如果真出现这种情形,开源公司还有未来吗

开发开源软件背后的商业模式是什么?换句话说为开源开发提供资金的最佳方式是什么?哪种软件开发不适合开源

Paul Dix:我认为囿很多模式可以成功。首先是我所说的“开源物尽其用”(open source exhaust)谷歌、微软或Facebook之类的大公司就是这样,它们开发的一些软件被认为不是其關键知识产权的一部分这种软件就好比资产负债表上的一笔负债。大规模运行业务逻辑所需的基础设施软件就是这方面的典例它没有提供为贵公司带来价值的秘诀,但没有它你又无法运营因此,大公司会开源试图让其他大公司和开发商参与其中,以支付持续改进和修复错误的成本参与的公司还可以通过让外部的开发人员学习这些技能而受益。他们是以后可招聘的后备对象

当然,对于试图靠开源基础设施软件开展业务的任何公司来说这种方法不是好兆头。

如果公司希望主要的收入来源与开发某个开源软件项目有关它们的选择佷有限。我认为眼下唯一经过验证的模式是开放核心:公司开发的闭源软件为开源软件补充或增加新功能然后将其作为托管的SaaS产品或作為内部部署的企业软件来卖。一些开源软件(OSS)倡导者认为采用这种模式的公司实际上不是开源公司。然而我能想到的每一家采用开放核心的公司投入到OSS的预算在开发研发预算中所占的比例都比任何大企业大得多。 Elastic、Cloudera、RedisLabs、InfluxData及其他许多公司都采用开放核心开发OSS的人员在開发团队中的比例远高于谷歌、微软、Facebook、Netflix或采用开源物尽其用模式的其他任何大公司的开发团队。

开源基础设施公司过去认为可以靠生產支持和工具来实现创收。然而云提供商和完全托管服务的崛起对这种模式产生了负面影响,以至于我认为这种模式不可行更多的证據表明云在继续影响开源基础设施,MongoDB最近宣布改变许可证就是个佐证

最后,可以靠服务和支持来开展业务这是为OSS开发提供资金的最低效方法。其创收方式如同一家咨询机构不过如果你打造一个咨询团队,希望他们的计费工时有很高比例这直接有悖于让你的团队开发OSS軟件。如果他们在开发OSS并不按时计费。任何咨询机构选择一个已经大受欢迎的OSS项目并提供咨询服务会更好

最后一种方法是借助志愿者社区的免费工作。这对大型基础设施项目不起作用随着项目日益受欢迎和复杂化,管理和激励在晚上和周末工作的志愿者团队变得非常困难该模式适用于开发后基本上可以标记为已完成的小型代码库。大项目需要某种赞助才能存活下来并向前发展。

Matt Klein:已尝试过诸多商業模式它们都归结为下列模式的某种变体(以下是简单描述):

开放核心:软件的一部分是OSS,软件的一部分在付费墙后面

SaaS:代表客户將OSS作为服务来运行。

服务/咨询/支持:对客户使用OSS所需要的各种辅助支持和开发收费

一些商业模式结合了上述方法,所有上述模式都不乏荿功案例

实际上没有为OSS开发提供资金的“最佳方式”,因为有效的方式通常依赖具体项目遗憾的是,无论采用哪种方法靠OSS实现创收並非易事,因为许多用户从根本上认为OSS应该是免费的哪些类型的软件开发根本不适合OSS?首先想到的就是代码库一些库对现代系统来说絕对至关重要,但靠OSS库使用实现创收极其困难比如说,多年来OpenSSL方面没有投入开发和资源导致整套关键的互联网基础设施建立在一款维護不善又很基础的软件上。

Heather J. Meeker:开源软件方面唯一不能做的就是销售许可证来利用它但是在开发开源软件的私营企业中,仍有足够的空间來赚钱你完全要知道自己在卖什么、送什么。纯粹的开源公司很罕见大获成功的Red Hat是个例外。纯粹的开源公司销售服务主要是维护和支持,但也销售质量控制客户买的是产品,而不是许可证如果你在质量控制和包装方面投入大量精力,可以造就一家销售开源软件包嘚公司但那样的话,实际上你销售的是对你声誉的依赖大多数开源公司以“剃刀刀片”模式的某种变体来赚钱:给他们剃刀,向他们賣刀片剃刀是开源软件,刀片有多种形式一些是向上销售的模块(常常名为开放核心),一些是替代权利(相同软件的双重许可比洳MySQL),一些是“widget frosting”(销售在开源上运行的硬件比如可能是iOT产品),还有一些是推先体验(一种在公开发布代码之前销售体验代码这种服務的“禁运”模式)在其中几种模式中,你需要使用其他类型的许可证这时候Commons Clause之类的替代许可证有了用武之地。

开源软件是否只对企業开发商来说有意义还是说云供应商和开源提供商有办法合作?

Dix:可能有但这取决于云供应商。并不要求云供应商非要搞开源项目嘚确,亚马逊似乎满足于拿来现成的开源项目将其作为托管服务来提供,没有商业安排或开发工作来推动OSS项目向前发展谷歌和微软有┅些合作,但我不确定这种合作是什么样子此外,如果它们认为没必要继续支持其他公司开发开源会发生什么?它们可以轻松雇用推動这些项目发展所需要的所有开发人员它们这么做的动机是,让开发人员为托管服务付费围绕开源构建代码只是确保另外的一家云提供商无法围绕专有的封闭API来构建庞大开发社区的一种方法。三大云供应商正在你争我斗OSS基础设施公司可能到头来是间接受害者。比如说微软和谷歌将继续推动Kubernetes发展,作为标准化的云API因为Kubernetes帮助它们将市场领头羊AWS拉下宝座,使云API实现商品化那些试图将Kubernetes变成业务的初创公司会怎样?如果Kubernetes像OpenStack生态系统一样发挥作用那些初创公司会在未来三年内全部关门大吉(不过Kubernetes咨询业务会蓬勃发展)。

Kelin:我不确信自己完铨理解这个问题流行的OSS将不可避免地被企业和云供应商使用。此外云供应商可能会提供基于流行的OSS而建的托管产品,却未必对该项目給予重大的回馈在我看来,更大的问题是如何合理地为OSS开发提供资金带来社区优先的开发模式,同时仍可以从中获取价值(通过开放核心、SaaS、服务/支持或某种组合)遗憾的是,如何做到这一点方面还没有达成共识我个人认为,将来众多软件基金会要在为关键的OSS提供中立的家园方面发挥更大的作用。基金会另外的责任是筹集资金为开发和维护资源提供资金,在保持中立的同时仍然支持靠开源获取商业利益(无论是企业还是云等)。

Meeker:我们经历的分水岭时刻就是云提供商采用小公司的软件不增添重大价值就将软件投入商业市场,但又没有与支持开发的那家公司达成任何安排这个分水岭时刻导致了Commons Clause及其他替代许可模式。至少这是大多数开发商对开源模式感到沮丧时表达的痛点。它们需要保持将门打开付钱给开发人员,其中一些在流失资源我认为,在可预见的未来开发适用于未经修改的雲部署的企业软件的供应商会对采用开源许可证发布代码持谨慎态度。我预计我们会看到云提供商和企业开发商有更多的商业安排那样鈳以分摊开发成本。至少这将是最经济合理的结果。

谷歌、Netflix或其他公司发布的开源项目是改进开源开发还是说有着不纯的动机?

Dix:我會说两者都是让大企业公开发布采用自由许可证的代码对大家都有好处。但可以肯定地说除了改善世界上自由软件的现状外,它们可能还有别的动机这意味着你心里要有准备:它们在某个项目上的目标可能并不总是与你的目标一致,但无论如何管理开源项目情况都昰如此。只要软件是开放的如果企业赞助商偏离了你认为项目应该走的方向,你有路子可选

Klein:没有哪家公司出于善意来做事。大公司發布OSS出于诸多原因除了打造最终与云业务相关联的平台外,几个重要的原因是便于招聘和扩大知名度这倒不是说谷歌和Netflix等大公司发布嘚软件对行业并没有深远的影响,当然有影响但重要的是牢记为什么公司直接为OSS开发提供资金背后别有用心的动机。

Meeker:我认为结果比动機更重要我怀疑大多数开发商会说这些公司及其他公司发布的开源代码大有益处。但那些公司做正确的事才做得很好私营公司负有法律义务:做出对本公司来说正确的决策,监管股东们的资本但这并不意味着帮助社区的行动也不利于自身业务。如今许多大公司发现積极参与开源社区对业务有好处。软件访问不是零和博弈企业可采用战略性的手段,限制别人访问自己开发的带来市场优势的技术但鈳以免费发放并不带来市场优势的技术。从经济意义上讲一些软件用作公共产品最有效,而一些软件用作专有产品最有效共享道路但銷售在道路上行驶的汽车是明智之举。相反的话可能意味着互不联通的道路和糟糕的汽车

展望未来,对开源公司来说切实可行的许可安排有哪些

Dix:如果公司主要靠它们拥有的一个开源项目开展业务,要么需要使用AGPL之类的限制性许可证要么需要让闭源软件补充采用自由許可证的开源核心。我青睐后一种模式因为对于开源代码而言,很显然谁都可以随意处理开源代码他们可以使用开源代码,建立业务将其作为产品的一部分来交付。我青睐MIT和Apache2之类的自由许可证用于开源然后,公司的闭源软件补充或增强开源项目的功能很显然,这昰它们的商业产品事实上,没有什么能阻止其他任何公司围绕同一个开源项目开发闭源产品

Klein:我认为我们会继续看到许多公司试图以各种不同的方式从OSS获取价值。我个人认为将来最成功的模式将是我所说的“松散开放核心”(loose open core)。其想法是建立一个开放核心生态系統,主要的软件保持由社区驱动没必要通过拒绝采用与收费产品竞争的补丁来疏远潜在的贡献者。采用这种模式的企业附件可能包括:鼡户界面(UI)、审计和安全工具等基本上是可使用众所周知的API在核心OSS上构建的任何组件。

Meeker:我认为我们会看到诸多变化我认为,区别僦在于非开源许可将变得更标准化。眼下它几乎完全是临时性的,这对每个人来说都是净成本(net cost)

未来10年到20年,你认为软件会如何開发

Dix:继续是结合闭源和开源的方式。我认为与现在的方式不会有很大的差异软件不会完全公开,因为公司仍需要客户有令人信服的悝由来购买支持和咨询的经济因素不会改变。因此公司会继续让闭源软件来推动价值。自行运营数据中心的公司所占的百分比会显著降低但由于规模经济效应,仍会有公司自行运营数据中心

Klein:可能与今天的情况没什么大不同。大多数基础设施软件将是OSS而大多数消費者系统将是专有系统。基础设施方面的一大问题是各大云提供商会“吃掉世界”?还是说独立公司会围绕OSS搞出一种切实可行的收入模式在我看来,那些专注于“松散开放核心”模式的公司会在对付云竞争方面做得最好这是由于许多增值服务仍然可能在基本的云SaaS产品仩运行。

Meeker:20多年前我开始编程当时和现在的区别体现在几个方面。首先开发工具更好了,因此人们在开发应用软件时可以避免一些单調乏味的低级任务其次,代码模块化的程度大大提高了因此不大需要重新发明轮子。开源对这第二个方面起到了助推作用第三,软件是协同开发的这是由于我们现在有了可以协同开发的工具。我预计今后20年会更加遵循同样的发展轨迹;更多的代码将实现自动化或標准化,甚至由计算机编写好让人类程序员专注于更高级的用户功能。此外希望,用户交互的质量会受到更大程度的重视我认为眼丅,UI专家太少了软件应该易用,而不仅仅是能用

开源不会消失;问题是,基于开源开发的公司能否继续存活下来

如果开源开发领域繼续要有重大的发展,就需要创建新的许可模式和资助模式

我要回帖

更多关于 电脑软件突然找不见了 的文章

 

随机推荐