首页 > 技术

化繁为简高效部署,华为云发布部署服务CodeArts Deploy

2023-02-28 16:17:31      西盟科技资讯   


  随着互联网、数字化的发展,公司机构与各类企业往往需要进行大量频繁的软件部署,部署设备类型多样,如:本地机器、云上裸金属服务器、云上虚拟机与容器等。面对多种部署模式、分布式复杂运行环境,如何用最短时间、高质量、安全可靠的进行软件部署,这已经成为一个普遍关注的课题。

  持续部署,通过频繁的、标准化、自动化的方式,将软件快速交付到生产环境。从开发人员提交代码到编译、测试、部署,全流程无人干预,完全自动化执行。这种模式与部署能力,可以大幅加快软件版本上线速度,保证新功能第一时间被用户使用。

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

  传统部署怎么做?

  当开发者把代码构建打包后,软件包需要被安装到具体的服务器上,才能够对外提供服务从而实现商业变现。软件被安装到服务器这一过程,在软件开发活动中通常被称为部署。

  现在多数应用程序,其部署过程都比较复杂,经常包含很多步骤,且步骤间夹杂着人工确认等动作,很容易发生意外情况。即便一个简单的部署动作,也可能会因为服务器版本的不同、文件目录结构的差异、权限的不一致、配置项繁琐而导致应用程序无法正常启动;同时,部署项的数量、服务器数量、每次部署的步骤数也会直接影响软件的部署效率,三个维度的复杂性共同导致软件部署的工作量呈指数级增长;而且,一个软件产品从开发出来到最终入网,往往需要经过开发环境、集成测试环境、预发模拟环境、生产环境等多轮测试验证。从多个角度分析得知,传统的部署方式无法实现软件规模化部署。

  简而言之,传统的部署方式存在效率低、周期长,可重复性差、易错、成功率低等问题;也存在着部署责任和权限不清晰、上线频度低、严重依赖执行部署动作的人和经验等大量的短板。从趋势上看,更加频繁的交付新特性,快速闭环反馈,是软件开发一致追求的目标。

  华为云CodeArtsDeploy助力安全、高效持续部署

  华为云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将打造提供可灰度、可回滚、可监控、可追溯的轻量化软件发布上线能力,助力企业实现应用的高可靠快速发布。

相关阅读