软件开发平台 DevCloud软件开发平台 DevCloud

计算
弹性云服务器 ECS
裸金属服务器 BMS
云手机 CPH
专属主机 DeH
弹性伸缩 AS
镜像服务 IMS
函数工作流 FunctionGraph
云耀云服务器 HECS
VR云渲游平台 CVR
特惠算力专区
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
弹性文件服务 SFS
存储容灾服务 SDRS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属企业存储服务
云存储网关 CSG
专属分布式存储服务 DSS
CDN与智能边缘
内容分发网络 CDN
智能边缘云 IEC
智能边缘小站 IES
智能边缘平台 IEF
人工智能
AI开发平台ModelArts
华为HiLens
图引擎服务 GES
图像识别 Image
文字识别 OCR
自然语言处理 NLP
内容审核 Moderation
图像搜索 ImageSearch
医疗智能体 EIHealth
园区智能体 CampusGo
企业级AI应用开发专业套件 ModelArts Pro
人脸识别服务 FRS
对话机器人服务 CBS
视频分析服务 VAS
语音交互服务 SIS
知识图谱 KG
人证核身服务 IVS
IoT物联网
设备接入 IoTDA
设备管理 IoTDM(联通用户专用)
全球SIM联接 GSL
IoT数据分析 IoTA
路网数字化服务 DRIS
IoT边缘 IoTEdge
设备发放 IoTDP
IoT行业生态工作台
开发与运维
软件开发平台 DevCloud
项目管理 ProjectMan
代码托管 CodeHub
流水线 CloudPipeline
代码检查 CodeCheck
编译构建 CloudBuild
部署 CloudDeploy
云测 CloudTest
发布 CloudRelease
移动应用测试 MobileAPPTest
CloudIDE
Classroom
开源镜像站 Mirrors
应用魔方 AppCube
云性能测试服务 CPTS
应用管理与运维平台 ServiceStage
云应用引擎 CAE
视频
实时音视频 SparkRTC
视频直播 Live
视频点播 VOD
媒体处理 MPC
视频接入服务 VIS
管理与监管
统一身份认证服务 IAM
消息通知服务 SMN
云监控服务 CES
应用运维管理 AOM
应用性能管理 APM
云日志服务 LTS
云审计服务 CTS
标签管理服务 TMS
资源管理服务 RMS
应用身份管理服务 OneAccess
区块链
区块链服务 BCS
可信跨链服务 TCS
可信分布式身份服务
智能协作
IdeaHub
开发者工具
SDK开发指南
API签名指南
DevStar
HCloud CLI
Terraform
Ansible
云生态
云市场
合作伙伴中心
华为云培训中心
其他
管理控制台
消息中心
产品价格详情
系统权限
我的凭证
客户关联华为云合作伙伴须知
公共问题
宽限期保留期
奖励推广计划
活动
容器
云容器引擎 CCE
云容器实例 CCI
容器镜像服务 SWR
应用编排服务 AOS
多云容器平台 MCP
基因容器 GCS
容器洞察引擎 CIE
云原生服务中心 OSC
容器批量计算 BCE
容器交付流水线 ContainerOps
应用服务网格 ASM
网络
虚拟私有云 VPC
弹性公网IP EIP
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
虚拟专用网络 VPN
云连接 CC
VPC终端节点 VPCEP
数据库
云数据库 RDS
数据复制服务 DRS
文档数据库服务 DDS
分布式数据库中间件 DDM
云数据库 GaussDB (for openGauss)
云数据库 GaussDB(for MySQL)
云数据库 GaussDB NoSQL
数据管理服务 DAS
数据库和应用迁移 UGO
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
可信智能计算服务 TICS
推荐系统 RES
云搜索服务 CSS
数据可视化 DLV
数据湖治理中心 DGC
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
应用中间件
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
API网关 APIG
分布式缓存服务 DCS
分布式消息服务RocketMQ版
企业应用
域名注册服务 Domains
云解析服务 DNS
云速建站 CloudSite
网站备案
商标注册
华为云WeLink
会议
隐私保护通话 PrivateNumber
语音通话 VoiceCall
消息&短信 MSGSMS
云管理网络
SD-WAN 云服务
边缘数据中心管理 EDCM
云桌面 Workspace
应用与数据集成平台 ROMA Connect
ROMA资产中心 ROMAExchange
API全生命周期管理 ROMA API
安全与合规
安全技术与应用
DDoS防护 ADS
Web应用防火墙 WAF
云防火墙 CFW
应用信任中心 ATC
企业主机安全 HSS
容器安全服务 CGS
云堡垒机 CBH
数据库安全服务 DBSS
数据加密服务 DEW
数据安全中心 DSC
云证书管理服务 CCM
SSL证书管理 SCM
漏洞扫描服务 VSS
态势感知 SA
威胁检测服务 MTD
管理检测与响应 MDR
安全治理云图 Compass
认证测试中心 CTC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
专属云
专属计算集群 DCC
解决方案
高性能计算 HPC
SAP
混合云灾备
华为工业云平台 IMC
价格
成本优化最佳实践
专属云商业逻辑
用户服务
帐号中心
费用中心
成本中心
资源中心
企业管理
工单管理
客户运营能力
国际站常见问题
支持计划
专业服务
合作伙伴支持计划
更新时间:2022-01-05 GMT+08:00
分享

持续部署

持续交付与持续部署

每个团队都应该根据自己的需求做出选择。我们不应该关注形式,而应该关注结果:部署应该是无风险、按需进行的一键式操作。

  • 持续交付

    持续交付(CD) 是指,所有开发人员都在主干上进行小批量工作,或者在短时间存在的特性分支上工作,并且定期向主干合并,同时始终让主干保持可发布状态,并能做到在正常的工作时段里按需进行一键式发布。开发人员在引入任何回归错误时(包括缺陷、性能问题、安全问题、可用性问题等),都能快速得到反馈。一旦发现这类问题,就立即加以解决,从而保持主干始终处于可部署状态。

    ( 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服务,而持续交付适用于几乎任何对质量、交付速度和结果的可预测性有要求的低风险部署和发布场景,包括嵌入式系统、商用现货产品和移动应用。这意味着除了自动化测试之外,还可以自动完成发布过程,并且可以通过单击按钮随时部署应用程序。

    从理论上讲,通过持续交付,可以决定每日,每周,每两周发布一次,或者满足您业务需求的任何频率。

    但是,如果真的想获得持续交付的好处:应该尽早部署到生产环境,以确保可以小批次发布,在发生问题时可以轻松排除故障。

自动化部署流水线

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

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

CD at DevCloud

持续部署是DevCloud及其他所有DevOps研发工具的重要功能。在DevCloud中,持续部署覆盖两大功能模块——部署和流水线。在这一过程中,充分体现了DevOps工具链的“自动化”优势。

  • 部署:一键自动化快速部署应用到物理机、虚机、容器

    为了可以更快的、更稳定的持续地交付软件,我们需要运维提供自助、自动化部署服务的能力。

    • 部署应用到物理机、虚机、容器

      支持将应用部署到物理机、虚拟机、容器,即使是用户私有的物理机、虚拟机、容器集群,只要能连通就能进行部署。主机部署还支持以代理机的方式进行部署,容器可支持部署到华为云CCE以及客户的私有K8S的集群

    • 支持多种技术栈应用的部署

      支持tomcat、springboot、nodejs等多种技术栈应用的部署,提供通用模板比如springboot、tomcat等方便用户创建部署任务,并支持用户自定义模板,提供25+原子步骤组装成部署任务。

    • 支持与流水线集成打通部署流水线

      在流水线能关联部署任务,并可以通过流水线关联构建、代码检查、测试等服务,实现端到端的Devops流程。

    接下来以用户使用的云服务器资源分类为区别进行讲解。

    • ECS部署

      弹性云主机提供了自助便捷的服务器获取方式,特别适合自动化部署场景。

      本节讲述如何通过DevCloud在弹性云服务器ECS上部署应用。

      1. 添加授信主机

        自动化部署需要对弹性云主机进行操作,就需要通过主机组的方式管理主机连接密钥信息。

        1. 单击菜单设置 > 通用设置 > 主机组管理,进入“主机组管理”页面。
        2. 单击右上角“新建”按钮,进入“新建主机组”页面。输入主机组信息,单击“保存”按钮完成主机组的新建。
        3. 单击“添加主机”按钮,进入“添加主机”页面。填写主机信息后,单击“添加”按钮完成主机添加。
      2. 新建部署任务

        单击菜单构建&发布 > 部署 ,进入“部署”页面。

        单击新建任务按钮,填写任务名称等基本信息、选择部署模板,单击“确定”按钮。

        • 部署模板

          DevCloud支持多种部署模板,针对不同的项目可以通过不同的部署模板将项目部署至目标服务器中。目前已预制四种系统模板:SpringBoot应用部署、Tomcat应用部署、Docker应用部署(Linux)、容器应用部署(CCE/CCI)。更多详情请参阅应用部署

          除了目前已预制好的系统模板外,需要使用其他部署方式进行部署的任务,可由自定义部署步骤实现部署。

        • 部署步骤

          进入部署编辑界面,可以添加或删除部署步骤,也可对每一部署步骤进行编辑。

        • 自定义模板

          当部署步骤编辑妥当后,可由界面内的“另存为自定义模板”将此模板保存为自定义模板,之后即可在其他部署任务中直接使用此模板。

      3. 参数设置

        如果任务中涉及到需要使用参数的话,可以在“参数设置”中进行参数的定义。

      4. 执行部署任务

        在任务详情页单击“执行”按钮,即可开始部署。任务执行完成后,系统会显示部署结果(成功或失败)。

    • CCE部署

      云容器引擎(Cloud Container Engine)提供高可靠高性能的企业级容器应用管理服务,支持Kubernetes社区原生应用和工具,简化云上自动化容器运行环境搭建

      本节讲述如何通过DevCloud在云容器引擎CCE上部署应用。

      1. 登录云容器引擎官网,单击“立即使用”按钮,进入产品页面。

      2. 单击“购买Kubernetes集群”按钮,根据需要填写信息,完成购买。
      3. 返回DevCloud部署服务页面,新建部署任务时,选择“容器应用部署(CCE/CCI)”,并填写相关信息,完成任务创建。

    想要了解详细的部署操作方法,请见使用持续发布,在代码更新后自动完成应用部署

  • 流水线:打造快速、可靠、可重复的流水线,助力用户持续交付高质量应用,提升产品发布信心

    软件交付流水线是指软件变更从提交到版本控制库,到发布给用户的整个过程。软件的每次变更都会经历一个复杂的流程才能发布,这个流程包括构建软件、一系列不同阶段的测试与部署等,需要多团队协作完成。交付流水线对交付流程进行了建模,并支持查看、控制整个交付流程。

    部署流水线的目标

    • 能够基于版本控制系统中的信息重复搭建整套生产环境。
    • 保证价值流的每个阶段都使用类生产环境。
    • 清晰定义正确环境。
    • 自动化搭建过程。
    • 保障环境一致性。
    • 按需搭建环境。
    • 开发人员按需搭建开发环境、测试环境和类生产环境,把类生产环境运行和测试代码作为日常工作的一部分,及早且持续的获取质量反馈。
    • 任何人在几分钟内搭建好类生产环境,而不需要提交申请单,更不需要等待几周。
    • 质量是内建的,在过程中而不是事后保证质量。
    • 所有需求都被规范的签入自动化的环境搭建过程,无需文档、无需记忆。
    • 信息共享:在开发和运维之间。

    以下将使用华为软开云内置的CI/CD能力,持续交付价值。

    1. 单击菜单构建&发布 > 流水线,进入“流水线”页面。
    2. 单击“新建流水线”按钮,根据系统提示设置流水线基本信息。
    3. 编辑流水线
      • 添加阶段通过单击各阶段间的“+”按钮完成新增阶段,也可以删除某一指定阶段。每个阶段都可以由用户自行修改名称、执行方式等相应的阶段配置。
      • 添加任务:在各个阶段中,可以添加相应的子任务。流水线在执行的时候,实际正是执行这条流水线中所有的子任务。
      • 设置质量门禁:对于执行过程中质量不达标的流水线,可以中止执行。
    4. 执行流水线

      单击“全新执行”按钮,即可开始执行。执行结束后,可查看各阶段、各子任务的执行结果。

    想要了解详细的流水线操作方法,请见构建持续交付流水线,串接代码托管、代码检查、编译构建和自动化发布

分享:

    相关文档

    相关产品

关闭导读