SREWorks云原生数智运维工程实践-云原生运维实战篇-阿里超大规模Flink集群运维实践(下)

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: SREWorks云原生数智运维工程实践-云原生运维实战篇

三、 应用运维Flink Job

 

image.png

 

伴随着实时计算的大趋势,Flink的用户和作业数经历了飞速增长,现在平台上的作业数已经达到了几万个。但是众所周知Flink作业的运维是一个非常复杂的问题,列举一些日常用户最高频的咨询,比如为什么我的作业启动慢,为什么Failover,为什么反压,为什么延时,如何调整资源配置来减少成本?这些看似简单的问题其实都非常复杂。

 

Flink的作业运维难点有两个方面:一方面是分布式系统全链路组件很多,依赖很复杂。另一方面是Flink自身尤其是涉及到RunTime层面时,原理很复杂。所以我们希望将我们自身丰富的运维知识,包括对系统全链路的调用流程,各个组件工作原理的深入理解,也包括日常和双11大促中丰富的排查问题的经验,以及优秀的排查思路,全部转化为数据和规则算法,沉淀为运维产品功能。

 

这个产品主要有两个功能,一个是Flink Job Adviser,用来发现和诊断作业的异常;另一个是Flink Job Operator,用来修复作业的异常。两者配套一起来解决Flink作业运维的难题。

 

image.png

 

上图是Flink Job Adviser最终呈现给用户的效果。用户只需输入作业名或链接,@一个机器人,就会调用Adviser服务。

 

比如Case1,作业由于资源不足无法启动,adviser会给出诊断结果,是由于某个作业资源不足,并附上改进建议,让用户去控制台扩容对应的资源数量。

 

比如Case2,用户的某一个作业failover了,他想知道为什么。通过全域数据的关联,Adviser给出的结果是由于平台侧机器下线或硬件故障自愈导致的,建议用户无需做任何操作,等待自动化的恢复即可。

 

再比如Case3,由于用户作业内存配置不合理,频繁出现OOM导致failover。Adviser就会建议用户去调整对应计算节点的内存配置,避免新的failover。

 

image.png

 

Filnk job Adviser背后还有几十种针对复杂场景的异常诊断能力,构成了一个庞大的经验决策树。它不仅能够定位正在发生的异常,还有能力预防异常,主要由三部分组成:

 

事前部分,通过作业的运行指标和系统的全域事件来做预测,提前发现风险隐患,达到预防的效果,比如有作业发现的failover或者版本有问题等,这些异常还没有真正影响作业,通过体检能够发现这些问题。

 

事中部分,针对作业运行的全生命周期做诊断,包括启停类的问题,比如启动报错、启动慢、停止报错等,还包括运行起来性能不足、延时以及运行过程报错、数据一致性、准确性等问题。

 

事后部分,支持用户对于历史作业做全量的回溯。比如说想看昨天半夜failover的原因。

 

image.png

 

在决策树的具体实现里,选择了几个典型的、有复杂度的节点来进行分享。

 

第一个是作业全生命周期状态检查,一个作业从控制台提交到资源分配,再到运行环境、依赖下载,再到Top的创建,到上下游的加载,最后数据处理,整个链路是一个非常复杂的流程,adviser就是把关键节点的耗时和全量的事件统一收集起来进行分析,最终能够做到在作业任何状态做异常诊断和定位。

 

第二个是作业运行态性能类的问题,主要针对各类实时监控指标做异常检测,或通过经验值、域值的判断来发现和分析异常。比如作业延时了,那就通过节点找到反压所在的节点,再找到TM所在的节点,然后分析机器异常,最后发现可能是某台机器load高。以此形成整个链路证据链的推导,做到关联下钻分析,定位到真实的根因。

 

第三个就是最高频的问题,作业在运行过程中有报错。核心的思路是收集各个组件的日志,比如提交的日志、调度的日志、failover和有JM和TM的日志,将这些海量的异常日志通过日志聚类的算法,包括自然语言处理和实际提取,来将一些非结构化的日志变成结构化的数据,再合并同类项进行压缩,最后由SRE和研发来进行原因标注和建议,形成一套完善的专家经验。

 

最早决策树的实现都是静态的规则,但随着场景的复杂化,尤其是数据的暴增以及个性化场景的出现,静态规则无法再满足我们的需求,比如每个作业的延迟都是个性化的、报错无法再通过正则匹配来维护。我们正在积极尝试引入各种AI来解决这些个性化的问题。

 

image.png

 

通过Filnk job Adviser定位异常后,就需要Filnk job Operator来修复异常,形成一个闭环。

 

 

 

 

Operator能力主要由4大部分组成:

 

第一种能力是升级,对作业问题版本进行透明升级以及配置的热更新,来解决作业在代码和配置等稳定性方面的隐患和异常。

第二种能力是优化,基于阿里内部的Autopilot来对作业进行性能的配置调优,从而帮助用户作业解决性能和成本的问题。

第三种能力是迁移,作业通过跨集群透明迁移,主要帮助用户在大规模作业场景下达到作业的高效管理。

最后一种是自愈修复,根据 Adviser 诊断出的各种风险和规则,配套有一键修复的自愈能力。

 

image.png

 

随着实时计算的发展,运维也经历了从人肉、工具化、平台化、智能化到云原生化的演进升级,我们一直秉承的思路是将丰富的实时计算运维经验能力全部沉淀到实时计算管控产品上,来解决超大规模实时计算运维的难题。

 

在整个体系中,最中间是集群和应用两个运维对象,外围的运维的目标和运维的价值一直都是围绕着稳定、成本、效率三大目标。运维的体系、技术和产品的载体,则是实时计算管控,通过实时计算管控来服务好上层的实时计算用户和产研、SRE还有我们自己。同时运维管控的技术内核正在全力往智能化和云原生化演进。

 

一句话总结,以智能和云原生为技术内核,建设实时计算运维管控产品,来解决超大规模Flink集群运维和应用运维碰到的稳定、成本、效率三大难题。

相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
12天前
|
运维 Kubernetes 监控
云原生时代的运维革新:Kubernetes的自动化之旅
在云原生技术不断演进的今天,Kubernetes已成为容器编排的事实标准。本文将深入探讨Kubernetes如何通过自动化工具和实践,为运维团队提供高效率、高可用性的解决方案,从而推动运维工作向更高效、智能化的方向转型。
33 6
|
8天前
|
运维 Kubernetes Cloud Native
云原生时代下的运维变革:从传统到现代的演进之路
在数字化浪潮推动下,企业IT架构正经历从传统向云原生的重大转变。这一过程不仅重塑了软件开发与部署的模式,也深刻影响了运维(Operations)的实践和理念。本文将深入探讨云原生技术如何引领运维工作的革新,包括DevOps文化的兴起、容器化技术的普及以及自动化工具的应用,旨在为运维专业人员提供一条明晰的技术升级与思维转变之路。
|
11天前
|
人工智能 运维 监控
云原生时代的运维策略:从反应式到主动式的转型之旅
在云原生技术如雨后春笋般涌现的今天,传统的运维模式正面临着前所未有的挑战。本文将探讨如何从被动应对故障的反应式运维,转变为能够预见问题并主动优化的主动式运维。我们将通过实际案例分析,揭示现代运维团队如何利用云原生工具和实践来提升效率、增强系统的可靠性和弹性。文章旨在为运维专业人士提供一条明晰的转型路径,帮助他们在快速变化的云原生环境中保持竞争力。
|
13天前
|
运维 Kubernetes 监控
云原生时代的运维革新:Kubernetes 在现代 IT 架构中的角色
随着云计算的不断演进,传统的运维模式已逐渐不能满足快速迭代和弹性伸缩的需求。本文将深入探讨 Kubernetes 作为容器编排工具如何引领运维领域的变革,并展示其在现代 IT 架构中的应用价值。通过实例分析,我们将了解 Kubernetes 如何优化资源管理、自动化部署和提高系统可靠性,同时指出实践中可能遇到的挑战及应对策略。
|
4天前
|
运维 监控 Cloud Native
云原生时代的运维革新之路
在数字化转型的浪潮中,云原生技术已成为推动企业IT架构现代化的核心力量。本文将深入探讨云原生技术如何重塑传统运维模式,提升系统可靠性与敏捷性,并分享实现高效运维的策略和实践案例。
|
6天前
|
运维 Kubernetes Cloud Native
Kubernetes云原生问题之在托管Kubernetes服务中云服务商和用户的运维责任划分如何解决
Kubernetes云原生问题之在托管Kubernetes服务中云服务商和用户的运维责任划分如何解决
20 0
|
7天前
|
运维 监控 Kubernetes
构建高效稳定的云原生运维体系
【7月更文挑战第44天】在数字化转型的浪潮中,企业纷纷将业务迁移至云端,以追求更高的敏捷性、可扩展性和成本效益。然而,随之而来的是复杂多变的云环境和运维挑战。本文将深入探讨如何构建一个高效且稳定的云原生运维体系,覆盖从容器化部署、自动化管理、监控告警到灾难恢复的策略和实践。我们将分析微服务架构下的关键运维模式,以及如何利用当下流行的工具如Kubernetes、Prometheus等来提升系统的稳定性和可靠性。通过本文的阐述,读者能够获得构建现代化运维体系的全面视角,并了解实现该体系的最佳实践。
|
12天前
|
机器学习/深度学习 运维 Cloud Native
云原生时代的运维变革:从自动化到智能化的演进之路
随着云计算技术的飞速发展,运维领域正经历着前所未有的变革。本文将深入探讨云原生技术如何推动运维工作从传统的手动操作转变为高度自动化和智能化的实践。文章首先回顾了传统运维面临的挑战,随后详细阐述了自动化运维的实现方式及其带来的效率提升,并进一步探讨了智能运维的概念、关键技术以及实际应用场景。最后,文章提出了对未来运维模式的预测,并讨论了运维人员在新时代的技能需求转变。
26 0
|
21天前
|
存储 监控 大数据
阿里云实时计算Flink在多行业的应用和实践
本文整理自 Flink Forward Asia 2023 中闭门会的分享。主要分享实时计算在各行业的应用实践,对回归实时计算的重点场景进行介绍以及企业如何使用实时计算技术,并且提供一些在技术架构上的参考建议。
580 7
阿里云实时计算Flink在多行业的应用和实践
|
1天前
|
SQL 消息中间件 Kafka
实时计算 Flink版产品使用问题之如何在EMR-Flink的Flink SOL中针对source表单独设置并行度
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。

热门文章

最新文章