嘉宾 | 冯诗淳 整理 | 黄文勤
出品 | CSDN云原生
(相关资料图)
2022年第一季度,在Forrester发布的公共云容器平台分析师报告中,阿里云容器服务ACK进入领导者象限,ACK的可观测能力得到了分析师的高度肯定。由此可见,可观测性已经成为构建用户IT系统运维体系的重要能力。
2022年8月9日,CSDN云原生系列在线峰会第15期“Prometheus峰会”上,阿里云容器服务团队可观测体系负责人冯诗淳分享了阿里云ACK容器服务生产及可观测体系的建设与实践。
上图是ACK可观测体系的全景图金字塔,从上至下可以分为4层。
Business Monitoring业务监控,包括用户业务的前端流量、PV、前端性能、JS 响应速度等监控。通过容器服务的 Ingress Dashboard 来监测 Ingress的请求量以及请求的状态,用户可以定制业务日志,通过容器服务的日志监控实现业务的自定义监控。
Application Performance Monitoring应用监控,由ARMS APM产品提供用户Java Profiling和Tracing等能力,也支持OpenTracing和OpenTelemetric协议的多语言监控方案。
Container Monitoring容器监控,包括容器的集群资源、容器Runtime层、容器引擎以及容器集群的稳定性。使用阿里云Prometheus在一张Global View的大盘中展示不同集群层面的资源、应用、水位、云资源等,也包括事件体系和日志体系。
Infrastructure Monitoring基础资源监控,包括不同的云资源、虚拟化层、操作系统内核层等,容器层和基础架构层都可以使用基于eBPF的无侵入式架构和K8s监控能力做网络和调用的Tracing。
可观测体系的每一层都和可观测的三大支柱Logging、Tracing、Metrics有着不同程度的映射。
场景一:异常诊断场景的可观测能力实践
上图为用户的异常诊断案例,线上系统流量由朝九晚五的不同业务发生波谷,造成应用跟随波峰波谷产生水位波动。以下是业务流量激增引起异常的诊断过程:
收到容器报警后快速反应,对核心业务的Pod进行重启或扩容,查找问题根因;
通过Ingress Dashboard从入口流量自上而下进行分析,发现对外业务成功率下降并出现4XX返回码请求;
结合资源以及负载层面,发现是由于朝九晚五的流量导致水位负载,早上9点存在和故障对齐的明显水位飙升,这是故障所在;
系统第一时间褒奖核心业务Pod定位,结合业务日志进行分析,找到异常日志的输出;
结合ARMS Java的APM应用监控,定位到缓存Bug是由于上午9点业务流量的飙升导致,造成了频繁的数据库读写;
通过修复Bug,彻底闭环整个异常。
上述流程是一个典型的贯穿整个ACK可观测不同能力的异常诊断排查过程,通过它我们可以更好地理解ACK可观测体系是如何相互工作和相互协调的。
ACK可观测体系——事件体系
异常诊断发现问题最快、也是经常容易被人忽略的手段是在Logging体系的事件体系。
ACK可观测体系在社区的事件体系之上进行了增强,做到了事件体系的全覆盖,包含K8s应用事件、集群Ops事件、集群核心组件事件、K8s Runtime事件、操作系统/内核异常事件、基础设置平台事件。
ACK提供了开箱即用的事件中心能力,能够一键开启事件中心;强大且灵活易用的数据分析能力,为后面基于事件驱动的Ops体系提供了基础。
ACK K8s集群更多的是对资源的生命周期进行管控,事件中心也提供了以数据为锚点的资源生命周期监管控能力,可以对生命周期中最重要的几个时间点进行性能的调试优化以及对异常Pod状态快速反应。
ACK可观测体系——日志体系
事件体系的父类日志体系Logging在可观测体系中的主要使用场景有以下几种:
ACK的日志体系中默认提供了Ingress等重要场景的默认大盘,可以在一键接入Ingress大盘后快速查看集群Ingress的流量,包括PV、UV以及应用异常状态等;
ACK的日志体系提供了审计日志大盘,可以快速分析集群资源的访问和使用轨迹,针对未授权的访问可进行预警和报警,为集群提供更安全的环境;
提供云原生无侵入式的日志获取方式,用户可以便捷地将日志采集到日志中心,进而享受日志中心多维且强大的分析能力。
ACK可观测体系——Metric体系
Metric体系是做稳定性保障和性能调优时最常用的体系。水位等指标都可以通过大盘直观地展示给用户。
产品侧预制了ARMS Prometheus大盘产品,购买ACK K8s集群后可以一键开启Prometheus大盘,它包含了大量业务运维成熟经验的沉淀。
ACK集群控制面的核心组件API Server、ETCD、CCM等也做了指标加强,ACK Pro群不仅负责托管主核心组件、维护集群的SLA,同时也会将透明指标性能暴露给用户,让用户可以安心使用。
场景二:稳定性保障——ACK助力2022冬奥会圆满平稳举行
指标场景是稳定性保障的重要支持能力。ACK为2022年冬奥会服务,助力冬奥圆满平稳举行。ACK集群中部署了冬奥的多个核心业务系统,包括冬奥的国际官网、比赛场馆、票务系统等,为多个核心系统保驾护航。
核心系统多为Java系微服务架构,实际使用时有近千个Deployment实例。通过引入压测的方式进行容量评估,同时配合为冬奥定制首屏运维大盘,实时跟进应用状态,为集群的稳定性提供保障。
场景三:生产级规模集群稳定性保障实践
用户的生产系统规模很大,在节点集群规模达到千级别后,用户在集群上进行密集、大规模的集群资源访问,极易出现集群稳定性的问题。
比如,用户在大规模集群中频繁密集地访问集群资源,会使APIServer,API Server的Mutating请求量较高,负载过高会导致出现丢弃请求的情况,影响用户业务的发布或用户的变更。
再者,密集的集群资源访问也可能打满APIServer带宽,API Server的请求延时,RT会升至高位,一次API的访问可能需要几十秒,这会严重影响用户业务,同时,API Server的只读请求数也会飙升。
诊断路径主要分为以下三个步骤:
问题快速发现,依据API Server指标水位进行问题定位;
根因快速定位,依据API Server访问日志定位问题瓶颈应用;
止血/闭环问题,停止/优化应用的List Watch资源行为、性能。
ACK可观测体系——Prometheus For ACK Pro
阿里云近期推出了Prometheus For ACK Pro,它是Prometheus的升级服务,包含一组符合关联分析逻辑且可交互的大盘,包括标准输出日志、集群事件、eBPF无侵入式应用指标、系统指标、网络指标等数据源。用户可以通过一张大盘的关联分析逻辑,从总览到细节,通过多数据源、多角度的可观测能力进行不同角度的排查。
ACK可观测体系——Tracing体系
应用层Trace
在ACK可观测体系里,Tracing体系提供了定位问题根因的能力。应用层的Tracing提供ARMS APM能力,支持OpenTracing、OpenTelemetry 协议,可以支持多种语言的应用。
针对Java提供无侵入式的APM能力,也支持Profiling以及代码堆栈级的调用监控能力。不同语言可以汇聚成同一张分布式调用追踪大图,自上而下地查看一次分布式调用,从而定位、诊断问题。
集群网络、调用Trace
阿里云基于eBPF能力的网络层Tracing具有以下特点:
基于eBPF插桩技术,内核层面、零代码改动、低性能消耗;
全局拓扑快速定位调用链异常,通过网络拓扑、资源拓扑展示相关资源的关联;
K8s应用全局拓扑视角,包括service/deployment topology and workload-resource mapping;
统一视图,集合metrics/traces/events/logs,支持可观测的各种类型数据。
基于ACK可观测能力建设AIOps体系
使用事件驱动的AIOps体系,用户可以将事件作为统一的驱动数据源进行问题的发现、触达以及AI智能化运维操作的桥梁。
基于ACK可观测能力建设ITOps体系
报警中心会为用户提供统一配置,帮助用户快速建立异常诊断的规则,构建运维ITOps体系。它可以提供以下功能:
开箱即用报警中心能力;
支持配置灵活规则订阅关系,快速建立ITOps体系;
异常分类对应常见问题SOP处理流程,缩短故障处理时间。
基于ACK可观测能力建设FinOps体系
越来越多的用户在上云阶段或上云后治理阶段的降本增效问题,主要存在规划难、计费难、分账难、优化难、管理难的痛点。
ACK提供了云原生企业IT成本治理的方案,主要具备以下特性:
独有的云原生容器场景成本分摊与估算模型;
多维度的成本洞察、趋势预测、根因下钻;
全场景的成本优化能力、解决方案的覆盖;
企业云原生IT成本治理的专家服务;
全场景的成本优化能力、解决方案的覆盖。
客户案例实践
中华财险正在历经IT数字化转型,通过和阿里云深度合作,在进行企业云原生上云的过程中,完成了大量多租户SaaS化业务的微服务化和容器化。
客户痛点
在云原生化的过程中,中华财险需要在千核级别规模的集群中,同时管理运维多个SaaS化的线上业务,具有高度多租户、对业务稳定性要求高、对业务资源/成本趋势敏感度高等行业特点。在云原生化过程中也面对了多租户业务容量规划难、算清成本难、闲置/浪费资源难发现、资源成本优化与业务稳定性难平衡等挑战。
解决方案
使用压测服务PTS压测实际业务场景,有理有据进行容量预算规划;
使用费用中心/ACK成本分析清晰进行业务单元的成本拆分与分析,实现云原生环境下业务单元账算得清;
使用ACK成本分析发现并优化闲置浪费资源,逐步优化调整应用资源分配,持续收敛集群闲置资源;
细粒度容器化部署,根据业务量拆分应用成多个细粒度副本,根据业务实时流量弹性扩容来细粒度分配实际资源,资源成本分配更合理,更少资源浪费;
核心应用保质保量,设置节点亲和,预留干扰预算,避免资源争抢等造成业务影响,保证生产业务质量。
某集群中业务应用成本分布与闲置率
某集群中业务应用的浪费情况发现分析
优化效果
拥有多个千核级别规模的生产集群,资源浪费情况从上云前的30%+闲置率,逐步优化最终达到压制到平均10%资源闲置率以下,部分稳定业务集群甚至可以做到5%以下资源闲置率。中华财险的上云IT成本治理工作也荣获信通院2022年度云管和云网优秀案例,为金融保险行业云计算技术的更有效应用,起到了引领和示范作用。
阿里云ACK可观测体系建设经过多年的技术沉淀积累,已经在生产环境上得到了大量客户验证,对于提高服务的可观察性有着非常宝贵丰富的经验,客户通过对它的使用可以显著提高运维效果,为系统运行更好的保驾护航。
本片文章整理来自@黄文勤,由CSDN修订完成 。
想要参与到专家技术分享的一手整理过程中并获得相应权益吗?关注【CSDN云原生】公众号并回复关键词“志愿者”了解详情,我们期待你的加入~