持续交付-第一章 软件交付的问题

前言

  • 书名来源于敏捷宣言的第一原则:“我们的首要任务是尽早持续交付有价值的软件并让客户满意”。
  • 本书的一个主要目标是改善负责软件交付相关人员之间的协作,尤其是开发人员,测试人员,系统和数据库管理人员以及经理。
  • 本书的中心模式是流水线模式,本质上来说就是指一个应用程序的构建、部署、测试到发布这整个过程的自动化实现

常见的发布反模式

首先我们要知道为什么会出现反模式,这是由于软件发布时需要很多的手工操作,很容易出错。为了可靠的发布,避免一些错误。
下面是一些与可靠发布过程相对应的常见反模式

  • 手工部署软件

无论规模大小,部署的过程比较复杂,而且所需要的步骤时独立的原子操作,由团队或者个人执行,但很容易发生人为错误。而且还有部署顺序的不同导致的差异性。

  • 开发完成之后才向类生产环境部署

软件第一次被部署到类生产环境时,是大部分工作完成时,或者开发团队认为“该软件开发完成了”。
这样做会出现很多的问题,由于部署工作的很多步骤根本没有在试运行环境上测试过,所以经常遇到问题。
对策:将测试,部署和发布也纳入到开发过程中。使用大量的持续集成和持续部署是我们所描述的方法的基石。

  • 生产环境的手工配置管理

由专门的运维团队管理生产环境的配置,如果需要修改一些东西,就要登陆到生产服务器手工修改。

如何实现目标

作为软件从业者,目标是尽快的向用户交付有用的可工作的软件。
即要找到一种可以高效、快速、可靠的方式交付高质量且有价值的软件的方法。为了实现这些目标,我们需要频繁且自动化的发布软件。

  • 对于频繁且自动化的发布,反馈很重要,下面关于反馈的三个标准。
    • 每次修改都应该触发反馈流程
    • 必须尽快接收反馈
    • 交付团队必须接收反馈并作出反映

收效

前面的方法,最主要的是创建了一个发布流程(可靠的,可重复的,可预见的,缩短发布周期)

  • 授权团队
    使测试人员,运维人员,和支持服务的人员做到自服务,团队能够更好的进行工作,协作更有效。
  • 减少错误
    指的是由不良好的配置管理引入到生产环境的错误
  • 缓解压力
  • 部署的灵活性

候选发布版本

有两种存在差异的理解

  • 代码的任何一次修改都有被发布出去的可能
  • 维基百科
    指可能成為最終产品的候选版本,如果未出現問題則可释出成为正式版本。在此階段的产品通常包含所有功能、或接近完整,亦不會出現严重问题。

软件交付的原则

  • 为软件发布创建一个重复且可靠的过程
    • 几乎将所有的事情自动化
    • 把所有的东西纳入版本控制
  • 提前并频繁的做让你感到痛苦的事
  • 内建质量
  • “DONE” 意味着 “已发布”
  • 交付过程每个成员的责任
  • 持续改进

问题

  • 既然手工部署即复杂又费时费力,又有自动化的存在,那么手工方式到底有没有被替代。
  • 怎样进行的部署?
  • 配置管理(第二章)的内容不是很清晰,还有就是和我们平时的配置的内容有关系吗?配置管理是配置信息的管理?
  • 候选发布版本的准确理解是哪一种?

总结

  • 对软件交付的过程有了一个大致的了解,对于开发的过程有了一个大致的认识,与我们自己开发还是有很大的区别的
  • 要尽可能的自动化,会减少很多的麻烦和不必要的错误
  • 把所有的东西纳入版本控制中
  • 团队合作在开发中十分重要,从开始要保证由各个成员参与到发布中,大家可以有机会频繁且有规律的进行交流。那么这个频繁的交流是怎样来确定的。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容