本文来自开源云中文社区。
在笔者跟踪企业IT的几十年中,将开源软件用于企业应用程序的问题一直是一个持续的、热度不减的讨论。当然,这是一个复杂的话题,几乎涉及到商业IT的每个方面:安全性、成本、可靠性、支持、许可、可扩展性、保修、版本管理和跨各种内部部署、混合和公共云基础设施的可移植性。但事实上,自从互联网本身兴起以来,开源软件(OSS)在其中发挥了重要作用,它通常运行在几十万台服务器上,这些服务器运行着经过时间测试的LAMP堆栈,该堆栈由Linux、Apache Web Server、MySQL、PHP/Perl/Python组成。
虽然随着时间的推移,这个主题有很多变化,但开源仍然是互联网的核心。这还没有考虑到世界各地数以百万计的Linux服务器在内部部署和云数据中心上愉快地工作。
那么,开源是如何渗透到IT环境中的呢?让我们退一步来绘制OSS的路径。
全押开源软件?
在商业计算的早期,绝大多数软件都是由硬件本身的特定功能和局限性决定的。这通常意味着操作系统和业务软件选择仅限于大型机系统供应商的产品、开发合作伙伴的专有解决方案或客户构建的应用程序。但是随着70年代小型计算机和80年代微型计算机的兴起,这些新系统的软件开发出现了巨大增长的机会。Unix和DOS等商业操作系统以及WordPerfect、Lotus 1-2-3、VisiCalc和WordStar等商业应用程序主导了市场。但是,1983年Richard Stallman宣布推出GNU操作系统,随后1985年自由软件基金会成立,开放GNU通用公共许可(GPL)概念为自由和合作软件开发提供了新的机会。
1991年,随着Linus Thorvald的Linux内核的加入,可能是实现相关性的第一个重大步骤,这一发展将使GNU/Linux在企业中占有一席之地。虽然Linux的早期迭代被证明是一种潜在可行的企业操作系统,但它缺乏一些关键要求,这些要求是企业客户所看重的。作为一种开源软件,Linux价格低廉,功能强大,但它的历史记录很短,没有保修,而且很少有开发者支持。
这一差距得到了两个供应商的认可,一个是1992年第一个推出SUSE Linux Enterprise Server的SUSE,另一个是1993年开始销售Red Hat Enterprise Linux的红帽。Linux的商业化似乎打破了OSS的“免费”前提,但企业数据中心并没有失去通过确保稳定的升级路径、开发人员支持以及涵盖安全、存储、虚拟化和系统管理工具的广泛资源而增加的价值。据估计,如今Linux在服务器安装中占据了70%以上的市场份额,并且有300多个发行版可用于广泛的非企业用例。
为什么DCO应该关心开源软件革命?
Linux只是OSS故事的一部分,笔者首先提到它是为了证明开源在全球企业数据中心中存在。2018年,IBM收购红帽,微软收购GitHub(OSS的一个主要分发站点),以及这两家公司对OSS的持续贡献,很可能是对OSS在商业计算未来的积极看法的回应。许多顶级IT供应商已经接受了社区投入的价值,并实现了吸引外部开发人员和用户的价值主张。
如今,SourceForge和GitHub等网站上有数十万个开放源码软件项目,由独立开发者以及许多大型商业供应商发布。应用程序的范围可以从基本实用程序和小型物联网项目一直到重型企业应用程序,如会计、内容管理、客户关系管理、电子商务、电子邮件管理、企业资源规划(ERP)、项目管理和时间跟踪。
很有趣,但它们在业务和IT环境中也行吗?
OSS应用程序相对较低的启动成本对看中成本的人来说非常有吸引力,但闪光的并不全是金子。
多年来,商业供应商发出了很多警告,称开源软件不可能在功能、安全性和长期成本等方面与他们的产品竞争,但其中一些担忧已经变得有点过时了。笔者相信技术采用的“信任但验证”模式,许多开源软件产品的价值主张之一是能够以很少或没有成本的方式试用它们。即使你选择了开源,在应用程序环境中工作也有很多要注意的地方。
如何在数据中心安全部署OSS
互联网上有很多关于采用开源的风险的信息,但这并不意味着你应该完全避免考虑任何开源。以下是笔者认为在目前情况下应重点考虑的几点:
它是否与你的内部部署、混合云和公共云基础设施兼容?
需要多少修改才能满足生产要求?
它是否可以扩展以满足增长期望?
现在和未来是否有支持OSS产品的人员?
它是否符合你的安全要求?
它的版本历史是什么?打补丁有多困难?
它是否与现有的数据保护和BC/DR模式兼容?
它是否合规?
它的许可模式可以接受吗?
关于许可的最后一个因素已成为一个比过去复杂得多的问题,过去使用的许可格式数量有限。
关于开源软件的最后一点说明
今天,开源倡议已经确定了目前使用的1400多种许可变体,2008年,美国联邦上诉法院裁定,这些许可为使用受版权保护的作品设定了具有法律约束力的条件,这些条件根据版权法可以强制执行。这也可以涵盖在其产品中包含开源代码的商业软件供应商,因此了解你的供应商是否使用开源代码,以及他们是否通过使用其产品保护你的公司免受任何法律诉讼是值得的。
然而,这并不意味着你应该过度担忧而避免在数据中心使用开源软件。只要做好尽调,就可以享受开源软件技术所能提供的创造力和好处。