开源软件人人爱,其带来的开发成本和风险如何控?
许多企业IT商店中的明星企业是开源的。二十年前,谁能预料到仅对Linux和Apache基金会的贡献就能产生数十亿美元的价值?更不用说已经发展成为成熟软件产品的项目生态系统了。
开源软件是一件美丽的事情。几乎免费、透明地引入世界,并受到相关开发商社区的强化。但是,在开源之上开发自己的业务软件并不仅限于“Kum-ba-ya”和阳光。此免费软件并非完全免费或没有风险。
因为开源开发可能附带一些戏剧性内容。
开展利用开放源代码的关键业务项目的公司需要权衡隐藏成本、质量风险以及使用此成熟但完全独特的软件类别所面临的挑战。
幕后:成本或质量动机?
市场说话了。现在,超过98%的开发人员表示,他们在工作中使用开源软件。许多企业都在遵循这一需求,做出战略决策,以在任何有意义的地方利用开源框架和工具进行开发和测试工作。
开源软件不再仅仅是核心DIY开发的领域。相比之下,随着社区和商业开源公司对每种产品的改进和强化,许多开源DevTest工具都具有接近商业质量的可用性,并且在GitHub和其他地方免费提供了库和模板。
我们将始终准备加载更多的Junit和Selenium测试。更多的SOAPUI和Postman代码可以在上面增加价值。更多可用的Maven组件,以及Stack Overflow上的代码段。更多詹金斯(Jenkins)构建脚本和Chef食谱。
与专有软件相比,开源软件固有地提供了IT成本优势。最明显的是取消了严苛的许可合同。如果您的团队可以自由下载代码并出于自己的目的民主地使用或修改这些工具,那么为什么要向供应商付款?(我们将介绍这一部分。)
反过来说,为什么像IBM,Microsoft,Google和Facebook这样的公司不收取许可费用,以根据开放源代码许可将其IP贡献给基础开发/测试工具?无论是Eclipse还是Visual Studio,Kubernetes还是React,这些巨人都是开源的信徒,他们致力于开发人员的思想共享和对专有技术的净采用。
显然,在这种情况下,除了底线许可证成本节省以外,还有更多因素在起作用,或者您不会看到有那么多主要供应商和商业开源公司对源代码项目进行大量投资。
用高级劳动力支付您的费用
当您在开源框架和组件上构建时,您可能会绕过某些许可费用,但实际上,您在开发时间上投资年金是因为您创建了更多资产,并且依赖所选工具链。
为了继续从这项投资中获取价值,公司必须吸引和保留熟练的(意味着,可能是相当昂贵的)人才,以主动管理与基于开源产品的软件和服务相关的开源产品的使用。
很少了解公司代码与当前开放源代码工具状态的相互联系的人很少有空闲时间,这会增加实施、配置管理、测试和监视的人工成本。
幸运的是,我们有两种方法可以降低人工成本:贡献和自动化。现在,所有开发人员中超过55%的人表示,他们定期为开源项目做出贡献,实际上,这些开发人员中的大多数都将自由地为开源做出贡献视为基本的工作满意度要素。
允许捐款是一种激励措施,有助于吸引和留住开发人员,并在更好地了解开源项目并为其提供指导方面获得回报。
对于控制人工成本甚至更重要的是,不懈地关注自动化,这是DevOps运动的核心宗旨之一。更好地重用开发,构建和测试工件是许多公司实现价值的最快途径。
“我们构建了Jtest和Selenic产品,以与供应商无关的方式来支持开源Junit和Selenium框架,这意味着开发人员和测试人员可以无缝地插入Parasoft工具而不会被‘供应商锁定’。”软件质量公司Parasoft的产品副总裁Mark Lambert说。
“此外,当团队需要超越诸如SOAPUI和Postman之类的开源工具提供的功能时,我们将从这些工具中获取测试,并将团队现有的测试投资转移到跨多个层次的大型自动化测试中,并超越REST支持。”
通过开发人员的贡献,再利用和自动化来参与,使公司时刻准备着续集。
毫无意外地实现合规
在数十次引人注目的软件故障和数据泄露之后,政府和行业团体呼吁对软件承担更高的责任级别——两者都是为了保护数据隐私,例如欧盟的GDPR,以及特定于行业的法规,例如医疗行业的HIPAA和PCI银行业。
网络安全公司Sonatype最近报告说,超过10000家公司(包括财富1000强中的57%)下载了相同的易受攻击版本的Apache Struts,该漏洞暴露了大量的Equifax客户数据泄露。
为了解决合规风险,公司必须提供完整软件交付过程的可审核文档,包括演示安全数据处理和变更控制。否则可能会被罚款数十亿美元。甚至在董事会中都能感受到这家公司的价值。
在开发人员每年从开源库下载和复制数十亿个组件和代码段的环境中,这可能会很困难。
每次软件更改事件都需要进行连续的自动化测试。除此之外,您还需要根据上下文生成一个完整的报告,以对出现的任何暴露的故障或安全风险进行处理。
假设您的最新软件交付审核发现登台环境中存在“某些问题”,并且您需要立即进行补丁或更新以对其进行修复。那么你要叫谁来做?
具有商业支持的开源
精明的CIO和开发负责人了解到,尽管开源软件可以缓解严苛的供应商合同和锁定,但在企业规模上开发基于其的解决方案仍然需要一条获得商业支持的道路。
受欢迎的开源项目总是有可能出错或成为昨天的新闻。如果开发人员社区转向更绿色的牧场而忽视了他们昨天使用的工具,会发生什么?
有人需要紧紧抓住,并站在发布的背后,进行必要的更新,并确保所使用的开源组件适合特定用途。这些考虑已形成了一个开发和测试供应商的生态系统。有时,当客户需要认证开放源代码工具的完整性(或在其之上运行的集成、服务和测试的企业级支持)时,客户可以与供应商签约以承担成功的责任。
除了这种由商业支持的开源的新精神之外,供应商通常还提供免费的商业工具入门费,用于个人开发人员的教育和贡献工作。例如,有一个免费的Virtualize产品“社区版”,因此开发人员、测试人员和SRE可以在构建和记录虚拟测试环境以促进协作的同时了解服务虚拟化。
The Intellyx Take
开源框架可能会在吸引开发人员参与的同时抢占您在IT商店中创造价值的机会,但是它并不需要因此而成为表面上的东西。
企业必须超越简单的底线成本模型或ROI计算,才能考虑完整的客户和员工体验。通过与整个商业和开放源代码工具一起工作来交付它,同时还希望它们背后的服务组织和社区能够帮助降低风险。
寻找易于掌握的入门方法,加快单个开发人员和测试人员的速度,并重用开源资产。
持续验证和认证您的环境。可预测的自动化和透明性将消除每次开源的麻烦。