液态软件 – 如何在开发运维世界中实现可信的持续更新

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

 

在过去的单体式、两年一次的软件交付时代,一个版本会被隆重地标记一个版本号,但是由于三个因素,这个概念正在消失:

 

  • 首先,随着公司使用自动化来缩短发布周期,客户越来越不关心他们正在运行的特定版本——他们只想使用最新版本。

 

  • 其次,随着软件变得越来越分布式,由微服务组成的软件系统没有一致的整体版本。每个微服务都是独立更新的,所以“宏”版本是不断变化的。

 

  • 第三是构成物联网 (IoT) 的连接设备的爆炸式增长。随着越来越多的设备加入电网,管理其软件的更新只能通过自动更新来处理,而设备并不真正关心它们运行的是什么版本。

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

 

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

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

 

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

 

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

 

  • 透明度和协调性:对于无版本软件,必须有不同的方式来协调当前运行的内容与更新它的软件,以确定更新是否兼容和需要。

 

  • 缩短发布周期:公司仍在努力缩短发布周期,原因有几个:工具的可用性、开发运维实践的采用阻力、提高自动化的挑战等等。尽管如此,有些公司将发布周期缩短到几秒钟,这表明这确实是可能的。

 

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

 

 

标签:JFrog pipelines   JFrog 容器注册   JFrog docker 注册    JFrog helm 仓库   ARTIFACTORY