LOGO

刘通老师 试听

主讲课程

  • .PMI-PMP 项目管理
  • .项目管理实战
  • .项目管理沙盘-挑战埃及
  • .瑞通敏捷项目和服务管理沙盘

持续交付 发布可靠软件的系统方法

  • 发布日期:
  • 2018-06-12
  • 浏览次数:
  • 107
  • 分享

       持续交付一书不仅仅提到了很多软件持续集成(自动化测试)和持续部署的工具(比如Github,Jenkins等),还提到了一些理念和原则,这些理念和原则我们可以统称为文化的范畴。一言以蔽之,持续交付不仅仅是指软件部署工具的自动化,还伴随一种文化的变革,即DevOps所倡导的“文化大革命”


        组织应用自动化工具的目的是为了缩短软件从需求到真正上线可用之间的周期时间(Cycle Time)。而组织内部部门间彼此协作和信任文化的建立在某种程度上也是提升软件交付工作在不同部门间协作的效能,减少不必要的消耗和浪费,从而缩短软件的交付周期。我们通常认为持续交付或DevOps所带来的打破部门墙的效果其实只是理应发生的附属物而不是其终极目标。


        持续交付一书把持续交付的相关工作做了如数家珍式的讲解,该书的主要内容包括软件代码和部署脚本参数的配置管理、自动化测试、持续集成、持续部署、数据库管理和基于云环境的动态部署等。


       其中最重要的概念就是部署流水线(Deployment Pipeline)部署流水线是指一个应用程序从构建、部署、测试到发布整个过程的自动化实现。这种自动化实现也伴随着软件源码管理、环境配置和数据管理等相关内容,这些都是软件自动化部署的前提。软件自动化部署的能力是建立在软件源码以及数据环境的高度配置管理的基础上的。组织的不善配置管理或配置管理成熟度不够高,往往导致企业在实施持续交付工作过程中步履维艰或浅尝辄止。


        有效的部署流水线提升了部署各个环节从构建、测试到部署的可视化,加强部署过程中每个环节的快速反馈(Feedback),最终具备通过自动化的方式在任意环境上部署和发布软件的任意版本的能力,这就是真正意义上的持续交付的能力


        我们通常所说的一键部署就是指的这种能力。这种能力的具备不是一触而就的,想做持续交付的企业需要不断的修炼内功。比如,要做到日构建,针对每日构建的代码做到自动化测试,自动化测试的代码覆盖率高达80%以上,代码的内建质量(不要把错误转到下一个环节,比如开发没有做单元测试,遗留Bug给测试等不好的行为一定要杜绝),定义每个阶段的验收即定义完成(DoD)测试驱动开发(TDD),应用分布式版本控制系统(DVCS),数据库部署的脚本化(包括版本回退、新版本更新、不同版本间的割接都要自动化),严格控制部署的风险(比如采用蓝绿部署,灰度发布,金丝雀发布(包括A/B测试)等良好实践),与云基础设施环境的高可用和资源弹性伸缩等的能力相结合,充分实现从软件到基础设施环境的自动化部署、自动容错和业务系统的自动化恢复。


  总之,具备持续交付DevOps能力的组织应该具备团队协作和信任的文化,从软件、数据库到基础设施的自动化部署能力,部署全过程的可视化和快速反馈,以及应用和数据库环境的快速故障恢复和版本回滚的能力,以实现业务部署的低风险、高价值和高业务的连续性。

以下所有均为我们的专职老师原创,转载请注明出处

上一篇 PMP理论之高屋建瓴小贴士

下一篇 高效的DevOps Effective DevOps