液体的软件

2017年1月17日,Fred Simon, JFrog联合创始人兼首席架构师流动软件:如何在DevOps世界中实现可信的持续更新(2018)

现代工业已经发展到这样一个地步:一家公司的生存取决于它发布软件的速度有多快。这不仅适用于科技公司,也适用于大多数公司——他们都开发软件来维护自己的产品、网站、电子商务网站、预订系统、移动应用程序等等。hth华体会最新官方网站通过不断开发新功能、快速修复错误和问题以避免流量丢失、快速解决任何安全漏洞以保持系统安全来保持竞争优势,这只是其中的几个原因。

在过去一年两次的单一软件交付中,一个版本被隆重地贴上了版本号的标签,然而由于三个因素,这个概念正在逐渐消失。首先,随着公司使用自动化来减少发布周期,客户越来越不关心他们正在运行的特定版本——他们只想使用最新的版本。其次,随着软件变得越来越分布式,由微服务组成的软件系统没有一个一致的整体版本。每个微服务都是独立更新的,所以“宏版本”是不断变化的。第三是组成物联网(IoT)的连接设备的爆炸式增长。随着越来越多的设备进入网格,管理软件的更新只能通过自动更新来处理,设备并不真正关心他们正在运行的是什么版本。

根据这些趋势推断,在不久的将来,我们将走向这样一个世界:发布周期变得如此之短,微服务变得如此之小,以至于在任何时候,都可能有一些东西正在被更新。实际上,软件将成为“液体”,因为我们将连接到“软件管道”,将更新流到我们的系统和设备;液体软件不断更新我们的系统。

这种运作方式已经在我们的日常生活中某种程度上可见。一个例子是我们无法控制的云服务。供应商更新服务,我们只是透明地接受它。另一个例子是我们大多数人接受的手机固件和移动应用程序更新,或者配置我们的设备让它们在后台自动发生,但要在企业中普及,仍有一些挑战需要克服。

信任和安全:必须有适当的机制来验证企业使用的许多软件提供者,并验证流入其系统的软件未被篡改。

软件质量:由于更新是自动的,软件供应商必须以非常高的信心发布软件。

Versionless软件:由于软件正在变得无版本化,必须有一些其他的方法来准确地识别客户正在运行的软件。例如,如果在生产软件中发现了错误,供应商需要确定哪个客户收到了该错误。另一方面,如果客户报告了一个错误或问题,服务台的工作人员必须能够识别显示它的软件。

透明度和协调:对于无版本软件,必须有一种不同的方法来协调当前运行的软件与更新它的软件,以确定更新是否兼容和期望。

缩短发布周期:公司仍在努力缩短发布周期,原因有以下几个:工具的可用性、对采用DevOps实践的抵制、日益自动化的挑战等等。然而,有些公司已经将发布周期缩短到几秒钟,这表明这确实是可能的。

随着软件越来越分散,发布周期越来越短,最终它们将减少到零。到那时,软件将是流动的,从开发环境中不断流动,通过分发平台自动更新系统和设备。没有人为干预的自动化系统所固有的安全风险必须通过行业标准工具来减轻,整个过程必须通过详尽的元数据来调解,以提供消费者方面的透明度。随着安全性和透明度的提高,自动和持续更新的液体软件的出现只是时间问题。