作者丨David Linthicum
编译丨诺亚
开源是IT领域中一个经常两极分化的话题,在我职业生涯的大部分时间里都是如此。使用开源比任何其他技术都存在更多的情绪。随着AIGC的兴起,情况可能会变得更糟。
使用开源软件进行基于云的开发,因其成本、灵活性和积极的社区参与而变得越来越流行。但是,必须了解使用开源具有哪些潜在的危险。
我直说吧,企业往往最终得到的是严重未优化的系统,这些系统的成本远远超出其应该运行的成本。一切通常隐藏在过度膨胀的预算中,从首席信息官到董事会,没有人知道这一点。
你会花1000万美元来建造一个本应花费300万美元的系统吗?更糟糕的是,其中许多系统的运营成本增加了50%,这主要是由于糟糕的架构选择,例如在其他解决方案可以为业务带来更多价值的情况下,却只推送特定的云提供商或推送开源。
这样的日子可能即将结束。随着云计算支出受到自上而下的批评和分析,企业在如何更有效地构建和运行云计算解决方案方面变得更加精明。
我绝不是说开源不是正确的解决方案。在许多情况下,由于错误的原因,它被推送到解决方案堆栈上。所以,在正文开始前,请记住这一点。
开放的心态
开源用户,无论是否在云中,通常都必须依赖社区资源,通过论坛或留言板提供,这需要时间。这可能会耽误云开发进度,尤其对于时间紧迫的方案或复杂问题,处理就比较麻烦。一位开发人员曾经告诉我,她需要参加一个开源社区的会议,然后才能解决一个特定的问题——这个会议需要等五周。那显然行不通。
从安全角度来看,开源软件可能会带来特定的挑战。尽管开发人员社区定期审查此类软件,但它仍然可能存在未检测到的漏洞,主要是因为它的代码是可公开访问的。
例如,几年前出现了一些开源供应链问题。如果没有严格的安全措施和频繁的更新,这些漏洞可能会成为严重的安全威胁。这些问题并非无法解决;它们必须得到解决。在大多数情况下,你需要依靠自己而不是某些专有软件提供商。
集成
开源软件也可能缺乏特定专有软件所提供的功能或集成。社区主导的更新或改进可能不会优先考虑可能对用户或企业有利的功能。这可能会影响可扩展性和软件在云开发中的整体效用。
当然,有些人认为开源系统是开放的。你可以在那里添加和修复需要的功能。我们这些这样做过的人,包括我,都明白这需要多少技能、时间和专业知识。这样的时间成本不会被那些只想完成和部署项目的项目经理所接受。
另一个需要考虑的关键因素是知识产权。虽然可以免费使用,但开源软件仍然有许可证,必须遵守版权法。如果处理不当,可能会导致法律纠纷或损害企业声誉。作为CTO,我吃过好几次亏,因为有些事情没有向我披露,这在出售公司和知识产权的过程中成为一个问题。在其中一个案例中,它停止了销售。
最后,使用开源软件进行基于云的开发需要更多的技术熟练度。鉴于其DIY性质,那些可以利用该软件的人总是给我留下深刻的印象。它提供了更大的定制,但对于没有技术知识的用户来说,这种灵活性可能是一把双刃剑。试着自己实现其中的一些;如果没有开源公司的支持,它充其量只是一个工程项目。
权衡取舍
当然,一些开源软件提供商在协助用户安装和支持方面做得很好。如今,无论如何,我只会考虑在他们的参与下使用开源。有太多可能出错的地方,从某种意义上说,你正在获得专有解决方案的价值,包括支持等,尽管需要额外的成本,这可以使许多专有替代方案同样引人注目。
最好对开源保持开放的心态。把情绪释放出去,接受包括开源比其他技术更两极分化的事实。我要么听到,“我们是一家开源优先的公司”,要么“这里没有开源”。这实际上意味着,“我们不喜欢思考我们正在做什么,当利用云平台不是正确的解决方案时,我们选择部分优化不足。
这一切都归结于任何技术的实际商业价值,无论是否开源,是否云计算。所有事情都必须考虑到回报给企业的价值,无论是硬件还是软件。
参考链接
https://www.infoworld.com/article/3708293/when-open-source-cloud-development-doesnt-play-nice.html