猪八戒网CI/CD最佳实践之路
扫描二维码
随时随地手机看文章
序言
本文旨在介绍ZBJ DevOps团队倾力打造的DevOps平台中关于CI/CD流水线部分的实践。历经三次大版本迭代更新的流水线,完美切合ZBJ各种业务发展需求,在满足高频率交付的同时,提高了研发效率,降低了研发成本,保证了交付质量。
持续集成(Continuous Integration)简称CI,持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据结果,我们可以确定新代码和原有代码能否正确地集成在一起。持续集成过程中很重视自动化测试验证结果,对可能出现的一些问题进行预警,以保障最终集成的代码没有问题。持续交付(Continuous Delivery)简称CD,持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(test,testing)中,然后交付给质量团队,以供评审。如果评审通过,代码就进入生产阶段。持续交付并不是指软件每一个改动都要尽快部署到产品环境中,它指的是任何的代码修改都可以在任何时候实施部署。有的人也把CD称为Continuous Deployment(持续部署),持续部署是指当交付的代码通过评审之后,可以部署到生产环境中。这里需要注意的是,持续部署应该是持续交付的最高阶段,持续交付是一种能力,持续部署是一种持续交付的表现方式。
CI/CD过程示意图
猪八戒网的CI/CD之路
背景介绍
在提到ZBJ DevOps流水线之前,先交代一下历史背景。2015年前,猪八戒网80%的项目都是用PHP语言开发的,剩下的少部分使用的是Nodejs和Java。2015年,ZBJ研发中心进行了自发性的“工业革命”——腾云七号行动——使用Java语言将核心业务代码进行了重构和拆解,建立了以Dubbo为核心的SOA微服务框架,使用ZooKeeper Swoole为核心的业务调用提供机制。满足新业务使用Java语言编写、老业务仍然使用PHP编写,同时支持两种语言(Nodejs