摘要:2月27日,华为云发布持续部署服务CodeArts Deploy,通过模块化自由编排部署流程,实现软件的自动化部署,帮助企业软件产品的快速、高效、高质量交付。

本文分享自华为云社区《化繁为简高效部署 华为云发布部署服务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服务已上线,欢迎体验~

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

5大特性,带你认识化繁为简的华为云CodeArts Deploy的更多相关文章

  1. 华为云CodeArts Artifact,5大特性守护制品质量与安全

    摘要:2023年2月23日,华为云CodeArts Artifact制品仓库服务正式上线,目标进一步赋能企业伙伴与开发者,实现软件作业中可信制品生产与应用活动快速落地,提高软件交付效率与质量. 本文分 ...

  2. 一文带你读懂!华为云在ACMUG技术沙龙上都透露了些啥?

    摘要:近日,华为云数据库业务总裁苏光牛在ACMUG中国MySQL用户组主办的 "华为云专场" 技术沙龙中分享了华为云数据库重磅新品GaussDB的核心能力与竞争优势.那么, Gau ...

  3. 华为云BigData Pro解读: 鲲鹏云容器助力大数据破茧成蝶

    华为云鲲鹏云容器 见证BigData Pro蝶变之旅大数据之路顺应人类科技的进步而诞生,一直顺风顺水,不到20年时间,已渗透到社会生产和人们生活的方方面面,.然而,伴随着信息量的指数级增长,大数据也开 ...

  4. AngularJS-chapter1-2-四大特性

    4大特性 MVC MVC实例  数据模型,控制器,视图 HelloAngular_MVC.html 图中的 ng-controller="HelloAngular"  定义了Hel ...

  5. ES6的十大特性和认知

    ---恢复内容开始--- ES6(ECMAScript2015)的出现,无疑给前端开发人员带来了新的惊喜,它包含了一些很棒的新特性,可以更加方便的实现很多复杂的操作,提高开发人员的效率.本文主要针对E ...

  6. java的3大特性

    java的3大特性 1.继承: * 继承是从已有类得到继承信息创建新类的过程. * 提供继承信息的类被称为父类(超类.基类):得到继承信息的类被称为子类(派生类). * 继承让变化中的软件系统有定的延 ...

  7. 有了这 4 大特性,CDN 好用到飞起

    随着 CDN 市场的快速发展和网络新技术的不断涌现,目前的 CDN 已不仅仅是当初简单的内容分发,同时也是新特性研发.新技术推广及实践的平台.这些新技术.新特性,或者能够保障 CDN 安全性,或是提升 ...

  8. 前端开发者不得不知的es6十大特性(转)

    转载自AlloyTeam:http://www.alloyteam.com/2016/03/es6-front-end-developers-will-have-to-know-the-top-ten ...

  9. 前端开发者不得不知的ES6十大特性

    前端开发者不得不知的ES6十大特性 转载 作者:AlloyTeam 链接:http://www.alloyteam.com/2016/03/es6-front-end-developers-will- ...

  10. 不得不知的ES6十大特性

    ES6(ECMAScript2015)的出现,无疑给前端开发人员带来了新的惊喜,它包含了一些很棒的新特性,可以更加方便的实现很多复杂的操作,提高开发人员的效率. 本文主要针对ES6做一个简要介绍. 主 ...

随机推荐

  1. 普冉PY32系列(九) GPIO模拟和硬件SPI方式驱动无线收发芯片XL2400

    目录 普冉PY32系列(一) PY32F0系列32位Cortex M0+ MCU简介 普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境 普冉PY32系列(三) P ...

  2. virsh domxxx命令

    1. 摘要信息类 1.1 dominfo 获取配置等摘要信息 [root@hyperhost ~]# virsh dominfo --domain centos7.6 Id: 1 Name: cent ...

  3. Chromium Mojo通信

    Mojo 是一个跨平台 IPC 框架,它诞生于 chromium ,用来实现 chromium 进程内/进程间的通信.目前,它也被用于 ChromeOS. 在我们代码应用中,如何使用Mojo来作进程间 ...

  4. IOI2020 国家集训队作业 Part 1

    日期不对,但要保证顺序正确方便查找少了啥题. 计算几何和实在不会的题没写. 9.20 CF504E Misha and LCP on Tree *3000 二分,hash,树剖 CF505E Mr. ...

  5. Atcoder Regular Contest 165

    B. Sliding Window Sort 2 被题目名里的滑动窗口误导了,于是卡 B 40min /fn Description 给定长度为 \(n\) 的排列 \(P\) 和一个整数 \(K\) ...

  6. Python:发送邮件或发带附件的邮件

    在进行发邮件之前,首先了解两个模块:smtplib和email. smtplib模块主要是负责发送邮件的,是一个发邮件的动作,比如连接邮箱服务,登录邮箱,发送邮件等. email模块主要是负责构造邮件 ...

  7. JPA中@ElementCollection使用

    转载请注明出处: 在JPA中,@ElementCollection注解主要用于映射集合属性,例如List.Set或数组等集合属性,以及Map结构的集合属性,每个属性值都有对应的key映射.这个注解可以 ...

  8. linux系统centos7安装docker

    1.Docker官网安装地址 https://docs.docker.com/engine/install/centos/#prerequisites 2.离线安装下载地址 https://downl ...

  9. easy ui 按钮图标样式合集

    data-options="iconCls:'icon-search'" 可替换以下值 icon-add icon-print icon-mini-add icon-cvs ico ...

  10. (Good topic)哈希表:最长回文串(3.19 leetcode每日打卡)

    给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串. 在构造过程中,请注意区分大小写.比如 "Aa" 不能当做一个回文字符串. 注意: 假设字符串的长度不 ...