持续交付发布可靠软件的系统方法(部署流水线)第六章:构建与部署的脚本化

《持续交付发布可靠软件的系统方法》读书笔记

构建工具概览

  • Make
  • Ant
  • NAnt与MSBuild
  • Maven
  • Rake
  • Buildr
  • Psake

构建部署脚本化的原则与实践

  • 为部署流水线的每个阶段创建脚本
  • 使用恰当的技术部署应用程序
  • 使用同样的脚本向所有环境部署
  • 使用操作系统自带的包管理工具
  • 确保部署流程是幂等的
  • 部署系统的增量式演进

部署脚本化

  • 多层的部署和测试
    配置
    应用/服务/组件 应用配置
    中间件 中间件配置
    操作系统 操作系统配置
    硬件 硬件
  • 测试环境配置
    部署前对基础设施做标准冒烟测试,如果发现问题,就让环境配置流程快速失败,并给出测试结果
    • 确认能从数据库中拿到一条记录
    • 确认能连上网站
    • 断言消息代理中的已注册的消息集合是正确的
    • 透过防火墙发送ping,证明线路通畅

推荐策略

  • 总是使用相对路径
  • 消除手工步骤
  • 从二进制包到版本控制库的内建可追溯性
    二进制包记录版本信息,如Java应用可以在MANIFEST中包含元数据,另外可以将构建流程生成的每个二进制包的MD5值及名字和版本标识符一起放在数据库中
  • 不要把二进制包作为构建的一部分放到版本控制库中
  • "test"不应该让构建失败
    在构建时如果有一个test任务失败,应该设置一个标记,继续构建,当生成更多的结果报告或者更完整的测试集后再令构建失败
  • 用集成冒烟测试来限制应用程序
  • .NET项目中确保bin和obj这两个目录被完全删除

你可能感兴趣的:(持续交付发布可靠软件的系统方法(部署流水线)第六章:构建与部署的脚本化)