随着互联网、数字化的发展,公司机构与各类企业往往需要进行大量频繁的软件部署,部署设备类型多样,如:本地机器、云上裸金属服务器、云上虚拟机与容器等。面对多种部署模式、分布式复杂运行环境,如何用最短时间、高质量、安全可靠的进行软件部署,这已经成为一个普遍关注的课题。
持续部署,通过频繁的、标准化、自动化的方式,将软件快速交付到生产环境。从开发人员提交代码到编译、测试、部署,全流程无人干预,完全自动化执行。这种模式与部署能力,可以大幅加快软件版本上线速度,保证新功能第一时间被用户使用。
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将打造提供可灰度、可回滚、可监控、可追溯的轻量化软件发布上线能力,助力企业实现应用的高可靠快速发布。
(免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。 )