一文详解如何在 ChengYing 中通过产品线部署一键提升效率

简介: 本文介绍如何通过对ChengYing产品线部署的技术设计,一键完成繁琐工作,极大提升部署效率,希望帮助对「一站式全自动化全生命周期大数据平台运维管家 ChengYing」感兴趣的开发者更好地了解和使用 ChengYing。

在之前的内容当中,我们为大家介绍过 ChengYing 的安装原理、产品包制作等内容,本篇就延续之前的内容,和大家展开聊聊 ChengYing 产品线部署相关的设计。帮助对「一站式全自动化全生命周期大数据平台运维管家 ChengYing」感兴趣的开发者更好地了解和使用 ChengYing。

产品线部署简介

首先对 ChengYing 的产品线部署进行一个“自我介绍”,共分为三个部分:

● 支持用户自定义的产品线

在 ChengYing 中,是以组件包的维度部署服务,比如一个 zookeeper 的产品包,会预先定义好 ZK 的包上传到 ChengYing 的系统当中,再去选择要部署的服务以及给 ZK 编排部署机器,以此完成部署。

对于初学者来说,当需要部署多个服务,这些服务又有顺序依赖关系时,会不清楚部署的先后顺序,从而导致部署非常吃力。因此 ChengYing 支持使用 DAG(有向无环图)进行定义灵活可配的组件包部署顺序。目的是为了让熟悉和不熟悉的人都能够通过预定义产品线的形式同时部署多个组件包,从而大大提高部署效率。

● 支持服务的亲和性配置

根据组件包中不同服务的类型,结合主机角色信息自动进行服务主机编排。在接入主机到 ChengYing 系统中时,支持给主机打上对应的标签即角色,相应角色的组件会部署到相应角色的机器上。

● 一键自动部署组件包

基于组件包手动部署,同样的入口,选择不同的产品线部署方式之后,可一键按需迅速完成所需要的多个组件包的同时部署,提高部署效率。

产品线部署设计

接下来,通过代码设计的角度看看 ChengYing 对产品线部署是如何进行技术设计的。

什么是 DAG

DAG (有向无环图,Directed Acyclic Graph)是一种常用数据结构,仅就 DAG 而言,它已经在我们日常的各种工具中存在,如依赖系统、数据流系统、数据可视化等。当我们从任务编排的角度来看,DAG 面向普通人术语叫作工作流(Workflow)。

在图论中, 如果一个有向图无法从任意顶点出发经过若干条边回到该点, 则这个图就是一个有向无环图 (DAG 图)。

ChengYing 产品线部署设计的核心就是给定一组任务,按照自定义的方式安排它们的执行顺序,即 DAG。

产品线 DAG 定义

预先定义某一条产品线中每一个组件包的部署顺序,将其关系使用 DAG 的方式定义为 json 文件,平台自动解析 json 得到部署顺序从而实现自动部署的效果。

· product_line_name: 产品线名称(可预定义)

· product_line_version: 产品线版本(可预定义)

· product_serial: 组件包部署顺序(上图说明 DTBase 的 dependee 为0,表示没有依赖;DTFront 的 dependee 为1,表示依赖 id 为1的组件包)

产品线 DAG 源码分析

如果要对复杂对象排序的话,该排序必须包含 Len,Swap,Less 这三个方法。

下面这段源码是 DAG 执行的核心逻辑,对于源码的具体解析可以前往视频进行观看:

https://www.bilibili.com/video/BV1KV4y1Q7KP/?spm_id_from=333.999.0.0

源码本身已经全部开源,可以前往 ChengYing 的 Github 进行学习:

https://github.com/DTStack/chengying

服务亲和性配置

服务亲和性的定义指以预选、优选、选定的机制完成将每个新的服务绑定至为其选出的目标节点上。

在 k8s 中,支持节点和 Pod 两个层级的亲和性、反亲和性调度,通过配置亲和与反亲和的规则,允许指定硬性限制和软性限制,即偏好。

比如将前端的 Pod 和后端的 Pod 部署在一起,这样可以减少网络延迟。或是某一类型的服务部署在某一类型的节点上,不同的应用部署在不同的节点上等。

定义节点亲和性规则时有两种类型的节点亲和性规则 :硬亲和性 required 和软亲和性 preferred。硬亲和性实现的是强制性规则,它是 Pod 调度时必须要满足的规则,而在不存在满足规则的节点时 , Pod 对象会被置为 Pending 状态。

而软亲和性规则实现的是一种柔性调度限制,它倾向于将 Pod 对象运行于某类特定的节点之上,而调度器也将尽量满足此需求,但在无法满足调度需求时它将退而求其次地选择一个不匹配规则的节点。

类似于 k8s,ChengYing 中的服务亲和性和反亲和性也进行了相应的字段设置:

· orchestration.affinity:数组,自动编排角色亲和性【可选】, 但是没有该字段的话,该服务将无法参与自动编排

· orchestration.anti_affinity:数组,自动编排角色反亲和性 【可选】

使用场景

下面来为大家介绍如何在 ChengYing 中使用产品线的部署。

设置主机角色

在【部署中心】-【集群管理】-【集群详情】中,可以给节点编辑对应角色。

上传产品线

角色完成定义之后,就可以在【部署中心】进行部署。支持自动部署(基于产品线顺序部署多个组件包,支持主机角色自动编排),手动部署(基于单个组件包部署,支持自定义主机编排)。

只要把产品线和产品包的亲和性与反亲和性全部定义好之后,开发者进入这个页面会非常一目了然,每一个节点上分配了哪些服务,先后进行怎样的部署等,一键就可以完成这些繁琐的工作,极大提升部署效率。

视频课程&PPT获取

视频课程:

https://www.bilibili.com/video/BV1KV4y1Q7KP/?spm_id_from=333.999.0.0

课件获取:

https://www.dtstack.com/resources/1037


《数据治理行业实践白皮书》下载地址:https://fs80.cn/380a4b

《数栈V6.0产品白皮书》下载地址:https://fs80.cn/cw0iw1

想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=szalykfz

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术 qun」,交流最新开源技术信息,qun 号码:30537511,项目地址:https://github.com/DTStack

目录
相关文章
|
存储 虚拟化 网络架构
带你读《企业私有云建设指南》之三:企业需求分析和私有云资源规划及设计
企业私有云建设需求旺盛,在架构设计和技术选型过程中应该结合自己公司的实际情况,因地制宜。本书给了很好的经验分享和思路,虽然是本技术书,但文笔流畅、平实细致,内容上也涉及了私有云建设的很多方面,值得细细阅读和品味!
|
13天前
|
数据可视化 安全 数据挖掘
电商协作软件选型攻略:功能、易用性与成本并重
电商企业成功的关键在于高效的团队协作与业务流程优化。本文推荐五款协作软件:板栗看板、Trello、Asana、Monday.com和Notion,它们通过实时通讯、任务管理、文件共享等功能,助力电商企业提升沟通效率、优化流程、确保项目顺利推进,全面满足电商企业的协作需求。
42 10
|
28天前
|
数据挖掘 项目管理
打破传统管理瓶颈,6个技巧让项目顺利交付!
本文探讨了在快速变化的商业环境中,如何通过现代项目管理思维与工具提升项目执行效率和团队协作水平。文章详细介绍了项目管理的定义、核心思维、具体步骤及工具应用,强调了明确目标、任务分解、实时跟踪、跨部门协作、风险管理与成果复盘的重要性。通过这些方法,团队可以更高效地完成项目,避免传统管理中的常见问题。
|
5月前
|
缓存 人工智能
通用研发提效问题之女娲的缓存方案,体现易用性的四重境界,如何解决
通用研发提效问题之女娲的缓存方案,体现易用性的四重境界,如何解决
|
5月前
|
API
通用研发提效问题之组织女娲插件体系该如何解决
通用研发提效问题之组织女娲插件体系该如何解决
|
5月前
|
存储 缓存 运维
通用研发提效问题之什么是通用化方案,提高女娲的适用性如何解决
通用研发提效问题之什么是通用化方案,提高女娲的适用性如何解决
|
6月前
|
域名解析 弹性计算 开发者
期待已久,重磅回归,阿里云推出全新《高效构建企业门户网站方案》,你想了解的,这一篇就足够了。
期待已久,重磅回归,《高效构建企业门户网站方案》,你想了解的,这一篇就足够了。
24470 2
|
7月前
|
安全 云计算 数据安全/隐私保护
作为开发者在云上会建设怎样的世界?
随着技术圈新技术的“层出不穷”,尤其是云计算的兴起为技术开发者们创造了前所未有的机遇,让大家能够通过云服务建设出一个个令人惊叹的应用,而且随着技术的不断发展,云服务已经深入到了我们工作和生活的各个角落,从简单的数据存储到复杂的机器学习任务,云服务提供了一个强大且易于扩展的平台,让我们可以实现那些曾经只能幻想的创意。那么本文就来分享一下聚焦于开发者在阿里云云上建设世界的经历,探讨在云服务中遇到的挑战以及如何克服这些挑战。
60 6
作为开发者在云上会建设怎样的世界?
|
SQL 存储 分布式计算
重构知识的供给模式 — 《数据平台》从思考到落地
我们想尝试去建立一套 “高度自动化&体系化的知识管理系统,重构知识的供给模式”
重构知识的供给模式 — 《数据平台》从思考到落地
|
SQL 存储 分布式计算
重构知识的供给模式 ——《数据平台》从思考到落地
如何去建立一套 “高度自动化&体系化的知识管理系统,重构知识的供给模式”。是不是看不懂?而且有点冲?是不是谜语人附体?别急,本文作者将会做详细的说明。
重构知识的供给模式 ——《数据平台》从思考到落地