首页 > 其他分享 >想搞懂持续交付理论和实践,你只差这三个问题

想搞懂持续交付理论和实践,你只差这三个问题

时间:2022-11-21 10:57:43浏览次数:83  
标签:部署 代码 持续 实践 编译 构建 交付 搞懂

摘要:今天,我们来了解下什么是“持续交付”及“持续交付”的实践。

云原生是当下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. )

持续交付是持续集成的延伸,将集成后的代码部署到类生产环境,确保可以以可持续的方式快速向客户发布新的更改。如果代码没有问题,可以继续手动部署到生产环境中。

持续交付流水线

随着开发模式的日益成熟,软件开发过程中的每个环节已经越来越标准化了,但是这些环节都相对独立,需要一个东西将他们连接成一个整体。

如果我们能将这些环节——构建、发布、测试、部署有效的串联起来,形成一套完成的持续交付流水线,就能提高软件的发布效率与质量,持续不断的创造业务价值。

持续交付流水线工作流程大致如下:

  1. 开发人员将代码提交至代码仓库;
  2. 编译构建服务器获取到代码仓库文件变更信息,从代码仓库拉取代码,进行编译构建,生成二进制软件包,并将生成的软件包保存到制品库。构建过程中,每一步成功与否,都需将结果反馈给对应的开发人员。
  3. 构建完成后,将软件包按需部署到测试环境,进行测试,同时测试结果反馈给开发人员,
  4. 测试完成,由业务侧决定是否将软件包发布到生产环境,如果需要发布,则通过人工将软件包发布到生产环境。

当然,流程并非固定的,可以根据具体的业务需要,穿插其他流程,比如静态代码检查,性能测试等。

为什么要做持续交付

持续交付适用于几乎任何对质量、交付速度和结果的可预测性有要求的低风险部署和发布场景,包括嵌入式系统、web应用、移动应用等。开发者通过持续交付可以自动完成发布过程,并且可以通过单击按钮随时部署应用程序。

理论上讲,持续交付可以满足每日一次、每周一次等固定发布频率,或者满足业务需求的任何频率,但是,如果真的想获得持续交付的好处,应尽早将应用部署到生产环境,以确保可以小批次发布,并且发现问题后及时排除故障。

实践:通过华为云DevCloud实现持续交付

代码提交

华为云DevCould代码托管CodeHub是一个线上代码仓库,为开发者提供基于Git的在线代码托管服务,包括代码克隆/提交/推送/比较/合并/Code Review等功能。

开发人员可将代码提交至CodeHub。

编译构建

在“编译构建”服务中,用户可根据自己的编程语言,编程环境,自主配置所需的构建步骤,并对指定的代码仓库进行编译构建。

当然华为云DevCloud的编译构建功能支持持续集成:提交代码触发执行编译构建。

配置部署任务

部署功能与编译构建在使用方面类似,都是根据自己的业务场景配置相应的部署任务,任务配置完成后,可根据业务需要,执行部署任务。

持续交付流水线

之前提到了持续交付流水线,华为云DevCloud流水线功能可以将已经配置好构建,部署等服务串联到一起,实现一键部署。

 

 

点击关注,第一时间了解华为云新鲜技术~

标签:部署,代码,持续,实践,编译,构建,交付,搞懂
From: https://www.cnblogs.com/huaweiyun/p/16910674.html

相关文章

  • eCos Synthetic实践(二)——简单外设
     1. 简介SyntheticTarget同样包含多种硬件设备,当然它们都是虚拟的,其中一部分设备通过Linux系统调用就可以实现,不需要I/O辅助进程的参与,这类设备包括Disk、ADC、Flash、......
  • eCos Synthetic实践(一)——Hello World!
     1. 简介eCos提供了LinuxSyntheticTarget,通过SyntheticTarget可以将eCos应用作为一个普通进程在Linux系统内运行,这既提供了体验eCos的机会又不需要繁琐的硬件准备工作......
  • MQTT生产实践总结与EMQX5.0探索
     引言之前做了一个系统,系统的一部分硬件设备是使用MQTT协议接入的,无奈只好去研究它。好不容拼凑出一套能用的代码,上生产以后频频出现故障,后来稀里糊涂的解决了,但是一直......
  • 部署k8s集群的超详细实践步骤
    k8s是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可以促进声明式配置和自动化,下面这篇文章主要给大家介绍了关于部署k8s集群的实践步骤,文中通过图......
  • 基于Feign远程调用、自定义Feign配置、性能优化及最佳实践
    目录​​一、基于Feign远程调用​​​​定义和使用Feign客户端​​​​二、自定义Feign的配置​​​​配置Feign日志的两种方式​​​​方式一:配置文件方式​​​​方式二:Ja......
  • 强化从企业和产业实践中凝练研究任务,加大科技人才向企业集聚的力度
    2022-8-15:引导企业加强关键核心技术攻关!科技部重磅方案提出十大行动(baidu.com):方案还提出,健全需求导向和问题导向的科技计划项目形成机制,​=强化从企业和产业实践中凝......
  • 一文搞懂"衬底"“外延”的区别和联系
      在半导体产业链中,特别是第三代半导体(宽禁带半导体)产业链中,会有衬底及外延层之分,那外延层的存在有何意义?和衬底的区别是什么呢?首先,先普及一个小概念:晶圆制备包括衬......
  • 云原生之旅 - 14)遵循 GitOps 实践的好工具 ArgoCD
    前言ArgoCD 是一款基于kubernetes的声明式的Gitops持续部署工具。应用程序定义、配置和环境都是声明式的,并受版本控制应用程序部署和生命周期管理都是自动化的、......
  • java异常处理机制(实践建议篇)
    转载自java全栈知识体系https://www.cnblogs.com/dolphin0520/p/3769804.html在java中对于异常的处理并不是一件简单的事情,可能需要经过大量的思考以确保其合理性,以便程......
  • simpleFOC控制无刷电机理论及实践
    目录​​前言和基础知识​​​​simplefoc​​​​无刷电机​​​​例程​​​​例程1:驱动电机固定在某一角度​​​​例程2:驱动电机在两个角度位置之间切换​​​​例程3:驱......