这才是DevOps演进及CI/CD实践的正确打开方式!( 二 )

这才是DevOps演进及CI/CD实践的正确打开方式!
文章图片
我们现在将产品与工程关联起来 , 并规定每一个工程必须关联一个产品 , 这样就保证了每一个产品都能找到实实在在的生产源码 。
这才是DevOps演进及CI/CD实践的正确打开方式!
文章图片
而做到这些还不够 , 我们还需要一个东西 , 把这些全部穿起来 , 于是我们使用jira构建了四种标准的需求发布流程:新产品上线流程:新产品第一次上线使用该流程 , 涉及需求评审 , 产品原型评审 , 安全评审 , 技术方案评审等产品大版本迭代上线流程:产品重大变更使用该流程 , 涉及需求评审 , 产品原型评审 , 安全评审 , 技术方案评审等产品功能迭代上线流程:产品功能模块日常迭代使用该流程bug修复流程:修复bug快速上线使用该流程
这才是DevOps演进及CI/CD实践的正确打开方式!
文章图片
现在有了产品树、产品责任制、工程责任制 , 以及需求发布流程 , 我们最后就建立了需求-产品-工程的标准研发生产线 。
这才是DevOps演进及CI/CD实践的正确打开方式!
文章图片
3、一键生成可部署工程
要做到这点 , 我们需要实现四个功能:
1)创建源码仓库:根据用户填写git祖名和工程名自动创建git仓库 。
2)提供各种技术栈的工程模版:根据用户填写的开发语言提供对应的工程模版 , 并在创建git仓库后 , 完成初始化 , 提交到git仓库 。
3)生成部署配置信息:根据用户填写的基本信息和系统预设配置动态生成流水线配置信息 。
4)生成配置中心信息:生成各环境配置中心信息 。
4、CI/CD流水线
这才是DevOps演进及CI/CD实践的正确打开方式!
文章图片
流水线做的其实总结起来就四件事:拉取源码 , 编译构建 , 将制品上传制品库 , 将制品部署到服务器 。
这才是DevOps演进及CI/CD实践的正确打开方式!
文章图片
而为了使这个过程可靠、可控以及规范 , 我们加入了校验任务 , 校验一些准入准出 。
这才是DevOps演进及CI/CD实践的正确打开方式!
文章图片
其次 , 再加入了测试任务 , 如自动化测试等 。
这才是DevOps演进及CI/CD实践的正确打开方式!
文章图片
然后就形成了这么一条流水线:
这才是DevOps演进及CI/CD实践的正确打开方式!
文章图片
最后应用到各个环境后 , 便成为了以下的流水线:
这才是DevOps演进及CI/CD实践的正确打开方式!
文章图片
流水线具有如下功能:
1)支持虚拟机容器两种发布方式
虚拟机发布 , 在完成编译构建之后 , 把生成的制品上传到文件服务器 , 这个文件服务器就相当于是虚拟机发布工程的制品库 , 文件服务器上保存了这个工程发布的历史制品版本 , 在上传到文件服务器后 , 接着会从文件服务器将制品同步到代码源 , 最后 , 虚拟机服务器上的守护进程会检测代码的代码是否发生变更 , 如果变更 , 便主动拉取代码 , 然后重启服务 。
而容器发布 , 则会在编译构建完成之后 , 根据用户提供的dockerfile文件构建镜像 , 然后将镜像上传到公司内部的hub仓库 , 接着组装元数据 , 调用容器云接口 , 部署到k8s集群 。 这里的容器云是猪八戒网自己基于k8s做的二次封装 , 主要的功能 , 就是将元数据拿来处理生成deploy文件 , 然后调用k8s执行部署操作 。