您的位置:首页 > 资讯 > 特种机器人 > 企业动态 > 正文

为什么构建过程自动化非常重要?

2023-12-25 09:15 性质:翻译 作者:Mulan 来源:AGV
免责声明:无人系统网(www.youuvs.com)尊重合法版权,反对侵权盗版。(凡是我网所转载之文章,文中所有文字内容和图片视频之知识产权均系原作者和机构所有。文章内容观点,与本网无关。如有需要删除,敬请来电商榷!)
作者:乔纳森·巴特利特(Jonathan Bartlett),美国沃尔特·布拉德利自然与人工智能中心(WALTER BRADLEY CENTER FOR NATURAL & ARTIFICIAL INTELLIGENCE)高级研究员Jonathan Bartlett...

作者:乔纳森·巴特利特(Jonathan Bartlett),美国沃尔特·布拉德利自然与人工智能中心(WALTER BRADLEY CENTER FOR NATURAL & ARTIFICIAL INTELLIGENCE)高级研究员

Jonathan Bartlett 是 Specialized Bicycle Components (美国美国公司,设计、制造和销售自行车、自行车零部件及相关产品,品牌为“Specialized”。)的高级软件研发工程师,他专注于解决跨多个软件团队的问题。此前,他是 ITX 的高级开发人员,为美国各地的公司开发应用程序。他还担任布莱斯研究所所长,专注于数学、哲学、工程和科学之间的相互作用。乔纳森是多本教科书和编辑书籍的作者,这些教科书和编辑书籍已被普林斯顿大学和德弗里大学等多所大学使用。

在规模较小的开发组织中,软件的构建流程往往被忽视。如果您不是软件开发人员,那么构建流程就是将源代码创建成最终软件包并交付给客户(或服务器)的一系列步骤。

多年来,大型企业一直在实现构建流程的自动化,原因很简单,构建流程必须适用于众多软件开发人员。它必须每次都能在每个人的机器上运行,并产生可靠的结果。 因此,将这一流程传达给每个人所需的文档量与简单地将其自动化之间的差距并不大。然而,在规模较小的组织中,人们很容易将过程自动化视为不必要的开销而绕过它。这种逻辑是这样的--如果只有 Sam 负责 X 产品,那么就只有他需要构建 X 产品。只要构建系统能让 Sam 轻松工作,这就足够了。不过,即使是对单个开发人员的组织而言,构建过程自动化也能带来许多优势。下面,我将向您介绍这种流程的组成部分,以及为什么它们对任何规模的开发组织都很重要。

虽然构建自动化构建流程有多种方法,但每个构建流程都始于版本控制的源代码。频繁提交的版本控制软件应该是每个开发组织的基石。自动构建流程只能直接从版本控制的源代码库中构建。这将迫使开发人员使用该系统,并确保所有构建的代码都已正确检查到源代码库中。我曾多次遇到过这样的情况,开发人员在发布产品时忘记提交代码,而我不得不追查这些代码。我不得不搜索已离开组织的开发人员的备份硬盘,以找到实际交付的代码。此外,当代码必须在构建之前提交时,就意味着你可以可靠地找到哪些版本的代码进入了哪些版本。错误是在 3.5.1 版和 3.5.2 版之间引入的吗?如果是在版本控制系统中构建的,那么获取这两个版本之间的所有变更列表就轻而易举了。

自动构建流程所需的下一个要素是构建流程本身。 这是实际执行构建的脚本或脚本集合。有了自动化流程,开发人员就必须明确写下构建流程所需做的所有事情。我不知道有多少次,开发人员告诉我 "构建流程很简单",但实际上却需要执行一个或多个非标准步骤。 自动构建流程意味着开发人员必须将所有这些步骤写入脚本,这样就很容易检查了。

标准化环境

构建流程的另一个重要方面是拥有标准化的环境。两个开发人员可以拥有相同的代码,运行相同的构建步骤,但一个开发人员可以编译,另一个却不行。是开发工具的版本错误?错误的 Windows 版本?是否有某个开发人员安装了某些东西,而另一个开发人员没有?通过 Docker 等工具,您可以创建甚至拥有一个精确的构建环境配方。使用 Docker 来运行构建环境,不仅可以指定(和版本控制)构建环境所需的确切组件,还可以创建一个逐位的构建系统映像。这样,代码是如何构建的就不会含糊不清了。例如,假设 2.1.1 版本存在安全漏洞,但您正在发布 5.6.2 版本。很多时候,开发环境已经发生了很大变化,您甚至不记得 2.1.1 版需要安装哪些工具。但是,如果您使用 Docker 作为自动构建系统的一部分,那么每个版本的整个工具链都会记录在案。

最后是版本控制过程本身。开发过程中一项恼人的任务就是确保正确的版本号附在代码上。这项工作可以通过自动构建系统实现自动化。我通常会这样设置我的构建系统:用一个特定格式的标签(如 release-1-2-3)标记版本库的版本,就能完成多个重要步骤。首先,它会促使自动构建过程将版本信息设置为 1.2.3。这通常由 shell 脚本完成,脚本会修改代码中的一些常量来设置版本信息。此外,自动构建流程工具通常也有一个构建编号,也可以使用。其次,我通常会让自动构建流程将生成的代码存储在一个特殊的位置,而这个位置本身就有版本信息。例如,如果是网络应用程序,我可能会构建一个 Docker 镜像,并将其存储在一个 Docker 存储库中,该存储库也会标记版本信息。

那么,要开始进行自动化构建,你需要哪些工具呢?事实上,这些工具都是现成的。 大多数版本控制软件中都嵌入了此类工具。Github 有 "Github Actions",Bitbucket 有 "Bitbucket Pipelines"。还有一些其他工具,如 CircleCI,可以连接到你的版本库,执行类似的功能。如果你想自己管理,可以使用开源工具 Jenkins。就我个人而言,我使用 Bitbucket Pipelines 的经验最多,而且非常满意。

自动构建流程有一个很酷的功能,那就是可以在没有电脑和合适工具的情况下做一些小改动。由于自动构建流程具备执行构建所需的一切功能,因此您实际上可以通过网络直接在版本库中进行简单的更改,然后让自动构建系统构建最终产品。虽然这并不是自动构建流程最令人兴奋的结果,但如果开发人员无法访问自己的电脑时需要进行一些小改动,自动构建流程有时就会派上用场。

持续集成/部署

自动化构建还允许执行对开发团队非常有益的其他任务,即 CI/CD。CI/CD 是 "持续集成/持续部署 "的缩写,是可以添加到自动化构建流程中的两项任务。持续集成指的是在自动构建过程中自动执行测试并报告测试结果的能力。这样做的目的是对开发流程进行检查,确保至少在某些分支上,开发人员不会检入导致测试失败的代码,从而给项目中的其他开发人员带来问题。基本上,它可以持续测试开发人员的协作结果,并在出现问题时通知所有人。

持续部署允许您从构建系统中进行全面部署,无论是部署到网站还是应用程序商店。 就我个人而言,我不喜欢构建系统本身执行部署,但我倾向于让构建系统为项目的部署做好准备,这样我只需点击一个按钮或执行一个命令就能让一切正常运行。例如,对于发布到亚马逊网络服务(Amazon Web Services)的网络项目,我喜欢让持续部署流程为生成的网络应用程序构建一个 docker 镜像,然后将其发送到亚马逊的容器存储库(Container Repository),并标注发布版本。然后,我只需为容器任务更改映像的名称,就能启动部署流程。请注意,我还将亚马逊配置保存在版本控制中,这样我就能记录哪些版本在何时发布。

总之,自动化构建流程可以实现开发管道的标准化和系统化。这就迫使开发团队将构建流程的所有步骤明确化、可重复化,并对每个版本的软件进行审计。使用自动化构建系统能迫使开发人员以 "正确 "的方式发布产品,而不走弯路,同时为开发人员和组织增加优势。无论您的开发组织是一个人还是一个大型团队,自动化构建流程都能为您的组织带来诸多好处。

网友评论
文明上网,理性发言,拒绝广告

相关资讯

  • 精益求精:寻迹智行机器人坚持打造高品质无人搬运设备
    寻迹智行作为国内领先的无人搬运机器人源头工厂,始终坚持以精益化、标准化的生产工艺,为客户提供高品质、高可靠性的智能搬运解决方案,坚持把关生产组装工艺每一个环节,确保每一台设备的卓越性...

    2025-07-08 10:47

  • 卡斯卡特旋转推出器
    卡斯卡特旋转推出器可对您的产品进行夹紧,旋转,侧移和推出等操作。应用:卡斯卡特旋转推出器可被应用于几乎所有装卸袋装或箱装货物的工况,诸如化肥,粮食,水泥,邮包,糖,罐头制品,箱装货物...

    2025-07-08 10:46

  • 合肥搬易通MiMA人上型三向堆垛车,助力医药企业打造高效洁净密集仓储!
    在医药行业快速发展的背景下,仓储物流系统面临着转型升级的关键时期。医药产品对存储环境的特殊要求,以及业务量持续增长带来的运营压力,都对仓储设备提出了更高标准的技术要求。01.客户信息客户...

    2025-07-08 10:46

  • 林德内部自动化物流解决方案助力上海万封,步入智慧仓储新时代
    在食品包装行业,无菌包装密封条作为食品包装过程中的重要工具,不仅改变了食品保鲜的方式,更推动了整个食品行业的发展。在激烈的市场竞争中,高效、无菌、智能化的生产流程是食品包装企业保持竞争...

    2025-07-08 10:45

  • 中力数智双会联动:数字孪生赋能智能制造,创新方案掀起仓储革命
    虚实共融 孪生未来2025年6月27日至29日,第九届数字孪生与智能制造服务学术会议在四川成都隆重召开。作为智能制造领域的积极参与者,中力股份全程支持本次盛会,与来自国内外百余所高校、科研院所...

    2025-07-08 10:45

  • 再下一城,合肥搬易通MIMA进军泉城!
    中国AGV网(www.chinaagv.com)2025年6月30日 济南讯|在中国工业车辆行业加速区域渗透与本地服务体系建设的时代背景下,合肥搬易通科技发展有限公司(MIMA)再下一城。6月29日,其第六家省级营销...

    2025-07-08 10:45

  • 挺进新赛道!中力叉车无人驾驶行李牵引车来了
    6月23日上午,园区企业江苏中力叉车有限公司技术人员对即将交付的无人驾驶行李牵引车进行最后的检测调试。这款集成3D SLAM激光雷达与3D感知雷达的智能装备交付,标志着中力叉车在机场特种车辆领域...

    2025-07-08 10:45

  • 普洱森林消防引入智璟智能救援装备
    云南省普洱市森林消防支队聚焦科技赋能,在近期驻训中创新引入装备厂家技术团队,将智璟飞行救生艇、水面移动救生担架、水上救援机器人、水下无人机等前沿科技装...

    2025-07-08 10:39

  • Continental发布超紧凑型NXS 300自主移动机器人
    随着智能制造与工业4.0趋势加速推进,生产线组织、产能灵活性与成本控制成为制造与内物流系统的核心挑战。近日,德国Continental(大陆集团)旗下全资子公司德国Continental Mobile Robots在此背...

    2025-07-08 09:44

  • HUBTEX多功能侧装式叉车在西方国防物流多场景应用
    近日,德国HUBTEX宣布其面向军工行业的柔性内物流解决方案正式投用,凭借多方向侧装式叉车等定制化装备,已为德国、美国、英国、日本等多国军队在掩体、弹药库以及露天作业环境中提供可靠的物料转...

    2025-07-08 09:44

推荐图文

关注官方微信

手机扫码看新闻