云原生是当下IT圈非常热门的一个词 , 其目的是为了各组织在公有云、私有云和混合云等新型动态环境中 , 构建和运行可弹性扩展的应用 。云原生包含很多技术 , 比如容器、微服务、DevOps、持续交付等 , 今天 , 我们来了解下什么是“持续交付”及“持续交付”的实践 。
文章插图
什么是持续交付持续交付是指 , 所有开发人员都在主干上进行小批量工作 , 或者在短时间存在的特性分支上工作且定期向主干合并 , 同时始终让主干保持可发布状态 , 保证代码可以按需进行一键式发布 。开发人员在引入任何回归错误时(包括缺陷、性能问题、安全问题、可用性问题等) , 都能快速得到反馈 。一旦发现这类问题 , 就立即加以解决 , 从而保持主干始终处于可部署状态 。
( Wikipedia: Continuous delivery (CD) is a software engineering Approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time. )
持续交付是持续集成的延伸 , 将集成后的代码部署到类生产环境 , 确保可以以可持续的方式快速向客户发布新的更改 。如果代码没有问题 , 可以继续手动部署到生产环境中 。
持续交付流水线随着开发模式的日益成熟 , 软件开发过程中的每个环节已经越来越标准化了 , 但是这些环节都相对独立 , 需要一个东西将他们连接成一个整体 。
如果我们能将这些环节——构建、发布、测试、部署有效的串联起来 , 形成一套完成的持续交付流水线 , 就能提高软件的发布效率与质量 , 持续不断的创造业务价值 。
持续交付流水线工作流程大致如下:
文章插图
- 开发人员将代码提交至代码仓库;
- 编译构建服务器获取到代码仓库文件变更信息 , 从代码仓库拉取代码 , 进行编译构建 , 生成二进制软件包 , 并将生成的软件包保存到制品库 。构建过程中 , 每一步成功与否 , 都需将结果反馈给对应的开发人员 。
- 构建完成后 , 将软件包按需部署到测试环境 , 进行测试 , 同时测试结果反馈给开发人员 ,
- 测试完成 , 由业务侧决定是否将软件包发布到生产环境 , 如果需要发布 , 则通过人工将软件包发布到生产环境 。
为什么要做持续交付持续交付适用于几乎任何对质量、交付速度和结果的可预测性有要求的低风险部署和发布场景 , 包括嵌入式系统、web应用、移动应用等 。开发者通过持续交付可以自动完成发布过程 , 并且可以通过单击按钮随时部署应用程序 。
理论上讲 , 持续交付可以满足每日一次、每周一次等固定发布频率 , 或者满足业务需求的任何频率 , 但是 , 如果真的想获得持续交付的好处 , 应尽早将应用部署到生产环境 , 以确保可以小批次发布 , 并且发现问题后及时排除故障 。
实践:通过华为云DevCloud实现持续交付代码提交
华为云DevCould代码托管CodeHub是一个线上代码仓库 , 为开发者提供基于Git的在线代码托管服务 , 包括代码克隆/提交/推送/比较/合并/Code Review等功能 。
【想搞懂持续交付理论和实践,你只差这三个问题】开发人员可将代码提交至CodeHub 。
文章插图
编译构建
在“编译构建”服务中 , 用户可根据自己的编程语言 , 编程环境 , 自主配置所需的构建步骤 , 并对指定的代码仓库进行编译构建 。
文章插图
当然华为云DevCloud的编译构建功能支持持续集成:提交代码触发执行编译构建 。
推荐阅读
- 关于睡眠的一些小错误 这些知识你真的懂吗?
- 唐磊|“丁香花”唐磊晒接地气伙食走红,吸引20万人围观,网友:真懂吃
- 李峋|《打火机与公主裙》的本质:李峋不懂社会,朱韵是纯纯“恋爱脑”
- 不要和陌生人说话|重温《不要和陌生人说话》才懂,叶斗为何要“偷窥”安嘉和梅湘南
- 肖战|肖战王牌部队在各台持续轮播,让网友们直呼厉害!
- 古力娜扎|一篇文章摧毁了一个商业帝国?看了《大博弈》,终于懂了蝴蝶效应
- 永恒岛之彩虹世界|不要期望别人懂你,别人对你或许不感兴趣
- 飞机为什么能够平稳持续飞行?
- 日语|客车司机变成“鬼子”专业户,杨清文因懂日语,靠《亮剑》大火
- pr导入图片的默认持续时间怎么设置