突破规模化运维瓶颈 SREWorks云原生数智运维平台揭秘

news2024/11/17 5:41:44

作者:

钟炯恩——阿里云大数据基础工程技术团队运维专家

引言

突破规模化运维瓶颈是诸多IT规模增长的企业及组织当前遇到的比较棘手的问题。面对这些问题,多数人的第一反应是上云。但是上云之后我们会发现,即使云上的架构规模增大,也依然存在同样的问题,有时候甚至更严重,因为弹性扩容的云服务器远比买一台物理机更方便,从而导致集群规模也急剧增加。

那么,规模化运维为什么会遇到瓶颈?

总的来说,规模化运维遇到的瓶颈可以分为三类,分别为稳定性瓶颈、成本瓶颈以及效率瓶颈

image.png

第一,稳定性瓶颈,这往往是我们最关注的点。对稳定性影响最大的因素是变更,由变更导致的故障占据70%-80%。因此,我们一般会通过严管变更来减少故障时间,进而提升系统的稳定性。

这会导致出现一种微妙的平衡:如果限制变更的次数,则我们会选择将多个变更集中在一次变更里进行,而这会增加回滚的难度,从而导致单次的故障时间变长;而如果不限制变更次数来约束每个变更必须能够回滚,则我们可能会将一个变更分拆为多个变更,虽然出了问题可以立即回滚,影响小,但由于变更总量较大,最终系统的可用性会陷入瓶颈,无法提升。

除此之外,在大规模集群中,在成千上万的机器里总会出现一些性能存在问题的机器,可能是硬件问题,可能是内核问题,也可能无法明确问题。而这些机器使得整个系统在某些性能或功能上表现出不明原因的不稳定,如果无法在第一时间抓住它,则会持续产生影响。

以物理机为例,物理机的硬件日化故障率约0.03%,而在所有硬件故障中,有1%属于比疑难杂症,无法明确。如果机器保有量为1万台,则平均每月会碰到一例非典型的疑难杂症,影响业务。由此可见,在规模化的效应下,原本罕见的问题会变得常见。

第二,成本瓶颈。在过去的一段时间里,这类瓶颈可能不太被重视,但是在降本增效的今天,这些问题变得尤为突出。

热点机器是在分布式系统中常出现的问题,明明有大量可用资源,而流量却都打到一台机器上,导致整个集群性能低。而热点机器的成因非常复杂,可能是架构问题,可能是业务问题,也有可能是底层软件、硬件的问题。

成本瓶颈的另一方面包括从预算到执行的精细化管理。如果是物理机,则需要考虑采购周期;如果是云服务,则需要考虑区分包年、包月、按次计费等计价模型,还需考虑不同区域费用单价的差异。如果无法很好地对上述问题进行管理,则会导致弹性弹得越猛,成本越高。

资源使用的削峰填谷是成本方面需要解决的更高难度的问题。在空间维度上,可以用算法来计算如何减少跨地域依赖,从而节省成本;在时间维度上,可以通过白天运行应用服务,晚上运行离线计算来最大限度利用机器资源。

第三,效率瓶颈。该类问题往往发生在人机交互之中。

在全自动化的流程中,为了业务需要可能会配置特例化的人工干预节点,导致后续人工干预越来越频繁。那么,如何在业务定制和自动化的标准中保持中立、保持平衡?

一个管理平台往往有非常多的功能和配置,配置是直接暴露YAML或json,还是提供可视化的人机交互,也是很大问题。如果提供很多可视化交互,可能会带来较高的开发成本;但如果直接暴露YAML,会存在由改动引发的问题。

另外,某些小问题原本很好排查,但在大规模集群中可能需要串联上下游许多机器才能发现,导致排查小问题的时间开销也变得越来越大。

那么,如何解决上述瓶颈中涉及的问题?

image.png

经过大量实践,我们总结出了一套规模化运维的流水线。流水线里包含6大环节,分别是交付、监测、管理、控制、运营、服务

有了全链路图之后,我们可以按图索骥进行查漏补缺。对于已经拥有的能力,可以演进增强;对于尚未拥有的能力,可以用成熟的开源方案进行补位。

image.png

上图展示了业界常见的开源方案对于上述6大环节中能力的支撑。

  • Prometheus:能够进行时序数据的存储、监控和告警,能够满足规模化运维的指标监控需求,但是只针对“监测”技能点。

  • Grafana:能够接入各种数据源,进行图表、仪表盘的可视化展示。虽然无法与专业的BI工具抗衡,但是应对规模化运维的管理和运营已经绰绰有余。

  • Ansible:基于SSH的配置管理工具,在物理机时代特别适用。但是在云原生时代,配置和部署都已转移到K8S上,因此已经不太使用。

  • Docker:以一己之力开启了容器的技术革命,真正意义上实现了构建一次、随处运行。基于Docker可以完成小规模的交付管理和控制,但尚且无法应对大规模。

  • Elasticsearch:作为分布式的搜索和分析存储引擎,通过query,它能够提供各种数据来满足运营和服务的需求,其生态制完善,用户接入以及使用体验非常好。

  • Kubernetes:云原生领域的既定标准,被广泛用于解决大规模云计算环境中的管理问题,可以基于K8S完成所需要的任何事情。

image.png

飞天5K项目是中国计云计算领域里程碑式的项目,我们团队承担了其中的运维工作。超大规模集群的运维保障工程使我们沉淀了一个运维平台,在内部被称为ABM(Apsara Big Data Manager),飞天大数据运维平台。

云原生时代的架构变革

云原生为什么能够带来巨大的变革?我们从没有被注意过的角度来聊一聊云原生时代的变革。

图片

1830年,英国铁路上出现了箱式运煤的容器。受限于火车车厢数量,集装箱对于铁路货而言提升非常有限。但集装箱到了海运的货船上立马出现了质的飞跃,世界上第一艘集装箱船装了200个集装箱,相比较同货运量的船,卸货时间从7天压缩至15小时。

这让我们感受到了标准化的威力,它没有让船开得更快、变得更大,但却彻彻底底地改变了全球贸易的形态,不同国家的消费者和买家被紧紧地连接在一起。而如果没有集装箱,这一切都不会发生。

从某种意义上来说,全球物流改变的关键点不是船只的大小,不是飞机的时速,也不是铁路的里程数,而是集装箱。

而Docker的出现也像集装箱一样,为软件的开发以及部署带来了标准化。

在Docker出现之前,研发和运维都面临着诸多挑战,我们常常为环境差异引起的部署问题焦头烂额。Docker出现之后,几乎是一锤定音,大家结束了争吵,不约而同地选择了这个方案。

在对容器进行标准化之后,业界又对容器的部署方案有了各自的想法。Docker推出了swarm,谷歌开源了K8S,最终K8S的Pod方案脱颖而出,既解决了隔离的问题,又满足了共享的需要。

云原生上标准化的容器以及运行时被统一之后,会发生什么?没有人知道,但我们也许会见证历史。

图片

Kubernetes如何改变运维体系?

在K8S之前,运维的主要工作是在每台机器上部署agent,然后将其中的信息采集上来,汇总到中心,同时中心也能下发指令给agent做很多工作。更新迭代的原因可能是agent不够稳定、不够强大,也可能是server不够强大。

但是K8S出现之后,它强大的api server能力顿时使所有server相形见绌。只需掌握一到两个接口的用法,便可以推算出几乎所有的接口,非常强大且非常优雅。

另外一端,在基础设施之上,在kubernetes上暴露了CRI(运行时)、CSI(存储)和CNI(网络)三种接口,满足了容器的所有部署需求。

该设计牢牢地将基础设施和应用负载区分开来。关注基础设施,则关注node往下部分;关注应用,则关注Pod向上部分。应用层的部署以及维护的逻辑到Pod即结束,基础设施的维护只在node之下,原则上不会与任何Pod有关,而且Pod无状态,如果node要重启,Pod会飘到其他node上。

基础设施是不可变的,如果在设计时将基础设施信息掺杂到应用中,则会为后续带来极大的不便。基础设施不变,但应用要变,此时往往需要订正数据。因此,我们会思考,有什么办法能将应用和基础设施区分开。

K8S很好地实现了这一点。很多运维工具或平台并非无法实现此能力,而是在功能复杂之后,由于一开始设计不够完善导致有些定位会变形,最终导致很多基础设施层的信息和应用层的信息被揉到一块。

而在SREWorks数智运维平台中,我们严格遵循“区分不变的基础设施和灵活的无状态部署应用”原则。

规模化运维工程实践

图片

Too Big to Fail(大而不能倒)是我们时常面临的架构困境。IT设施愈发庞大之后,会出现各种流程和接口,为了收敛问题以及提升效率,通常会将它们收敛到统一的平台,平台的功能增多之后,重要的功能会被独立为几个子平台来承载。

而不同的平台会由于各种原因衍生出不同的研发流程,有些底层模块在停止迭代一段时间之后,已经无法运行构建和发布流程,从而导致我们不得不维护某些特别慢且低效的模块,有些无法修复的bug只能通过不断在外围加辅助逻辑的方式解决。这种情况类似于经济学领域的Too Big to Fail:具有关键地位的大公司破产会影响到整个社会,于是要不断将人民的血汗钱投入进去,以维持这些公司的运作。

很多平台都会陷入困境,即便投入很多精力在维护,稳定性和可靠性依然很差。此时可能有人会选择重构,但是如果没有优秀的顶层设计,过了几年之后平台依然会陷入类似的困境。

我们可以将目光转到移动互联网领域,看看它从功能到平台演进历程。

图片

众所周知,iPhone的推出引领了移动互联网的革命。原本在诺基亚手机中的功能块都演进成了应用,用户可以根据自己的需求在appstore中下载和安装应用,这种应用模式极大满足了用户各方面的需求。久而久之,某些应用也变得特别庞大,功能众多,变得像一个平台,包含了各种功能,比如微信、支付宝。

于是,在这些应用中演化出了应用生态。这些不同于手机应用的应用,可以称为小程序(微信小程序或支付宝小程序)。优秀的平台会有应用生态来支撑其功能,里面的应用亦是如此,像一层又一层的应用套娃。

回到架构之上,理想的平台架构应该是怎么样的?

图片

如果将应用作为功能载体,平台负责应用管理,则可以较好地管理这些功能。对于复杂或重要的功能,引入平台化的应用管理可以继续深入展开。但是做一个应用平台需要考虑很多方面的因素。

它需要有标准的应用模型,用户能在改应用模型之下开发出各种应用,满足业务需求。应用需要有一套健全的开发部署体系,实现快速迭代、快速交付。同时,应用开始运营后需要有监控,有运维来保障稳定性。针对这些经验的结论,我们给出了标准的应用模型,一套包含6大环节交付、监测、管理、控制、运营服务的工程实践,使得我们可以工程化地实现规模化运营。

image.png

云原生下的应用模型Open Application Model是由阿里云和微软共同推出的开放的应用模型,旨在为云原生应用提供开放的标准,解决应用开发和部署的挑战。

OAM的核心概念包括应用application、组件component以及运维特征traits,其主要特征包括:

  • 应用为先:应用的交付与部署都为自包含,其中各类操作行为都应该作为应用定义的一部分,这些内容与实际的基础设施无关。

  • 清晰和可扩展性:定义一套开放标准,可以模块化整个应用交付流程,根据个人需要将这些模块自由组装,满足业务需求。

  • 云服务供应商无关:自定义的开放标准应该是一套更高级别的抽象,可以跨本地集群、跨云服务供应商,不会被锁定到任何厂商的底座。

OAM通过一系列的概念定义,完成了对应用的抽象,实现了角色职责分离,将应用交付与底座解耦,开发无需关心底座实现的细节,只需关心自己的应用模型。同时,应用运维再也无需担心应用内部与底座相关的各种问题,只需提供应有的component和traits,应用即可运行。

图片

基于应用引擎,可以按照application和component的模式逐层垒起应用积木。

我们先在应用引擎之上实现了运维应用管理swadmin,其中含有一套前端的低代码引擎,能快速开发后端接口,编排前端页面,快速落地整个运维应用。运维应用便可在应用市场里上线各种功能,争奇斗艳。

大数据应用管理的运维应用来自于阿里内部,用以支持阿里内部的大数据产品需求,实现阿里云上所有大数据产品的交付、售卖以及管控能力,它也是基于AppManager和OAM实现的应用工厂。

另一运维应用——企业应用管理,已经被放在开源的SREWorks之中,作为通用的应用管理,用于支撑开源场景的通用应用需求。很多公司已经基于企业应用管理开发出自己的业务应用,同时在此之上定制了很多自己需要的运维能力。

图片

上图为SREworks运维桌面,桌面上按照交付、监测、管理、控制、运营、服务6大场景分别内置了很多应用。

下方为运维应用开发演示,请点击查看视频。

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

AI+大数据的数智运维实践

图片

AIOps是人工智能在运维领域的常见运作框架。其主要流程如下:

首先,观测(Observe)时序数据和文本数据流,然后用算法对其做分析和洞察,发现其中的问题。其次,参与(Engage),将上一步发现的问题以及结果共享给团队中的成员,共同对结果进行讨论、分析以及优化,将人工干预的结果进一步反馈,喂给算法。最后,通过一步步打磨,将原先由人类完成的事情全部赋能于机器,从而实现全自动的运维,比如自动弹性扩缩容、故障自愈等。

图片

AIOps具体落地的应对策略在于内核、场景和需求。

我们抽象了交、监、管、控、营、服6大场景,基于数据化和智能化的内核向外扩散落地四大需求——质量(稳定性)、成本、安全、效率。

数智内核实现了四大需求,为什么还需要六大场景?

这是为了解决大工程下的功能复用问题,如果没有以上场景做收敛,很多功能会发散。比如异常检测可能会由于业务的细微差异,出现多个工程实现。

足够的通用和抽象,也是落地工程中的重要考量原则,在同一个场景下,会尽量使用同一套方案实现。

观测通常可以分为两类,一类是以metric为代表的时序数据,另一类是以日志为代表的文本数据。

图片

Metric的异常检测——无阈值监控,指让机器自己发现指标中的不正常数值,并且进行报警。它与人为设置的阈值不一样,异常检测讲究的是无阈值监控,在大规模集群的指标监测中常常能够发挥较大作用。

异常指标的检测一般包括均值的变化、方差的变化、尖峰探测、断崖式的跌落和趋势预测,基本涵盖了人类认知中判断异常的方法。

在大规模使用异常检测时,建议可以先对顶层的运营指标进行异常检测,这类指标通常会配有运营报表,可视化程度高,针对异常点的排查也非常方便。即使没有检测出异常,对于出错的容忍度也较高。运营指标接入异常检测之后,可以逐步向底层渗透,替换生产环境的固定阈值报警。

异常检测能力已经在SREWorks中开源。

image.png

日志聚类——面向日志的异常告警也即将开源。

在日志数据中,我们常常关注的焦点是日志中的报错堆栈,久而久之,经验丰富的运维同学可能会直接写脚本监控日志报错堆栈里的关键字。但这种监控方案存在问题,软件版本更新可能会导致报错堆栈变化,关键字随即不管用,因此需要调整脚本。

而日志聚类是一劳永逸的办法,报错堆栈在算法眼里都属于文本模式,日志数据进来之后,可以用日志聚类将这些报错堆栈聚成若干个文本模式,从而使一份文本数据变为指标数据,只需要关注某些文本模式计数值的突增,即可感知到异常。

文本数值配合异常检测,即可实现AIOps完整的一条龙服务,涵盖了日志的聚类分析、模式计数、异常检测以及报警。

当前开源版本的日志聚类基于Flink ML构建,我们会将这份构建代码合并到近期即将发布的V1.5源码上。

图片

上图为数智运维的分层图,经过IaaS、PaaS、SaaS三层的分层之后,面向交、监、管、控、营、服六大场景,内部的数据运维平台衍生出了非常多功能来满足业务的需要。不少基于SREWorks做能力构筑的公司也在逐渐点亮图中的各个功能点。

数智运维体系无法一蹴而就,我们无法通过简单地点击鼠标,就得到数智运维的整个体系。我们希望SREWorks提供给用户一个用户工厂、大量工程实践的样例以及丰富的数智运维经验。希望用户在使用SREWorks之后,能够基于这些工程实践和应用工厂构筑出满足自己业务需求的数智运维体系。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/438542.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何使用DNS实现融合CDN功能

将托管DNS解决方案与CDN配对可为您的网站提供额外的性能、可靠性和灵活性。 域名系统(DNS)是一种用于计算机、服务或连接到Internet或专用网络的任何资源的分层分布式命名系统,它将各种信息与分配给每个参与实体的域名相关联,它基…

ChatGPT 火了,一大批开源平替也来了

ChatGPT 凭一己之力让全球为 AI 沸腾,引发了科技巨头之间的聊天机器人军备竞赛。 众所周知,ChatGPT 的背后技术是 GPT(Generative Pre-trained Transformer)模型。GPT 是一种基于 Transformer 模型的自然语言处理模型,由 OpenAI 公司开发。它…

【elasticsearch部署】

安装elasticsearch 1.部署单点es1.1.创建网络1.2.加载镜像1.3.运行 2.部署kibana2.1.部署2.2.DevTools 3.安装IK分词器3.1.在线安装ik插件(较慢)3.2.离线安装ik插件(推荐)1)查看数据卷目录2)解压缩分词器安…

前端必备的nginx知识点

nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全_java冯坚持的博客-CSDN博客 前端必备的nginx知识点 - 掘金 前言: 最近在做一个后台项目 ngixn简介 nginx是一款轻量级&…

【Sql】sql语句练习随记

本文通过最经典的“学生-成绩-课程-教师”表来帮助练习sql语句。 STUDENT表 SNO 学号SNAME 姓名SSEX 性别SBIRTHDAY 生日CLASS 班级 SCORE表 SNO 学号CNO 课程编号DEGREE 分数 COURSE表 CNO 课程编号CNAME 课程名称TNO 教师编号 TEACHER表 TNO 教师编号TNAME 教师姓名TS…

(包教包会)最强分布式锁工具:Redisson

今天来聊聊分布式锁的最强实现:Redisson 从分布式锁到Redisson实现非常详细,适合慢慢咀嚼~ 一. Redisson概述 1.1 什么是Redisson? Redisson是一个在Redis的基础上实现的Java驻内存数据网格(In-Memory Data Grid)。…

CRMEB开源商城/标准版后台默认admin路径修改、后台目录地址修改

默认admin路径修改 v4.7 版本开始兼容可以修改admin路径,可以根据自己的要求更换后台访问地址; 默认路径不能携带特殊字符、全部都为小写字母 修改后台admin默认路径 标准版本文件位置根目录/config/app.php 开源版本文件位置根目录/crmeb/config/app.p…

新增套餐/redis/QuartZ

套餐其实就是检查组的集合,例如有一个套餐为“入职体检套餐”,这个体检套餐可以包括多个检查组:一般检查、血常规、尿常规、肝功三项等。所以在添加套餐时需要选择这个套餐包括的检查组。 套餐对应的实体类为Setmeal,对应的数据表…

深度学习(7)之图像抠图 Image Matting算法调研

目录 1.Trimap和Strokes 2. 相关数据集 3.论文算法调研 3.1 Deep Image Matting 3.2 Semantic Image Matting 3.3 Background Matting 3.4 Background Matting V2 3.5 Semantic Human Matting 3.6 HAttMatting 3.7 MMNet:Towards Real-Time Automatic Portrait Matt…

Nginx虚拟主机、优化和防盗链

一、Nginx虚拟主机 1、基于域名的nginx虚拟主机的操作步骤 1.1 为虚拟主机提供域名和IP的映射(也可以使用DNS正向解析) echo "192.168.2.66 www.xkq.com www.wy.com" >> /etc/hosts1.2 为虚拟主机准备网页文档 mkdir -p /var/www/html/ly/ mkdir -p /var/w…

经典文献阅读之--VGICP(体素化的ICP匹配)

0. 简介 之前我们在以前的文章中介绍了很多有关于点云匹配相关的知识,最近两年处理GICP这一大一统的ICP匹配方法以外,还有一个工作对体素化和ICP这两者打起了心思,《Voxelized GICP for Fast and Accurate 3D Point Cloud Registration》提出…

动车的颜色种类

01 大家平时见到最多的动车 可能就是白色的吧 和谐号动车组开行后 白就是动车的经典配色 白色为底 车腰一条蓝色飘带让其设计感十足 我们也可以把这种动车配色 称为和谐白 02 复兴号CR400AF型电力动车组 最高运营速度350公里每小时 因其车身采用银色底色 搭配侧窗…

大数据时代必备技能,从0开始学好数据可视化

当今社会,数据可视化已经成为了一项非常重要的技能。随着大数据时代的到来,越来越多的人开始关注数据可视化,并希望能够快速地掌握这项技能。那么,如何快速学习数据可视化呢?以下是AdBright数据分析师的一些建议。 什么…

CDN的发展史和未来

互联网是一种不断变化的机制,新形式的数据和内容正在不断创造。在它商业化后不久,必须解决尽快将大量数据推送给最终用户的问题,CDN因此应运而生。 CDN的根源产生于近20年前,并一直是内容交付的驱动力,自其创立以来&a…

企业电子招投标系统源码之了解电子招标投标全流程

随着各级政府部门的大力推进,以及国内互联网的建设,电子招投标已经逐渐成为国内主流的招标投标方式,但是依然有很多人对电子招投标的流程不够了解,在具体操作上存在困难。虽然各个交易平台的招标投标在线操作会略有不同&#xff0…

虚拟机里安装ubuntu-23.04-beta-desktop-amd64,开启SSH(换源、备份),配置中文以及中文输入法等

一、下载 官网 清华镜像站(推荐) 二、配置虚拟机 【自定义】 点击“下一步”,此处【默认】,再点击“下一步”。 点击“稍后安装操作系统”,再点击“下一步”。 点击“Linux(L)”,版本选择【Ubuntu 64 位】,再点击…

升级H2数据库2.x版本遇见的问题

目录 一、引言二、集成H2基础配置三、升级H2版本2.x遇到的问题报错1报错2 三、H2关键字 一、引言 之前在跑代码单元测试时,一直用的内存数据库H2代替实际的Mysql数据库,如此便省去了对Dao的大量mock代码,类似于在跑Junit单元测试时直接跑了集…

报错:crbug/1173575 non-js module files deprecated

文章目录 报错分析解决方法一:尽可能使用JS模块文件方法二:使用type"module"属性方法三:忽略警告 报错 分析 这个错误报告 (crbug/1173575) 指的是非 JavaScript 模块文件将不再被支持,并且已经弃用。这个问题是因为Ch…

【获奖案例巡展】信创先锋之星——云上贵州信创工程中心大数据中台

为表彰使用大数据、人工智能等基础软件为企业、行业或世界做出杰出贡献和巨大创新的标杆项目,星环科技自2021年推出了“新科技 星力量” 星环科技科技实践案例评选活动,旨在为各行业提供更多的优秀产品案例,彰显技术改变世界的力量&#xff0…

【ctfshow】命令执行->web29-web44

前言 半夜网抑云听歌听emo了 z 刷会儿题不然睡不着了呜呜呜 红中(hong_zh0) CSDN内容合伙人、2023年新星计划web安全方向导师、 华为MindSpore截至目前最年轻的优秀开发者、IK&N战队队长、 吉林师范大学网安大一的一名普通学生、搞网安论文拿了回大挑校二、 阿里云专家博…