部署服务

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

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

传统部署怎么做? 

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

现在多数应用程序,其部署过程都比较复杂,经常包含很多步骤,且步骤间夹杂着人工确认等动作,很容易发生意外情况。

即便一个简单的部署动作,也可能会因为服务器版本的不同、文件目录结构的差异、权限的不一致、配置项繁琐而导致应用程序无法正常启动;

同时,部署项的数量、服务器数量、每次部署的步骤数也会直接影响软件的部署效率,三个维度的复杂性共同导致软件部署的工作量呈指数级增长;

而且,一个软件产品从开发出来到最终入网,往往需要经过开发环境、集成测试环境、预发模拟环境、生产环境等多轮测试验证。

从多个角度分析得知,传统的部署方式无法实现软件规模化部署。

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

华为部署服务助力安全、高效持续部署

华为云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治理的场景下,依然可以满足开发活动的统一治理。

部署常见问题

部署常见问题

  • 部署服务如何收费

    部署服务默认开通,且免费使用。用户部署的应用所使用的资源和部署依赖的服务所使用的资源(ECS、制品仓库存储、流量等)由所使用的服务收费。


  • 可以设置批量部署、增量部署等部署策略吗

    目前页面上还没有提供部署策略的选择,但是可以通过配置来实现一些部署策略,例如:

    1、批量部署:在为应用配置主机时,可以选择多个主机作为目标主机。

    2、增量部署:模板部署中支持新增部署步骤,或者屏蔽单个或者多个步骤控制部署指定的部署步骤。


  • 本地软件包是不是一定要先上传到制品仓库中才能进行部署

    不一定。支持从制品仓库和构建任务两种模式下载,该步骤可以选择制品仓库的文件或者某次构建任务的构建产物进行部署。


  • 使用容器部署需要选择镜像时,如何上传镜像

    镜像来源有如下两种:

    来源一:使用编译构建服务构建生成容器镜像,系统会自动上传镜像到容器镜像服务SWR

    来源二:直接上传镜像到容器镜像服务SWR。

    使用容器部署选择镜像时只能统一从SWR选择。

  • 应用部署成功但应用验证路径下的url无法访问

    可以先参考《用户指南》“配置安全组”章节的操作,查看主机是否有一条针对于该应用下IP的SSH/HTTP/HTTPS协议的入方向规则;若没有,需再添加一条,然后重新打开验证路径url。


  • 草稿应用无法部署

    问题现象

    在部署应用时提示,【部署服务】草稿应用无法部署。

    原因分析

    流水线调用应用,处于草稿状态的应用不能被调用的;

    处理方法

    进入部署服务下应用列表页面,单击...,单击“编辑”。

    如下图所示,单击保存按钮,应用会从草稿状态转为待部署状态,再从流水线调应用。