低码和容器实现现代化软件开发

现代化开发的核心是优化性能

因此,开发人员不应该过多分析代码和阅读 vmstats ,而应该优化组织流程及低效率。但是,作为工程师,我们却浪费了很多时间去追踪系统之间的代码差异和依赖关系,或者当我们构建的软件不符合用户需求时,我们又回到白板上。在没有解决 bug 或设计问题的情况下,我们在软件开发生命周期中走得越远,我们浪费的时间、金钱和精力就越多。

例如,如果在设计阶段修复软件中的缺陷需要花费 1 元,那么在软件发布后(维护阶段)修复问题则需要多花费 100 倍,在我们的示例中是 100 元。以下是从设计到维护阶段相对成本增加的概述:

低码和容器实现现代化软件开发插图

在没有解决 bug 或设计问题的情况下,我们在软件开发生命周期中走得越远,我们浪费的时间、金钱和精力就越多。

组织和开发人员需要的是通过采用能够消除软件开发低效率、控制开发成本、促进与运营和业务涉众更好的协作的工具来实现软件开发的现代化。

 

现代化容器

“但它在我的机器上工作!”, “为什么 Python 的版本与在staging和prod上不同?” , “我们需要库的最新版本, 我们从 2015 年开始一直运行这一个!” 听起来很熟悉吗?作为一名开发人员,我相信您不止一次经历过类似的事情。容器为这些常见的软件开发问题提供了技术解决方案,也有助于我们在运营方面更好地与同事合作。但首先,让我们定义容器。

容器是一个孤立的文件系统,其中包含运行应用程序的代码、依赖关系和机器说明。通过优雅地使用cgroups、Linux 名称空间和 chroot,容器包装代码和该代码的任何依赖性进入任何 Linux 系统上运行的便携式可执行软件包。然后,相同的容器可以在任何环境中部署,无需变化,允许可重复的自动部署。

一致的部署使我们在运营中的同事非常高兴。容器通过提供一个源可控生成清单(通常是 Dockerfile)来促进这一点,该清单描述我们的代码和依赖关系,所有这些都位于一个地方。此文件表示运营和开发团队之间的交叉点。开发人员可以使用容器与运营工程师积极协作解决应用程序依赖关系,最大限度地减少用于管理不同环境的努力:同时提高新解决方案的交付速度。

自动部署和 DevOps 协作性很好,但应用程序是否满足最终用户的要求?消除发展与运营之间的障碍只是其中的一半。它不能解决在整个应用开发过程中缺乏与业务利益相关人员协作造成的低效率问题。没有人愿意最终得到一个在技术和功能上都优越,但未能为用户提供价值的软件。为了避免这种情况,软件开发过程必须从开发的设计阶段直接接触业务利益相关人员。

 

真正现代化的低代码

 

低代码工具使业务涉众和工程部门能够在比传统代码更高的抽象级别上进行操作。模型驱动的开发平台为开发者、运营和业务用户提供了一个共同的平台,使他们在整个应用开发过程中积极协作,而不是通过电子邮件来回传递需求,并冒着沟通不畅的风险。在开发过程的早期让业务涉众参与进来,有助于避免业务和 IT 之间代价昂贵、耗时的摩擦,并确保 IT 构建的应用程序满足最终用户和业务需求。最终,软件开发现代化的目标是提高向最终用户交付高价值软件的速度。像低代码和容器这样的技术通过加快从构思到软件交付的时间,消除开发过程中的低效率,并积极鼓励运营、开发和业务利益相关者之间的协作,帮助我们实现这一目标。