在线公开课丨DevOps任重道远,如何进行流程化管理?任务调度系统该怎样设计?...

本文主要是介绍在线公开课丨DevOps任重道远,如何进行流程化管理?任务调度系统该怎样设计?...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

开发测试管理和运行管理是 DevOps 平台实践中常见的两大问题。前者一般表现为开发效率低、版本质量差、环境交付慢、无统一工具设置和研发运维过程管控不足等,需要通过 DevOps 平台进行流程化管理。另一方面,随着云计算的发展,企业需要管理和维护的基础设施规模扩大,在混合云、多地域等各种异构网络环境下需要一套调度系统来管理和控制各类资源,解决运行管理问题。

 

7 月 2 日,京东智联云和英特尔联合举办了「DevOps 平台高可用架构与实践」线上公开课,来自京东智联云的云产品研发部架构师陈尧,和来自博云的售前解决方案架构师伞亚朋,分别介绍了大规模任务调度系统的架构设计与 DevOps 平台的流程化管理方法。

以下内容整理自两位老师的分享。

企业上线 DevOps 平台,本质上是为了以较低的成本高效处理运维需求。同样,任务调度系统的初衷也是为了控制成本、提高效率。当企业的线上业务规模逐渐扩大,单纯靠增加人手来解决系统升级、维护、部署、监控等事务的成本是很难承受的,这时就轮到自动化的任务调度系统登场了。

 

在实践中,业务规模较大的企业开发任务调度系统时会面临很多问题:机器规模庞大,分布地域广泛,甚至跨越全球;资源种类繁多(物理机/虚拟机/容器等);公有云/私有云环境并存;操作系统多样化;VPC/子网等网络问题等等。要设计出能够从容应对这些挑战的任务调度系统绝非易事,因此我们就需要参考行业中已有的成熟经验和实践。

自 2006 年熊猫烧香病毒事件后,整个黑客产业链开始将重心转向了通过 DDoS 等攻击手段获取不法收益上。随着攻击技术不断发展,如今一次大规模的 DDoS 的流量可达数以 Tbps 的惊人水平。

 

DDoS 的本质是黑客控制互联网上的大批机器向目标发送流量。这种技术要克服的障碍与任务调度系统有诸多相似点,例如规模巨大、网络不稳定、机器所在区域分散、系统版本众多等等。

 

为了解决这些问题,黑客选择的技术方案就是基于 IM 聊天协议的系统架构。作为控制方的黑客实际上是 IM 网络中的一个节点,被控制的机器等效于客户端,前者向后者发送消息,即可达成控制的目的。

 

在 DDoS 攻击活动中,黑客普遍使用的协议是 IRC:

在 IRC 模型中,攻击者自己建一个 master,再加一个控制服务器来控制僵尸网络中的节点;攻击者通过 master 连接到控制服务器上即可操纵僵尸节点发起攻击。需要注意的是 IRC 是匿名聊天协议,系统不关心连上控制服务器的是什么身份,只要能连上就可以实施控制。

 

但在典型的聊天应用场景中,更合适的选择是基于登录账号体系的 XMPP 协议:

在 XMPP 中,通信的各方都有自己的账号/身份,进而就可以发展出权限控制体系。如上图所示,XMPP 是对等互联网络,网络中的各节点都可以互相通信。由于各节点都有自己的身份,当某个节点收到其他节点发来的要求时,就可以根据对方的身份来选择是否遵从。

 

正因如此,XMPP 更适合作为任务调度系统的主协议。参照黑客使用的 IRC 网络模型,很容易得出基于 XMPP 模式的任务调度模型:

由于 master/agent 都有自己的账号/身份,就可以避免 agent 假冒 master 发送命令的攻击行为,确保系统的安全性。

 

另一方面,控制系统的目的并非单纯地控制机器本身,而是要对外提供服务。所以在上述模型的基础上还需要一个 api-server,用来包装业务需求,将其变为可执行的任务通过 master 分发给 agent。加入 api-server 后模型也比较简单:

系统对外开放的是上图中 api-server 账号。系统接收一个新任务(例如执行某个脚本)时,api-server 账号将任务以消息的形式发送给 master,之后 master 通过 xmpp server 再将任务分发给各个 agent。这里的权限设计是,agent 只听命于 master,而 master 只听命于 api-server。这样就得出了整个调度系统的业务逻辑模型。

 

上述业务模型是理论化,较为简单的模型。在现实应用中,任务调度系统使用的模型会复杂许多。

 

如前所述,现实中的大规模任务调度系统是需要满足跨地域和复杂网络环境的需求的。为了解决跨地域问题,需要搭建一个 XMPP 的 server 网络,其中每一个地域都有一个独立的分发网络,该地域的 agent 只连接到本地域的 XMPP server,以此类推。

更为复杂的是 master 的设计。对于小公司而言,只需一个 master 可能就足以管理所有机器,那么系统只需单个 master 作为调度器即可。但对于京东这样大规模的企业来说,需要多个 master 来分担庞大的任务负载,就需要将它们放在多个网络下面。

 

存在多个 master 时就需要考虑是否拆分 api-server。京东的选择是不做拆分,而 api-server 承接的业务逻辑最终形成一个 Redis 数据库作为一个中间件。负责不同地域的 master 启动后从中间件获取数据并分发任务,任务完成后也保存在中间件内。当外部用户查询 api-server,想要获得当前的任务状态时,api-server 会直接查询中间件,而非某个 master。

这个模型的最大优点是高可用性,某个节点出问题后并不影响整个网络继续运行。例如某个 master 发生故障后,当它重启后还能从中间件继续获取任务并分发下去,以此类推。

 

基于 XMPP 的这套系统模型解决了以下几个问题:

1、适应各类网络模型。

  • 使用 UUID 作为资源标识,不依赖机器名/IP,可以应对复杂环境下的资源冲突情况。

  • 公有云/私有云、VPC、子网均可用,不同的网络只需连接到固定的 server 上就能接入整个 XMPP 网络。

  • 网络传输容忍度高,不同地域的子网不需要实时在线或低延迟。

2、适配不同的硬件/系统环境。XMPP 库有大量开源实现,因而可以轻松解决各种环境的兼容性需求。

3、系统性能高。

  • 网络中的调度和分发模块拆分,内部是多节点组合,因而性能表现优异。

  • XMPP 本身性能强劲,单个集群可以应付百万客户端规模,实现秒级调度、执行。

 

总体而言,参考 IM 的架构设计,基于 XMPP 就可以打造出高性能、高可用性、可以适应复杂环境变量的大规模任务调度系统。

DevOps 可以被理解是一个体系,其中的过程、方法和系统都是具体的表现形式。它更像是一把钥匙,打开了一扇大门,赋予团队无穷的想象。在本次分享中,伞亚朋老师介绍了企业应用 DevOps 平台进行流程化管理过程中需要关注的各个层面,其中重点包括团队协作,统一工具链和实施。

 

在企业打造 DevOps 平台的过程中,首先要明确的是 DevOps 的目标。伞亚朋老师认为,DevOps 主要解决的是人员沟通问题,它可以弱化人与人之间的沟通壁垒,使岗位之间信息流转更为明;从范围来看,DevOps 狭义上是产品从需求到交付、迭代的过程,广义上可以则涵盖整个公司和产品生态链。

成功实现 DevOps 离不开高水平的团队协作,这里伞亚朋老师举了代码合并的例子。在企业中,常见的代码合并模式有三种:大多数公司采用的是开发经理合并代码模式;一些公司由测试负责合并代码,这样可以减少沟通环节,但需要同时掌握测试/开发/运维的复合人才;大公司常见的模式是专人合并代码,这对岗位的复合技能要求更高。

 

团队协作的另一个挑战是信息透明,需要通过流程定义内部需要的所有信息和沟通方式,这样就可以让团队成员都了解项目情况,并能明确责任,更好地定位问题,方便项目经理掌控全局。

 

另外,在工具链的选择和管理上,需要进行统一。DevOps 工具链分为角色、流程、规范、平台和工具四大类别。其中,从产品经理到开发、运维、运营人员等等,都是工具链中的重要角色。DevOps 实际生产中存在许多流程,每个流程都需要工具化、具体化,以免遗漏。开发工作中涉及众多规范,各种规范共同形成了工具链中重要的基石。

 

DevOps工具太多,开源的、商业的,数不胜数,如果不能实现统一,在推进 DevOp 时会遇到很大的阻力。所以在工具链的选择上要遵循一个原则:实现同种功能的工具有且只能有一个。

伞亚朋老师强调,在企业开始实施 DevOps 之前,必须要意识到 DevOps 平台的建设绝非一日之功,不可能一步到位,要考虑到诸多限制因素。

 

首先,企业要解决跨岗位/部门协作障碍,需要更高的领导层次给予强有力的和持续的支持;其次,DevOps 的文化建设是漫长的过程,需要相关人员逐渐理解和认同;DevOps 蓝图要解决的问题众多,涉及的工具多样,需要选择最适合自身需求的工具组合;最后,DevOps 落地需要一系列规范,建设规范体系也是长期过程。

 

在这样的背景下,DevOps 的成功落地需要满足几个条件:

  • 最关键的是领导层强有力的后台长期保障,这是 DevOps 成功的先决条件;

  • 团队岗位齐全,保证工作流正常运作;由于某些岗位需要高水平的人才,其薪资/能力可能超越团队领导,因而需要领导具备包容心态;

  • 团队需要 DevOps 的文化底蕴,对 DevOps 有集体认知和认同;

  • 制度保证,有规矩才成方圆;

  • 团队有足够的执行力,提供较高的效率水平。

 

一般来说,DevOps 选择运维或测试切入较合适。由于运维掌控公司大部分基础环境,职能范围涉及面广,且统一管理的需求迫切,因而是很好的切入点。测试会参与项目的所有环节,可以把控整个项目进度,也是不错的切入点。

 

如前所述,DevOps 帮团队打开了一扇大门,而门后的内容就需要企业根据自身的实际情况,打造整体的规范和实施,让整个团队发散思维来实现符合自己需求的 DevOps 生态了。

 

关注京东智联云开发者(ID:JDC_developers)获取更多运维干货,点击「阅读原文」获得公开课视频回放链接。

课程PPT获取方式:

进入公众号

回复关键词『PPT200702


     

英特尔智慧云基石,助您快捷上云、高效用云、轻松管云

采用第二代英特尔®至强®可扩展平台的云架构,可以获得性能强劲、简单易用的云化基础设施,降低上云复杂度,可用于构建云化的统一数据平台,为数据处理、分析和AI提供全面加速,还通过融合自动化和智能化管理特性,助力实现云的弹性扩展、稳定可靠和降本增效。

这篇关于在线公开课丨DevOps任重道远,如何进行流程化管理?任务调度系统该怎样设计?...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/155409

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

电力系统中的A类在线监测装置—APView400

随着电力系统的日益复杂和人们对电能质量要求的提高,电能质量在线监测装置在电力系统中得到广泛应用。目前,市场上的在线监测装置主要分为A类和B类两种类型,A类和B类在线监测装置主要区别在于应用场景、技术参数、通讯协议和扩展性。选择时应根据实际需求和应用场景综合考虑,并定期维护和校准。电能质量在线监测装置是用于实时监测电力系统中的电能质量参数的设备。 APView400电能质量A类在线监测装置以其多核

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测