化繁为简高效部署 华为云发布部署服务CodeArts Deploy
随着互联网、数字化的发展,公司机构与各类企业往往需要进行大量频繁的软件部署,部署设备类型多样,如:本地机器、云上裸金属服务器、云上虚拟机与容器等。面对多种部署模式、分布式复杂运行环境,如何用最短时间、高质量、安全可靠的进行软件部署,这已经成为一个普遍关注的课题。
持续部署,通过频繁的、标准化、自动化的方式,将软件快速交付到生产环境。从开发人员提交代码到编译、测试、部署,全流程无人干预,完全自动化执行。这种模式与部署能力,可以大幅加快软件版本上线速度,保证新功能第一时间被用户使用。
2月27日,华为云发布持续部署服务CodeArts Deploy,通过模块化自由编排部署流程,实现软件的自动化部署,帮助企业软件产品的快速、高效、高质量交付。
传统部署怎么做?
当开发者把代码构建打包后,软件包需要被安装到具体的服务器上,才能够对外提供服务从而实现商业变现。软件被安装到服务器这一过程,在软件开发活动中通常被称为部署。
现在多数应用程序,其部署过程都比较复杂,经常包含很多步骤,且步骤间夹杂着人工确认等动作,很容易发生意外情况。
即便一个简单的部署动作,也可能会因为服务器版本的不同、文件目录结构的差异、权限的不一致、配置项繁琐而导致应用程序无法正常启动;
同时,部署项的数量、服务器数量、每次部署的步骤数也会直接影响软件的部署效率,三个维度的复杂性共同导致软件部署的工作量呈指数级增长;
而且,一个软件产品从开发出来到最终入网,往往需要经过开发环境、集成测试环境、预发模拟环境、生产环境等多轮测试验证。
从多个角度分析得知,传统的部署方式无法实现软件规模化部署。
简而言之,传统的部署方式存在效率低、周期长,可重复性差、易错、成功率低等问题;也存在着部署责任和权限不清晰、上线频度低、严重依赖执行部署动作的人和经验等大量的短板。从趋势上看,更加频繁的交付新特性,快速闭环反馈,是软件开发一致追求的目标。
华为云CodeArts Deploy助力安全、高效持续部署
华为云CodeArts Deploy采用沙箱技术,提供可视化UI页面,通过封装技术对用户屏蔽繁琐的操作配置流程,用户只需填写关键的参数,即可实现应用的部署。
基于其易入门、功能全、集成度高、自动化、可靠的部署能力,CodeArts Deploy能够帮助大量客户快速实现业务上云,全面提升软件的交付效率,显著提升交付质量。
具体来看,华为云CodeArts Deploy有以下5大优势:
特性一:内嵌丰富系统模板,配置简单,开箱即用
面对多种新技术所衍生出的多种部署方式,华为云CodeArts Deploy将各种部署能力进行UI化提取,通过系统模板集成的方式,将纷乱繁杂的部署工程配置标准化并向用户开放。
目前,CodeArts Deploy内嵌超过15个系统模板,包含主机、容器、Serverless等多种部署形态,覆盖了Tomcat、Springboot、Go、NodeJs、Docker、Kubernetes等多种语言和技术栈。
除提供丰富的系统模板外,还支持用户开发自定义模板,将具有相同部署流程的应用通过模板进行归档复用,减少重复配置工作,极大提升持续部署效率。
特性二:步骤自由组装,灵活编排,满足各行业部署诉求
一次完整的部署过程通常会包含多个步骤。对于不同的用户和行业,涉及到的部署场景可能会存在巨大的差异,导致部署工程的配置以及步骤间依赖关系也不尽相同。
例如,一款大型软件通常由多个部件组成,对于大型软件的部署,会涉及多个部署步骤和软件包的安装,且存在复杂的前后依赖关系;同时,不同技术栈的部署步骤也不尽相同。所以开发一套能够覆盖全部行业和场景的标准部署方案无法行得通。
华为云CodeArts Deploy服务可对部署过程进行拆分提取,将每一个动作封装为一个独立的插件,以部署步骤的方式提供给用户。用户可以基于步骤进行自由组装,只需输入必要的参数即可实现工程配置,避免手动编写部署脚本。同时,用户可根据部署场景需要,用托拽的方式自定义编排部署工程。
目前,CodeArts Deploy已集成40多个部署步骤,涵盖多种技术栈的部署,以及文件操作、软件安装等附加通用能力,通过丰富的部署步骤,以及自由灵活编排功能的加持,使得应用部署更轻松。
特性三:横纵向权限隔离,多环境一键式自动化部署,助力企业安全、高效生产
DevOps敏捷模式下,通常包括Alpha、Beta、Gamma、Production等四种环境。软件在上线过程中,根据测试阶段软件会被部署不同环境,每个环境都需要经过严格的测试,满足当前环境的验证标准,才能进入到下个环境。
华为云CodeArts Deploy提供以应用为中心的环境管理能力,将同一应用下的各个环境进行统一管理,在多环境部署的场景下,使每个环境采用相同的部署流程,保证交付的一致性。
生产故障是软件开发不可碰触的红线,环境作为其中最关键的一环,其安全管理显的尤为重要。CodeArts Deploy采用横向和纵向的权限隔离机制,严守安全部署底线。
横向鉴权限制部署时只可选择当前应用关联的环境,避免在复杂的软件开发中应用和环境交叉部署导致安全事故。另外,每个环境的职责不同,面向的成员角色也会有所差异,所以对环境的权限需要做差异化的配置。
纵向鉴权采用更加精细化的“角色-权限”二维矩阵模型,支持环境实例级别的权限隔离,精准把控每个环境的安全。
基于环境管理,CodeArts Deploy提供一键式自动化部署能力,部署过程可视化,可随时观察部署状态,如果部署过程中发生异常,支持一键回滚到上一版本,实现安全部署。CodeArts Deploy天然与流水线无缝对接,当代码提交时可自动触发实现环境的实时升级,真正实现无人值管理。
特性四:支持多种部署形态,满足各种部署场景
基于企业部署环境和业务多元化的需要,华为云CodeArts Deploy提供主机、容器、微服务以及函数流等多种部署形态。
主机部署
CodeArts Deploy开发了大量的部署步骤,涵盖基础软件安装、文件操作、软件部署等方面。在支持Linux操作系统多个主流发行版本的同时,也支持基于Windows操作系统为平台的软件部署场景。
容器部署
CodeArts Deploy支持华为云CCE集群、用户自有集群以及三方供应商提供的通用Kubernetes集群,实现云上云下协同部署。提供基于Kubernetes Manifest描述的全量部署和基于镜像迭代的快速部署能力。
另外,CodeArts Deploy也提供基于Helm客户端(Kubernetes包管理器开源软件)、Kubectl命令行以及原生Docker命令等多种容器部署能力。
微服务部署
CodeArts Deploy通过打通华为云上下游,实现CodeArts与华为云Servicestage服务的对接,满足用户基于微服务架构应用的部署。Servicestage天然集成SpringCloud、ServiceComb等开源框架,配合CSE微服务引擎,助力微服务应用更好、更快的部署。
函数工作流
对于期望直接运行代码源文件,对底层运行资源不关注的用户。CodeArts Deploy通过对接新一代Serverless函数计算与编排服务FunctionGraph,以事件驱动函数的方式实现软件的发布。
特性五:多地域灾备部署,多账号协同部署
一次宕机或者一段时间的停服,可能会给公司或企业带来巨大的负面影响,造成无法挽回的损失,所以灾备部署功能已成为部署工具的必要能力之一。
华为云CodeArts Deploy支持跨region的灾备部署能力,使用同一套部署配置,将应用同时部署到生产环境和其他region搭建的容灾环境,极大降低紧急情况下长时间停服的概率,确保产品安全可靠。
CodeArts Deploy同时支持云上跨账号部署能力。大型企业通常会有多个职能部门,企业上云后出于对IT系统的精细化治理,每个部门会被分配各自的华为云账号,用于维护该部门的物理资源和部署应用。另一方面,企业希望使用统一的DevOps账号来管理所有部门的软件开发活动,其中包含应用的部署行为。
例如,要求所有部门遵守相同的需求管理规范、代码提交规则、发布门禁以及部署流程等开发标准,还需要统计各个部门、各开发人员的工作质量和工作进度等效能指标。针对上述的部署治理场景,基于CodeArts Deploy跨账号部署能力,开发人员使用DevOps账号可将编译过的软件包部署到所属部门账号的资源中,在独立IT治理的场景下,依然可以满足开发活动的统一治理。
得益于以上特性,华为云CodeArts Deploy已服务华为内部以及广大公有云客户,覆盖金融、物流、能源、汽车等多个行业,帮助用户实现应用的高效迭代和快速部署。
例如,华为内部使用CodeArts Deploy后,应用部署一次性成功率直线提升超过80%;某头部大型物流企业,其全部产品线100多套系统平台使用CodeArts Deploy进行部署交付,效率较之前提升超过30%,大大缩短软件交付周期。
面向未来,华为云CodeArts Deploy将打造提供可灰度、可回滚、可监控、可追溯的轻量化软件发布上线能力,助力企业实现应用的高可靠快速发布。
相关文章:

化繁为简高效部署 华为云发布部署服务CodeArts Deploy
随着互联网、数字化的发展,公司机构与各类企业往往需要进行大量频繁的软件部署,部署设备类型多样,如:本地机器、云上裸金属服务器、云上虚拟机与容器等。面对多种部署模式、分布式复杂运行环境,如何用最短时间、高质…...

注意力机制详解系列(四):混合注意力机制
👨💻作者简介: 大数据专业硕士在读,CSDN人工智能领域博客专家,阿里云专家博主,专注大数据与人工智能知识分享。 🎉专栏推荐: 目前在写CV方向专栏,更新不限于目标检测、OCR、图像分类、图像分割等方向,目前活动仅19.9,虽然付费但会长期更新,感兴趣的小伙伴可以…...
Makefiles学习1
初识"Makefiles" 创建一个 “Makefile” 文件 touch Makefile“touch” 用于修改文件或者目录的时间属性,包括访问时间和修改时间,若文件不存在,则重新建立一个新的文件。这里有两个需要我们注意的: 进入并编辑"…...

日志框架以及如何使用LogBack记录程序
使用日志框架可以记录一个程序运行的过程和详情,同时便捷地存储到文件里面,并且性能和灵活性都比较好。日志的体系结构包括两类日志规范接口:Commons Logging,简称:JCL;Simple Logging Facade for Java&…...

集成RocketChat至现有的.Net项目中,为ChatGPT铺路
文章目录前言项目搭建后端前端代理账号鉴权方式介绍登录校验模块前端鉴权方式后端鉴权方式登录委托使用登录委托处理聊天消息前端鉴权方式后端校验方式项目地址前言 今天我们来聊一聊一个Paas的方案,如何集成到一个既有的项目中。 以其中一个需求为例子:…...

王道操作系统课代表 - 考研计算机 第三章 内存管理 究极精华总结笔记
本篇博客是考研期间学习王道课程 传送门 的笔记,以及一整年里对 操作系统 知识点的理解的总结。希望对新一届的计算机考研人提供帮助!!! 关于对 “内存管理” 章节知识点总结的十分全面,涵括了《操作系统》课程里的全部…...

Cypher中的聚合
深解Cypher中的聚合 值或计数的聚合要么从查询返回,要么用作多步查询下一部分的输入。查看数据模型 CALL db.schema.visualization() 查看图中节点的属性类型 CALL db.schema.notetypeproperties() 查看图中关系的属性类型 CALL db.schema.reltypeproperties() C…...

图注意网络GAT理解及Pytorch代码实现【PyGAT代码详细注释】
文章目录GAT代码实现【PyGAT】GraphAttentionLayer【一个图注意力层实现】用上面实现的单层网络测试加入Multi-head机制的GAT对数据集Cora的处理csr_matrix()处理稀疏矩阵encode_onehot()对label编号build graph邻接矩阵构造GAT的推广GAT 题:Graph Attention Netwo…...

项目成本管理中的常见误区及解决方案
做过项目的人都明白,项目实施时间一般很长,在实施期间总有很多项目结果不尽人意的问题。要使一个项目取得成功,就要结合很多因素一起才能作用,其中做好项目成本的管理就是最重要的步骤之一,下面列出了常见的项目成本管…...

墨天轮2022年度数据库获奖名单
2022年,国家相继从高位部署、省级试点布局、地市重点深入三个维度,颁布了多项中国数据库行业发展的利好政策。但是我们也能清晰地看到,中国数据库行业发展之路道阻且长,而道路上的“拦路虎”之一则是生态。中国数据库的发展需要多…...

仓储调度|库存管理系统
技术:Java、JSP等摘要:随着电子商务技术和网络技术的快速发展,现代物流技术也在不断进步。物流技术是指与物流要素活动有关的所有专业技术的总称,包括各种操作方法、管理技能等,物流业采用某些现代信息技术方面的成功经…...

Canvas入门-01
导读: 读完全文需要2min。通过这篇文章,你可以了解到以下内容: Canvas标签基本属性如何使用Canvas画矩形、圆形、线条、曲线、笑脸😊 如果你曾经了解过Canvas,可以对照目录回忆一下能否回答上来 毕竟带着问题学习最有效…...
运算符优先级
醋坛酸味罐,位落跳福豆 醋:初等运算符: () [] -> . 坛:单目运算符: - ~ – * & ! sizeof 右结合 酸:算术运算符: - * / % 味:位移运算符:>> << …...

微信小程序使用scss编译wxss文件的配置步骤
文章目录1、在 vscode 中搜索 easysass 插件并安装2、在微信开发工具中导入安装的easysass插件3、修改 spook.easysass-0.0.6/package.json 文件中的配置4、重启开发者工具,就可用使用了微信小程序开发者工具集成了 vscode 编辑器,可以使用 vscode 中众多…...

一步一步教你如何使用 Visual Studio Code 编译一段 C# 代码
以下是一步一步教你如何使用 Visual Studio Code 编写使用 C# 语言输出当前日期和时间的代码: 1、下载并安装 .NET SDK。您可以从 Microsoft 官网下载并安装它。 2、打开 Visual Studio Code,并安装 C# 扩展。您可以在 Visual Studio Code 中通过扩展菜…...
vue-cli中的环境变量注意点
在客户端侧代码中使用环境变量只有以 VUE_APP_ 开头的变量会被 webpack.DefinePlugin 静态嵌入到客户端侧的包中。你可以在应用的代码中这样访问它们:console.log(process.env.VUE_APP_SECRET)在构建过程中,process.env.VUE_APP_SECRET 将会被相应的值所…...
2.3数据类型
文章目录1. 命名规则2.字符3.数字4.日期5.图片1. 命名规则 字段名必须以字母开头,尽量不要使用拼音长度不能超过30个字符(不同数据库,不同版本会有不同)不能使用SQL的保留字,如where,order,group只能使用如下字符a-z、…...

Kafka基本概念
什么是Kafka Kafka是一个消息系统。它可以集中收集生产者的消息,并由消费者按需获取。在Kafka中,也将消息称为日志(log)。 一个系统,若仅有一类或者少量的消息,可直接进行发送和接收。 随着业务量日益复杂,消息的种类…...
使用QueryBuilders、NativeSearchQuery实现复杂查询
使用QueryBuilders、NativeSearchQuery实现复杂查询 本文继续前面文章《ElasticSearch系列(二)springboot中集成使用ElasticSearch的Demo》,在前文中,我们介绍了使用springdata做一些简单查询,但是要实现一些高级的组…...

taobao.open.account.update( Open Account数据更新 )
¥开放平台免费API不需用户授权 Open Account数据更新 公共参数 请求地址: HTTP地址 http://gw.api.taobao.com/router/rest 公共请求参数: 公共响应参数: 响应参数 点击获取key和secret 请求示例 TaobaoClient client new DefaultTaobaoClient(url, appkey, sec…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...

STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...