不奇怪, Google、红帽和其他公司已经放弃甲骨文知名的开源工程——MySQL。毕竟,甲骨文和开源有着强烈的抵触关系。一份甲骨文为美国国防部新发布的 白皮书中指出,开源耗资更大且更不安全,这使得这二者的抵触变得越发明显。
对甲骨文来说很不幸的是,国防部有它自己对开源白皮书——事实上有好几份——其中直接反驳了甲骨文的关键论点。
甲骨文与开源的爱恨情仇
甲骨文是一个古怪的怪兽。通过这份白皮书,甲骨文一方面精确地声称它自己是“在这个产业中对开源最大的支持者和贡献者之一”,并且找到了改善开源的方法。这确实不容否认:甲骨文对开源做出了显著的贡献。
但考虑到甲骨文的业务很大程度上依靠稳定的大量的前期许可协议,包括永久维护的费用;因此,甲骨文用明褒实贬的口吻谴责开源也不足为奇了:“甲骨文欢迎并且提供开源方法作为一种可行方案去完成简单的软件项目,同时也作为一种辅助手段去发展和部署更复杂的基于商业软件的项目”。
换句话说,甲骨文一定程度上是爱开源的。
国防部与开源的长期羁绊
这也不奇怪甲骨文试图给国防部对开源的兴趣泼一盆冷水。国防部长久以来一直乐意将重大的、关键任务应用委托给开源。
开源第一次出现在国防部官方备忘录中可以追溯到 2003年,国防部不断鼓动在美国军队中使用开源代码技术。国防部甚至出资自己举办开源会议,并且发表了一份清单,上面列举了多年来使用开源码的 收获。
因此,如果说哪个组织能非常的熟悉开源的优缺点,那非国防部莫属。并且目前为止,开源在国防部采用的非常健壮和广泛。
国防部:抱歉,甲骨文,开源更便宜
事实上,国防部编写了一份 问答表来一条一条针对甲骨文虚构的白皮书。
甲骨文声称开源码比它的专利软件花费更高:
着眼易于确定和预测的硬开销,像软件许可和每年的维护开销,会使整个项目的生命周期花费变得模糊。从短期和预支出上来看,国防部选择开源策略只能节约整个项目话费的10%-20%,通过优化开发者的生产效率,提供可靠并可升级的基础设施,并减少这些软开销,政府能获得最大好处。
在许多情况下,商用方案可以主导市场的原因在于其性能更好。在那些环境下,采用开源软件被证明时常会增加总的项目开销,因此导致项目花费超支。
事实上,甲骨文希望让国防部相信开源码会花费更多(并且它增强了开发者的生产效率,这对于压倒性数量的开源拥抱者来说很搞笑)。对于这点,国防部做出了回应:
COTS(商业成品软件)控股公司交付相当的灵活;但这些产品如果存在安全性问题,政府却不能强制改善,因此不能在其平台上选用这样的商品。如果供应商实现垄断或者很难改变供应商,花费肯定会猛增。另外,供应商会选择停止生产;软件托管会一定程度上降低这些风险,但这些情况下会成为GOTS。(GOTS(政府现货供应)产品以由政府机构创建的技术职工团体开发的产品而著称。有时GOTS产品也由外部团体开发,但是其资金以及规格还是归政府机构管控。因为政府机构可以直接控制GOTS产品的方方面面,所以这些产品的开发要从政府的利益出发。)
但有现成的开源商业成品软件产品能满足需求,或者能被大量用户或联合开发者开发和支持时,开源商业成品软件会特别合适。开源商业成品软件和政府成品软件在开销方面没有趋势,私有COTS出现类似的情况:它的花费由更多的用户承担,通常比私有商业成品软件的所有权费用低,因为最初获得它常常是免费的或者低成本的,并且其他所有的支持活动(培训,安装,改进等)都能完成。
或者,正如国防部在 另一处写道:“国防部需要一个更加高效的软件开发环境系统——更多的创新更少的开销。(开源)压缩了财务上的浪费,打破了减少锁定增加的竞争的固定模式[通过减少锁定和增加竞争完成。
国防部:抱歉,甲骨文,开源也能高可靠性
甲骨文的另一个大的论点是开源与生俱来的不可靠性。甲骨文试图将开源描述成一种随便弄着玩的东西:“开源通常能成功的用于简单的低风险的项目上。”但如此论点挑战的是国防部及其他部门中数以百万使用开源实现的任务关键性IT项目。不过,甲骨文仍然坚持它的论点:
或许在国防部的主系统中最重要的需求是可靠性,同时针对负载进行扩展时还需满足安全及信息完整的特性,在负载测试中,性能优化和系统优化也是一个重要的任务。商业软件公司已经开发了高精确性的方法去完成这些任务。不要低估开源软件测试及后续对主开发流进行修改的难度,特别是测试高负载下软件的稳健性和可靠性时。
当然不,甲骨文总结道,“对于关键任务关键性场景,仍然是商业软件的天下。”
但是,国防部并不这么认为:
(专利软件)封闭性可能会提高总体开销,减少长期价值(包括功能性,创造性和可靠性),并且可能成为一个严重的安全隐患(因为供应商没有动机去提供一个安全的软件并很快的修补后续发现的问题)……
持续和广泛的考校,让公众都能看到开源的代码,通过鉴定和剔除核心开发团队可能疏忽的问题,使软件更加的可靠和安全。相反的,如果将资源代码隐藏不对外公开,攻击者将会攻击软件的任何地方……
这意味着,国防部继续坚称无论是专利软件还是开源软件,只要能解决所有问题就是好软件:“软件要求有极高的可靠性和安全性,也叫‘高精准’软件,必须为满足这些要求而特别设计。这在大部分商业软件中都不可能实现。”
开源更具优势?
这也不意味着开源就是完美的。更准确的说,这只表明国防部在基于开源的任务关键性项目中有着高达数10年的经验。不需要甲骨文去帮它知道如何去省钱和提高可靠性。对于一些应用,甲骨文的技术对国防部来说是很适合的。但是其他的许多应用,开源更加完善,并不是甲骨文所说的“简单的应用”。
如此看来,我们有理由去期待开源在国防部继续大放异彩,同时也坐看甲骨文为此不断反击。