软件开发生产线 CODEARTS-DevOps面面观:DevOps实践

时间:2024-11-08 17:51:23

DevOps实践

  • 不做什么比做什么更重要:相比起向系统中投入更多的工作,将无用的工作剔出系统更为重要;无用的工作、无用的项目、无用的产品,排优先级,筛选出哪些是真正重要的工作。
  • 运维参与研发评审:常见的现象是,运维人员很少被邀请参与架构决策或代码评审,开发代码是否会影响运维环境前期无人知晓,需要让运维人员参与架构评审,从运维角度提出对系统的要求。
  • 非功能性需求同样重要:偿还技术上的债务。每个人都像重视功能性要求一样重视非功能性要求QoS(质量、稳定性、可维护性、持续性、可扩展性、可管理性、安全性、可操作性),非功能性需求对于实现业务目标同等重要,要把非功能性需求设计到产品当中。
  • 整体协作:产品所有者、开发部、QA、IT运维部以及信息安全部通力协作,帮助彼此乃至整个企业取得胜利。
  • 质量为先:上游团队不再给下游团队造成麻烦,开发部将20%的时间用于帮助确保工作顺利的通过整个价值流,加快自动化测试,改进部署基础架构,并确保所有应用程序建立有用的产品遥测。
  • 基础架构即代码(Infrastructure as a Code)
    • 把创建和部署流程自动化,把基础架构当成代码一样对待。
    • 各套环境之间,代码版本、运行时、环境配置需要匹配。
    • 需要将基础环境配置化、版本化管理。
  • 运维服务化:DevOps会让开发部门承担更多的代码部署和维持服务水平的责任,要求把许多IT运维任务转变为自助服务。
  • 版本化一切(Versionlize Everything):应该把所有东西都进行版本控制,不只是代码,而是创建环境所需的每一样东西。
  • ITIL:为了适应DevOps更短的交付周期和更高的部署频率,ITIL流程的很多方面都需要自动化,特别是变更、配置和发布流程等。
  • 云计算:有效的利用云技术,可以为开发和测试人员动态设置基础架构资源,快速获得测试环境。
  • 针对类生产系统进行开发和测试 (环境的标准化),利用可重复的可靠流程进行部署,监控并验证运维质量;
  • 放大反馈回路:快速反馈回路,防止问题代码进入生产环节,并且让代码能够迅速部署投产,从而迅速发现并修复任何产品问题。(编写代码时,单元测试、集成测试、验收测试一直在类生产环境运行,不断确认,代码和环境将会按照预先设定的运行,并且总是处于可部署状态)

support.huaweicloud.com/reference-devcloud/devcloud_reference_040103.html