微信云原生大数据平台构建及落地实践

给小伙伴们,安利一篇云原生的大数据架构~~~

之前在工作中,也考虑这方面的建设事情,但是奈何资源不足。

最后也只有不了而知了 ,今儿有一篇讲述大数据平台的上云方面的内容。

喜欢小伙伴们喜欢~~~

微信大数据平台架构的演进,从早期的自研资源调度平台到基于Kubernetes的云原生大数据平台。探讨了大数据上云基础建设,包括计算框架接入Kubernetes的不同方案、统一接入策略、Pod设计、大数据配套能力、运行日志持久化、外部访问、计算组件云环境适配等。最后,文章讨论了稳定性及效率提升的措施,如Kubernetes集群稳定性优化、可观测性建设、智能运维等。

一、大数据上云概述

大数据上云概述了大数据上云的必要性和基础设施的变迁。随着业务的发展,传统的大数据平台面临着资源管理、运维成本和计算效率等方面的挑战。为了解决这些问题,微信技术架构部推动了大数据平台的云原生化,以实现更高效的资源利用和更灵活的业务支持。

与此同时基础设施经历了从物理机到云服务的转变,实现了存算分离和多种集群环境的部署。业务对平台的个性化需求促使平台支持灵活定制的计算框架,如自研或基于TensorFlow、MPI等二次开发,以适应不同的计算模式,包括CPU计算、GPU计算和混合计算。

此外,强调了Kubernetes(K8S)在大数据资源平台发展中的重要性。K8S以其灵活高效的容器编排、插件扩展能力,以及计算存储分离的特点,成为大数据及AI框架的首选平台。几乎所有的大数据及AI框架都原生支持K8S,无需进行侵入式改造,这大大降低了运维成本,同时提高了应用层的灵活性。

二、微信大数据平台架构演进

微信大数据平台的架构演进经历了从早期的自研资源调度平台到全面拥抱云原生技术的转变。最初,微信的大数据平台依赖自研的调度和存储系统,虽然这提供了高度的自主可控性,并能有效利用在线闲时段的资源,但也存在一些不足,如各模块组件之间的高度耦合,以及对接开源计算框架时的侵入性和开发迭代的缓慢。

为了解决这些问题,微信技术架构部推动了架构的云原生化,基于Kubernetes(K8S)构建了新的大数据平台。新架构利用K8S的资源编排能力,支持多种集群环境,并适配了多种分布式存储系统。同时,它整合了开源主流的计算框架,如Spark和Flink,并自研了通用的Job框架来支持无状态批处理。

新架构还包括了对业务定制的扩展支持,如算力GPU、Flink SQL和Job API等,以及运营管理组件,如BI、画像、机器学习和AB实验等。此外,新平台还实现了高效的任务调度、资源管理和智能运维,显著提升了大数据平台的稳定性和效率。通过这些改进,微信大数据平台能够更好地适应云时代的要求,为业务提供更加灵活和高效的数据处理能力。

三、大数据上云基础建设

大数据上云基础建设是微信技术架构部在构建云原生大数据平台过程中的关键一环。该部分主要涉及计算框架如何接入Kubernetes(K8S)集群,以及如何通过统一的Operator实现不同计算框架的透明接入。文章提到,业界计算框架接入K8S的方案并不统一,例如Spark和Flink等框架既有原生的K8S支持,也有开源的Operator实现。

微信技术架构部采取了“统一接入 - All in One”的策略,通过BigData Operator简化了任务提交端的逻辑,屏蔽了不同框架的差异。这意味着提交端只需要对接BigData Operator,而共性功能则统一在BigData Operator中实现,从而简化了开发和运维的复杂性

四、稳定性及效率提升

Kubernetes(K8S)集群稳定性优化,提出了一系列措施来增强集群的稳定性和弹性。核心组件的稳定性是通过优化K8S的master组件来实现的,这包括对kube-apiserver、kubelet等关键组件的稳定性优化。同时强调了资源配额的重要性,通过将配额限制从admission control迁移到scheduler中,可以在调度过程中更有效地进行资源管理,避免资源的过度竞争。

负载感知调度也是一个重要的方面,它允许系统根据当前的负载情况动态地调整任务的调度策略,以保持系统的稳定运行。此外,全方位指标收集和监控系统,这些系统可以实时监控集群的状态,并收集关键的运行指标,为运维团队提供决策支持。

在可观测性与智能运维方面,构建一个全面的监控和告警系统,该系统不仅能够收集指标,还能够对事件进行持久化处理,并通过智能分析提供运维上的归因与建议。这样的系统可以帮助运维团队快速定位问题,并进行有效的操作调整,以应对可能出现的异常情况。通过这些措施,微信大数据平台能够在保证稳定性的同时,也提高了运维的效率和智能化水平。

请使用浏览器的分享功能分享到微信等