持续集成与持续部署

持续集成与持续部署

传统开发过程中的坑

  • BUG总是在最后才发现
  • 越到项目后期,加班越严重
  • 交付无法保障
  • 变更频繁,导致效率低下
  • 无效的等待多,用户满足度低

  • 理想状态

  • 不用为开发测试环境不一致而苦恼
  • 不用麻烦运维人员帮忙调试环境
  • 不用手动进行测试,模拟环境中进行自测
  • 不用手动发布、部署,自动化实现发布部署
  • 不用管开发、测试环境,只用专注代码的开发

持续集成CI解决问题?

  • 提高软件质量
  • 效率迭代
  • 便捷部署
  • 快速交付、便于管理

持续集成CI(continuous integration) 持续交付CD(continuous delivery) 持续部署CD(continuous deployment)

  • CI 不断提交代码测试
  • CD 在CI的基础上,对代码进行构建,打包进行储存,发布交由人工完成
  • CD 在CD的基础上,对代码进行自动化发布部署,快速验证

持续集成组成要素

  • 版本管理工具 github gitlab
  • 构建脚本工具
  • CI服务器

应用场景

  • 打包平台
    • 常见的大包,java应用(Gradle/Maven)、Nodejs前端应用(npm/yarn)
    • 移动端大包(Android/IOS)
  • 测试平台
    • 接口测试
    • 自动化测试Robotium/TestLink
    • 单元测试junit
    • 性能测试 JmeTest
  • 自动部署
    • FTP
    • Shell
    • Tomcat/Docker
  • 持续集成
    • Git: gitlab/github/gitee等
    • Jenkins/TravisCi/CircleCi
    • Docker

Image text