暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

DevOps(三)流动的技术实践

加油管理人 2021-09-28
600

    本文的目标是创建必要的技术实践和架构,从而使开发到运维的工作能够稳定地快速流动,并确保不会造成生产环境的混乱和客户服务的中断。这意味着需要降低在生产环境中部署和发布变更的风险。这一点可以通过持续交付的技术实践来实现。

     持续交付包括打好自动化部署流水线的基础,确保团队能够使用自动化测试持续验证代码是否处于可部署状态,保证开发人员每天都将代码提交到主干,以及构建有利于实现低风险发布的环境和代码。

一、为部署流水线奠定基础

1、按需搭建开发、测试和生产环境:自动化的环境搭建过程确保了一致性,减少了繁琐、易出错的手动操作,运维人员能从这种快速搭建新环境的能力中获益。开发人员也得到了好处:他们在工作站上就能再现生产环境的必要部分,并在这个环境中构建、运行和测试代码。

2、应用统一的代码仓库:环境的可配置参数要比代码的可配置参数多出好几个量级。

3、使基础设施的重建更容易:必须确保所有变更都能自动地被复制到所有环境中并被版本控制系统记录,而不需要手动登录服务器进行变更操作。

4、运行在类生产环境里才算“完成”:通过让开发团队和运维团队共同掌握代码和环境互动的方式,并尽早频繁地实施代码部署,生产环境的部署风险得以显著降低。

二、实现快速可靠的自动化测试

1、对代码和环境做持续构建、测试和和集成:部署流水线的目的是给价值流中的所有成员提供尽可能快速的反馈,帮助他们及时识别可能让代码偏离可部署状态的变更,包括代码、环境因素、自动化测试甚至部署流水线基础设施的任何改变。

2、构建快速可靠的自动化测试套件。

3、在部署流水线失败时拉下安灯:一旦某个开发人员提交的代码变更导致构建或自动化测试失败,在这个问题被解决之前,不允许提交任何新的变更。

三、应用和实践持续集成

1、小批量开发与大批量合并:成功将分支合并到主干的成本,会随着分支个数的增加呈指数上升。

2、应用基于主干的开发实践:基于主干的开发能带来更高的生产力、更好的稳定性,甚至更高的工作满意度和更低的职业倦怠率。

四、自动化和低风险发布

1、自动化部署流程:用相同的方式处理所有环境的部署,对部署进行冒烟测试,维持环境的一致性。

2、将部署与发布解耦。

3、持续交付和持续部署实践的调查:持续集成是持续交付的前提,持续交付是持续部署的前提。

五、降低发布版风险的架构

1、能提高生产力、可测试性和安全性的架构。

2、架构原型:单体架构和微服务。

3、安全地演进企业架构:通过不断地从已有的紧耦合系统中解耦工作,工作被逐渐转移到一个安全且充满活力的生态系统中,这使开发人员的生产力大大提高,同时已有的应用功能逐渐萎缩。

    这些实践能有效缩短创建类生产环境的前置时间。同时,持续测试可以为每个团队成员快速提供反馈,让小型团队能够安全、独立地开发、测试和向生产环境部署代码,从而使向生产环境的部署和发布成为日常工作的一部分。

    此外,通过将QA人员和运维人员的任务集成到团队日常工作中,能够减少救火、困境以及琐事的发生,让团队成员的工作高效且充满乐趣。这不仅能提升团队的工作质量,也能增强组织的竞争力。


文章转载自加油管理人,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论