软件部署与测试:策略、实践与优化
在如今以代码即一切和GitOps为主要软件开发及系统构建方式的时代,验证应对缺失项能力的一个有效方法是每周甚至每晚从零开始重新部署包括基础设施在内的所有内容。这看似极端,但能确保没有被遗忘记录或编码的隐藏因素。
意外的混沌测试
曾经在为一家航空公司工作时,一次意外删除了 labs-ci-cd 项目以及一些应用部署的命名空间,其中还包括集群的认证提供者。当时项目已开发数周,团队习惯重新部署应用,删除Nexus或Jenkins等CI工具也不觉得有多大问题,因为自动化会迅速重新部署它们。然而,这次使用的GitLab与其他工具在同一项目中。
在删除前询问团队是否可以重建工具命名空间里的所有内容,得到肯定答复后,在清理一些认为需要清除的内容时意外多删除了几个项目。大约30秒后,团队成员发现Git无法访问,还有人无法登录集群。
意识到问题后,团队迅速采取行动。由于所有工作内容都存储在Git中,所以能够重新部署工具,并将本地分布式的软件和基础设施副本推回共享的Git仓库。凭借跨职能团队和所需的工具及权限,在1小时内就完全恢复了所有应用和工具,自动化也恢复正常运行。
这次经历让我们认识到,拥有合适的设备和职责分配,一个有能力的团队可以高效解决问题。同时也明白,不要将Git与其他工具放在同一项目中,并且要注意在集群中的权限设置。
高级部署策略
从软件编写和测试到生产部署的时间应尽可能短,这样组织才能尽快从软件变更中实现价值。现代方法是通过自动化来实现,因为手动部署到生产环境时,即使是像PetBattle这样的小型应用套件,也会涉及大量细节和配置项的更改
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



