当前位置: 首页 > news >正文

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

  1. 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 使用固件常用逆向分析工具,对提供的固件进行文件系统提取,并记录逆向分析实验过程,提交实验报告(报告要求图文并茂,对涉及到的关键步骤附截图说明)。具体任务如下&#xff1…...

【小白包会的】使用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、初始化与系统相关的…...

我发现了一个超级好用快速生成er图的工具

写论文、做毕设、搞数据库设计的小伙伴们,谁还在手动画 ER 图?Visio 太笨重、PowerDesigner 上手难、PPT 画出来不规范,调格式调半天,答辩还被老师说图不标准😭 最近我挖到一个免费、在线、一键生成的神器&#xff0c…...

专题:哈希结构(已完结)

1.有效的字母异位词 class Solution { public:bool isAnagram(string s, string t) {unordered_map<char,int> mymap;for(auto c:s){mymap[c]mymap[c]1;}for(auto c:t){mymap[c]mymap[c]-1;}for(auto item:mymap){if(item.second!0){return false;}}return true;} };2.两…...

ai辅助开发:让快马平台智能诊断并生成最优的wsl ubuntu环境配置方案

在折腾开发环境配置的路上&#xff0c;相信不少朋友都踩过WSL安装Ubuntu的坑。从选择版本、处理依赖到解决网络问题&#xff0c;整个过程就像开盲盒。最近尝试用AI辅助完成这个任务时&#xff0c;意外发现了一条捷径——通过智能交互就能生成量身定制的环境方案。 传统配置的痛…...

AI大模型系统学习路线:零基础入门人工智能,附AI大模型学习与面试资源!【非常详细】

人工智能&#xff08;AI&#xff09;正在重塑全球产业格局&#xff0c;从自动驾驶到医疗诊断&#xff0c;从金融风控到内容创作&#xff0c;AI技术已成为21世纪的核心竞争力。对于零基础学习者而言&#xff0c;构建系统化的学习路径至关重要。1. 明确学习动机职业转型 &#xf…...

返回多个值:让函数输出更丰富又不复杂

一般来说&#xff0c;Python允许函数返回多个值&#xff0c;实质是返回一个元组&#xff08;tuple&#xff09;。调用方可直接通过拆包获得各值&#xff0c;这在数据处理与建模中非常常见。实战案例&#xff1a;假设你要实现一个数据分析函数&#xff0c;既返回最大值&#xff…...

WinForm实战:C#如何优雅地调用外部exe并传递多个参数(附完整代码示例)

WinForm实战&#xff1a;C#如何优雅地调用外部exe并传递多个参数&#xff08;附完整代码示例&#xff09; 在Windows桌面应用开发中&#xff0c;经常需要与其他程序进行交互。想象这样一个场景&#xff1a;你正在开发一个数据可视化工具&#xff0c;需要调用Python脚本处理原始…...

从零构建极简大语言模型:MiniLLMDemo 原理与实现详解

一、项目背景与核心价值 在LLM技术快速迭代的今天&#xff0c;理解底层原理比调用API更重要。本文将带您用200行代码实现一个可运行的极简大模型MiniLLMDemo&#xff0c;通过代码与原理的深度结合&#xff0c;掌握Transformer架构的核心设计思想。二、完整代码实现 import torc…...

构筑可信电子签名签章体系,亲笔签助力黔江区公立医院改革与高质量发展

巍巍武陵山&#xff0c;滔滔阿蓬江&#xff0c;在渝东南这片热土上&#xff0c;一个关乎50余万群众健康福祉的数字变革正在发生。2022年&#xff0c;黔江区成为首批入选公立医院改革与高质量发展示范项目全国15个试点地区之一。从“看病难、看病远”的山区困境&#xff0c;到“…...

多线程——基础

普通线程与多线程示意图 通常 系统中运行的程序/软件当做一个进程[迅雷]&#xff0c;迅雷里面多个任务看做多个线程。 总结&#xff1a;一个程序一个进程&#xff0c;一个进程可多个线程。线程是CPU调度和执行的的单位。多线程中至少一个为主线程 注意&#xff1a;真正多线程…...

OpenClaw+千问3.5-9B智能翻译:多语言文档自动处理

OpenClaw千问3.5-9B智能翻译&#xff1a;多语言文档自动处理 1. 为什么需要本地化智能翻译 去年参与一个跨国开源项目时&#xff0c;我每天要处理英日韩三种语言的开发文档。传统翻译工具需要手动复制粘贴&#xff0c;遇到代码片段还会破坏格式。更麻烦的是技术术语的准确性—…...