CNCF云原生生态版图-分类指南(一)- 观测和分析
CNCF云原生生态版图-分类指南(一)- 观测和分析
- CNCF云原生生态版图-分类指南
- 一、观测和分析(Observability and Analysis)
- (一)可观测性(Observablility)
- 1. 是什么?
- 2. 解决什么问题?
- 3. 如何解决问题?
- 4. 使用的技术
- 5. 项目和产品整体介绍
- (二)混沌工程(Chaos Engineering)
- 1. 是什么?
- 2. 解决什么问题?
- 3. 如何解决问题?
- 4. 使用的技术
- 5. 项目和产品整体介绍
- (三)小结
- 链接
CNCF云原生生态版图-分类指南
云原生生态版图按照功能类型,将项目和产品组织在一起,方便架构设计人员查找所需的技术。本文将对这个庞大的版图进行分解,从全局角度介绍各个类型,及各类项目能够解决的问题、作用方式及使用的技术。并对每种分类下的项目和产品进行整体介绍。
先对可观测性和分析进行定义:
- 可观测性:可观测性是一种系统特征,描述可以从系统的外部输出中理解系统的程度。以 CPU 时间、内存、磁盘空间、延迟、错误等来衡量,计算机系统或多或少是可观察的。
- 分析:分析是一种活动,在活动中查看和理解可观察数据。
为确保服务持续运行不中断,需要全面观察和分析应用程序,以便在应用程序发生异常时能够快速发现并矫正。这就是观测和分析类别中的所有项目和产品的主要职责。该类别位于整个云原生生态版图的侧面,能够观测左侧的所有类别层级。
下文主要介绍了可观测性和混沌工程,其中,混沌工程也可以划分为可靠性工具类别。
一、观测和分析(Observability and Analysis)
(一)可观测性(Observablility)
1. 是什么?
可观测性是从系统外部输出来理解系统的一种实践和能力。观测框架提交遥测数据给查询和可视化工具使用。遥测数据来自应用程序代码、底层节点基础设施和编排系统中采集的日志、指标和跟踪信息。这些数据,简单的有从本地节点统计的磁盘空间,复杂的有客户端到服务端往返的端到端用户事务。
2. 解决什么问题?
复杂系统的故障发生和性能下降通常会以多种形式出现,通过可观测性框架,可以掌握系统中各个服务或基础设施组建的运行状况,跟踪时间段内的重要统计指标,调试生产中的问题等。
3. 如何解决问题?
大规模运维云原生系统要求运维人员和开发人员通过访问高质量的系统状态遥测数据,来对事件作出响应并就如何改进系统做出最优的决策。可观测性可以帮助运维人员快速响应事件,帮助开发人员在生产环境调试应用程序,同时也能帮助团队分析用户行为,平衡系统性能与业务目标的关系。
4. 使用的技术
云原生可观测性在概念上与传统应用程序监控非常相似,但有几个关键区别。被检测的对象生命周期往往是短暂的,系统复杂性往往会随着部署的服务数量呈指数级的增长。这使得通过结构化数据和模式来诊断系统变得非常有意义,同时更加重视数据存储。云原生生态版图中这一部分的许多项目在设计时就考虑到了这些特征,例如 OpenTelemetry 和 Prometheus。
5. 项目和产品整体介绍
属于可观测性分类的项目和产品共有 148 个,其中 CNCF 项目有 19 个。这些项目和产品的关键字有:
- Monitoring 监测
- Time series 时间序列
- Alerting 警告
- Metrics 指标
- Logging 日志
- Tracing 跟踪
CNCF 项目如下表所示:
项目 | CNCF 项目阶段 | 说明 |
---|---|---|
Fluentd | 已毕业 | 用于统一日志记录层的开源数据收集器 |
Jaeger | 已毕业 | 一个分布式跟踪平台,由 Uber Technologies 于 2016 年以开源形式发布并捐赠给云原生计算基金会 |
Prometheus | 已毕业 | 一个开源的系统监控和警报工具套件 |
Cortex | 孵化中 | 一个水平可扩展的、高度可用的、多租户的 Prometheus 即服务(Prometheus-as-a-Service)解决方案 |
OpenTelemetry | 孵化中 | 提供了一组标准的 API、SDK 和工具,用于生成、收集、处理和导出分布式系统中的追踪(Tracing)、指标(Metrics)和日志(Logs)数据 |
Thanos | 孵化中 | 一个专为高可用的 Prometheus 设置而设计的开源项目 |
Fonio | 已存档 | 为云而生的安全监控代理 |
Headlamp | 沙盒 | 是一个用户友好的 Kubernetes UI,专注于可扩展性 |
Inspekto Gadget | 沙盒 | 使用eBPF对 Kubernetes 集群和 Linux 主机进行数据采集和系统检查的工具和框架 |
K8sGPT | 沙盒 | 一种用于扫描 kubernetes 集群、用简单的英语诊断和分类问题的工具 |
Kepler | 沙盒 | 一个 Prometheus 导出器,使用 eBPF 来探测 CPU 性能计数器和 Linux 内核跟踪点 |
Kuberhealthy | 沙盒 | 一个 Kubernetes 运维工具,用于综合监控和持续流程验证 |
Logging Operator (Kube Logging) | 沙盒 | 通过自动部署和配置 Kubernetes 日志记录管道来解决 Kubernetes 环境中与日志记录相关的问题 |
OpenMetrics | 已存档 | 大规模传输云原生指标的事实标准 |
OpenTracing | 已存档 | 一个开放的分布式追踪标准,用于在不同的分布式系统和编程语言之间提供一种统一的追踪方式 |
Perses | 沙盒 | 一个开源的、可扩展的、云原生的时间序列数据库和可视化工具 |
Pixie | 沙盒 | 面向开发人员的 K8S 可观察性工具 |
Skooner | 已存档 | 一个开源 Kubernetes 控制面板 |
Trickster | 沙盒 | 一个开源的 HTTP 代理缓存和加速层 |
(二)混沌工程(Chaos Engineering)
1. 是什么?
Chaos Engineering(混沌工程)是一种通过实验来验证系统在面对不确定性和故障时的健壮性的方法。它的核心思想是主动地向系统中引入故障或异常情况,以此来观察系统的反应,发现潜在的风险和脆弱点,从而提高系统的可靠性和韧性。混沌工程工具将提供一种受控的方式来引入故障并针对应用程序的特定实例运行特定实验。
2. 解决什么问题?
引起复杂系统失败的原因有很多,在分布式系统中,其后果往往难以理解。使用混沌工程的组织相信失败会发生,不试图阻止失败,而是练习如何快速从失败中恢复,或称为 MTTR1 。
3. 如何解决问题?
在云原生世界中,应用程序必须动态地适应故障,这是一个相对较新的概念。这意味着,当出现问题时,系统不会完全宕机,而是会正常降级或恢复。混沌工程工具能够在软件系统生产中进行实验,以确保它们在发生实际故障时能够正常执行。
4. 使用的技术
混沌工程工具和实践对于实现应用程序的高可用性至关重要。分布式系统通常过于复杂,任何一个工程师都无法完全理解,而且任何变更流程都无法完全预先确定变更对环境的影响。通过引入混沌工程实践,团队能够练习和自动化故障恢复。Chaos Mesh 和 Litmus Chaos 是该领域的两个 CNCF 工具。
5. 项目和产品整体介绍
属于可观测性分类的项目和产品共有 11 个,其中 CNCF 项目有 4 个。这些项目和产品的关键字有:
- Chaos Engineering 混沌工程
CNCF 项目如下表所示:
项目 | CNCF 项目阶段 | 说明 |
---|---|---|
Chaos Mesh | 孵化中 | 一个云原生的混沌工程平台,用于在 Kubernetes 环境中进行系统可靠性测试 |
Litmus | 孵化中 | 一个开源的混沌工程框架,主要用于云原生应用和分布式系统的可靠性测试 |
Chaosblade | 沙盒 | 一个云原生混沌工程平台,支持多种环境、集群和语言 |
Krkn | 沙盒 | 结合了 Terraform(一种基础设施即代码的工具)的优势,帮助用户在复杂的云基础设施上自动化地构建和执行混沌实验场景 |
(三)小结
可观察性和分析旨在了解系统的运行状况,并确保系统在恶劣的条件下也能保持运行。日志记录工具捕获应用程序发出的事件消息,监控监视日志和指标,跟踪跟踪单个请求的路径。这些工具组合在一起时,理想情况下可以 360 度全方位了解系统内的情况。混沌工程略有不同。它提供了一种安全的方式来验证系统是否可以承受意外事件,从而确保其保持正常运行。
链接
- CNCF Landscape
- CNCF LANDSCAPE GUIDE
MTTR 是 “Mean Time To Repair” 的缩写,即平均修复时间。它是一个用于衡量系统故障后恢复正常运行所需时间的关键指标。在运维管理、系统可靠性工程等众多领域被广泛应用。计算 MTTR 通常是统计一段时间内(如一个月、一个季度或一年)所有故障修复时间的总和,然后除以故障次数。例如,在一个数据中心,如果在过去一个季度内发生了 10 次系统故障,这些故障的修复时间分别为 1 小时、2 小时、1.5 小时、0.5 小时等,将所有修复时间相加(假设总和为 15 小时),再除以故障次数 10,得到 MTTR 为 1.5 小时。 ↩︎
相关文章:

CNCF云原生生态版图-分类指南(一)- 观测和分析
CNCF云原生生态版图-分类指南(一)- 观测和分析 CNCF云原生生态版图-分类指南一、观测和分析(Observability and Analysis)(一)可观测性(Observablility)1. 是什么?2. 解决…...

热更新解决方案3 —— xLua
概述 xLua框架导入和AB包相关准备 xLua导入 其它的导入 C#调用Lua 1.Lua解析器 using System.Collections; using System.Collections.Generic; using UnityEngine; //引用命名空间 using XLua;public class Lesson1_LuaEnv : MonoBehaviour {// Start is called before the fi…...

如何让ai在游戏中更像一个人?
开题开了一整年是我没想到的,还因此延毕了……我重新梳理一下我想做的研究以及相关痕迹。 我2023年3月找到的导师。起初我发现了在玩RTS游戏中会出现很多固定的套路,选手为此要做大量的练习,我就在想如何把这部分内容借助状态机这种流程给…...

websocket_asyncio
WebSocket 和 asyncio 指南 简介 本指南涵盖了使用 Python 中的 websockets 库进行 WebSocket 编程的基础知识,以及 asyncio 在异步非阻塞 I/O 中的作用。它提供了构建高效 WebSocket 服务端和客户端的知识,以及 asyncio 的特性和优势。 1. 什么是 WebS…...

如何在NGINX中实现基于IP的访问控制(IP黑白名单)?
大家好,我是锋哥。今天分享关于【如何在NGINX中实现基于IP的访问控制(IP黑白名单)?】面试题。希望对大家有帮助; 如何在NGINX中实现基于IP的访问控制(IP黑白名单)? 1000道 互联网大…...

Y3编辑器文档4:触发器1(界面及使用简介、变量作用域、入门案例)
文章目录 一、触发器简介1.1 触发器界面1.2 ECA语句编辑及快捷键1.3 参数设置1.4 变量设置1.5 实体触发器1.6 触发器复用 二、触发器的多层结构2.1 子触发器(在游戏内对新的事件进行注册)2.2 触发器变量作用域 三、入门案例3.1 使用触发器实现瞬间移动3.…...

echarts图表自定义配置(二)——代码封装
下图是初版,火山图的代码。可以看出,里面的变量,逻辑,函数存在冗余,基本上都是改了参数,同样的get和set,去刷新图表;对于往后继续开发十几二十个图表,会很麻烦。因此需要…...

02、10个富士胶片模拟的设置
二色彩 1、色彩的加减控制全局的饱和度增减; 2、色彩效果只提升暖色系饱和度; 3、FX蓝色大幅度提升蓝色系饱和度; 4、三个参数都不改变颜色的色相。 2.1 色彩 色彩调整的是拍摄画面整体的色彩饱和程度 2.2色彩效果 调整的是画面中暖色…...

鸿蒙系统-前端0帧起手
鸿蒙系统-前端0帧起手 先search 一番 找到对应的入门文档1. 运行项目遇到问题 如下 (手动设计npm 的 registry 运行 npm config set registry https://registry.npmjs.org/)2.运行后不支持一些模拟器 配置一下(如下图,运行成功&am…...

211-基于FMC的1路1.5G ADC 1路 2.5G DAC子卡
一、板卡概述 FMC-1AD-1DA-1SYNC是我司自主研发的一款1路1G AD采集、1路2.5G DA回放的FMC、1路AD同步信号子卡。板卡采用标准FMC子卡架构,可方便地与其他FMC板卡实现高速互联,可广泛用于高频模拟信号采集等领域。 二、功能介绍 2.1 原理框图 2.2 硬件…...

获取微信用户openid
附上开发文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html 开发之前,准备事项 一个已认证过的服务号|基本信息配置js域名和网站授权域名配置最后确认当前账号网页授权功能是否开通,没有开通的无法获取到用户授权开发人…...

MultiRECloudSim使用
MultiRECloudSim使用 简介 MultiRECloudSim是一个用于云计算环境下的模拟器相关工具,它主要用于模拟和评估云计算中的资源分配、任务调度等多种场景。它可能是基于CloudSim这个基础的云计算模拟器进行扩展而来,CloudSim提供了基本的云计算模拟功能,如数据中心、虚拟机、任务…...

智能设备安全-固件逆向分析
固件逆向分析实验报告-20241022 使用固件常用逆向分析工具,对提供的固件进行文件系统提取,并记录逆向分析实验过程,提交实验报告(报告要求图文并茂,对涉及到的关键步骤附截图说明)。具体任务如下࿱…...

【小白包会的】使用supervisor 管理docker内多进程
使用supervisor 管理docker内多进程 一般情况下,一个docker是仅仅运行一个服务的 但是有的情况中,希望一个docker中运行多个进程,运行多个服务,也就是一个docker容器执行多个服务。 调研了一下,发现可以通过**super…...

使用navicat新旧版本,连接PostgreSQL高版本报错问题图文解决办法
使用navicat新旧版本,连接PostgreSQL高版本报错问题图文解决办法 一、问题现象:二、出现原因三、解决方法:1、升级Navicat版本:2、使用低版本的postgreSQL:3、修改Navicat的dll二进制文件:navicat版本15nav…...

IDEA 未启用lombok插件的Bug
项目中maven已引用了lombok依赖,之前运行没有问题的,但有时启动会提示: java: You arent using a compiler supported by lombok, so lombok will not work and has been disabled. Your processor is: com.sun.proxy.$Proxy8 Lombok support…...

认识GO--gRPC的metadata
参考: 写给go开发者的gRPC教程-metadata-CSDN博客https://blog.csdn.net/kevin_tech/article/details/129395177?ops_request_misc%257B%2522request%255Fid%2522%253A%25221f2f2e26f48c755c33344ccb171a49fc%2522%252C%2522scm%2522%253A%252220140713.130102334…...

2024年安徽省职业院校技能大赛信息安全管理与评估
一、赛项名称 赛项名称:信息安全管理与评估 英文名称:Information Security Management and Evaluation 赛项组别:高职组 赛项归属:电子信息大类 二、竞赛目标 通过赛项检验参赛选手熟悉信息安全行业标准规范和信息 安全测试员新职…...

Perl 引用
Perl 引用 Perl,作为一种灵活而强大的编程语言,广泛用于系统管理、网络编程、GUI开发等领域。在Perl编程中,引用(References)是一个核心概念,它允许变量引用其他数据,从而创建复杂的数据结构&a…...

RT-Thread启动过程 :从汇编开始的启动流程
这个系列参考了《嵌入式实时操作系统RT-Thread设计与实现》,会详细介绍RT-Thread的启动流程,即是如何从零开始在开发板上运行起一个RTOS内核的。本文将会以 ch32v307VCT6 开发板为例展开进行详细介绍。主要包括:startup.S、初始化与系统相关的…...

Scala—“==“和“equals“用法(附与Java对比)
Scala 字符串比较—""和"equals"用法 Scala 的 在 Scala 中, 是一个方法调用,实际上等价于调用 equals 方法。不仅适用于字符串,还可以用于任何类型,并且自动处理 null。 Demo: Java 的 在 J…...

$route和$router的区别
在 Vue.js 中,$route 和 $router 都是 Vue Router 提供的对象,但它们有不同的用途和功能。 1. $router $router 是 Vue Router 实例的引用,它允许你通过 JavaScript 进行路由的控制和导航。你可以通过 $router 来执行路由的操作,…...

[工具升级问题] 钉钉(linux版)升级带来的小麻烦
本文由Markdown语法编辑器编辑完成。 1. 背景: 今日钉钉又发布了新的升级版本。由于我工作时使用的是Ubuntu 20.04版本,收到的升级推送信息是,可以升级到最新的7.6.25-Release版本。根据钉钉官方给出的历次更新版说明,这个新的版本…...

Leetcode经典题13--接雨水
题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 输入输出示例 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1…...

yarn修改缓存位置
查看缓存位置 以下三个命令分别为:bin是yarn存储命令的二进制文件,global存储全局node_modules ,cache存储用下下载缓存,查看本机目前的目录: 查看bin目录命令:yarn global bin 查看global目录命令&…...

OpenHarmony-3.HDF input子系统(5)
HDF input 子系统OpenHarmony-4.0-Release 1.Input 概述 输入设备是用户与计算机系统进行人机交互的主要装置之一,是用户与计算机或者其他设备通信的桥梁。常见的输入设备有键盘、鼠标、游戏杆、触摸屏等。本文档将介绍基于 HDF_Input 模型的触摸屏器件 IC 为 GT91…...

RabbitMQ 消息持久化/镜像队列/lazy对时延影响
测试背景: 不同条件下RabbitMQ不同队列类型的生产时延测试: 测试环境: 机型:rabbimtq.2u4g.cluster 背景流量:1000 TPS 测试条件: 消息大小 4k,消息条数为1000条,时延取值为平均…...

【深度学习】深刻理解Swin Transformer
Swin Transformer 是一种基于 Transformer 的视觉模型,由 Microsoft 研究团队提出,旨在解决传统 Transformer 模型在计算机视觉任务中的高计算复杂度问题。其全称是 Shifted Window Transformer,通过引入分层架构和滑动窗口机制,S…...

[2015~2024]SmartMediaKit音视频直播技术演进之路
技术背景 2015年,因应急指挥项目需求,我们实现了RTMP推送音视频采集推送(采集摄像头和麦克风数据)模块,在我们做好了RTMP推送模块后,苦于没有一个满足我们毫秒级延迟诉求的RTMP播放器,于是第一…...

redis 使用Lettuce 当redis挂掉重启之后 网络是怎么重新连接
Lettuce是一个高性能的Java Redis客户端,支持同步、异步和反应式编程模式 Lettuce的核心功能包括: 高性能:通过使用Netty作为底层网络通信框架,实现了非阻塞IO,提高了性能。丰富的API:提供了丰富…...