Kubernetes 稳定性保障手册 -- 极简版
简介: Kubernetes 在生产环境中的采用率越来越高,复杂度越来越高,由此带来的稳定性保障的挑战越来越大。
Kubernetes 在生产环境中的采用率越来越高,复杂度越来越高,由此带来的稳定性保障的挑战越来越大。
对于基于 Kubernetes 的云产品,稳定性保障已成为基本诉求,稳定性缺陷会给产品带来巨大的损失,如用户流失、用户信心下降、产品迭代速度变慢等。
虽然基于 Kubernetes 的稳定性保障很重要,但业界缺少基于实践的标准化稳定性保障方案,导致同样的问题在同一产品或不同的产品中重复出现,最佳实践不能应用在更多相同技术栈的产品中,不同产品形成的稳定性保障最佳实践也不能互补。
为此,基于过去的开发实践以及基于 Kubernetes 的稳定性保障经验,尝试形成《Kuberentes 稳定性保障手册》,将稳定性保障最佳实践进行沉淀,使得人人对 Kubenretes 稳定性保障的理论形成全面的理解,相应的工具和服务成为基础设施,复用在类似技术栈的产品中,加速稳定性保障最佳实践的传播、迭代和应用。
本篇文章作为《Kubernetes 稳定性保障手册》第一篇文章,抽象稳定性保障中的核心内容,作为稳定性保障最简使用手册。
极简手册目标
- 1min 理解稳定性保障目标
- 3min 把握稳定性保障全局视图
- 一站查找稳定性保障推荐工具或服务
稳定性保障目标
- 满足服务或产品对稳定性的诉求
- 加速服务或产品的迭代
稳定性保障检查项
稳定性保障级别
实践
方法论
全局视图
实践流程:
- 整理运行链路图,标记链路是否是关键链路
- 基于运行链路图,进行可观测性配置
- 基于链路重要程度,进行可控性治理
为了降低实践的成本,需要把握云产品中的元素及交互关系,从基础的元素和交互方面解构复杂系统:
- 元素 (2 类)云产品组件云产品
- 交互 (2 类,共 3 种场景)云产品内部组件自身组件与组件之间云产品之间云产品与云产品之间
如下图:
随着元素数量和交互关系的增多,系统会逐步变得复杂,稳定性保障面临的挑战也会越来越大,要避免引入非必要的复杂性。
因此,需要先梳理清楚当前的运行链路图,进行链路重要性分析,并整理组件大图,判断组件的爆炸半径。在此基础上,还需要进行参与人员的 review,避免在人员的投入方面存在单点风险。
运行链路图示例:
链路重要性示例:
云产品间交互示例:
基于上述对系统复杂度、运行链路的分析,面对稳定性保障的问题域,可以有效提出、落地解决方案。
问题处理
实践流程:
- 长期维护角色列表、功能流程图、运行链路图
- 在多个分级的「告警群」中感知问题的发生和恢复
- 在唯一的「问题处理群」中处理问题和复盘问题
对于复杂的系统,通常会有如下的角色关系:
梳理清楚每层的角色,并使得参与同学可以方便查找目标同学,会缩短问题处理时间。
问题域
概述
推荐
后续
对于《Kubernetes 稳定性保障手册》,接下来会进行如下的章节细化,分别从方法论和工具/服务的角度进行总结,形成初版后与大家分享,进行共建:
作者:悟鹏
本文为阿里云原创内容,未经允许不得转载
Kubernetes 稳定性保障手册 -- 极简版的更多相关文章
- Underscore源码阅读极简版入门
看了网上的一些资料,发现大家都写得太复杂,让新手难以入门.于是写了这个极简版的Underscore源码阅读. 源码: https://github.com/hanzichi/underscore-an ...
- js消除小游戏(极简版)
js小游戏极简版 (1) 基础布局 <div class = "box"> <p></p> <div class="div&qu ...
- SimpleThreadPool极简版
package com.dwz.concurrency.chapter13; import java.util.ArrayList; import java.util.LinkedList; impo ...
- 极简版ASP.NET Core学习路径及教程
绝承认这是一个七天速成教程,即使有这个效果,我也不愿意接受这个名字.嗯. 这个路径分为两块: 实践入门 理论延伸 有了ASP.NET以及C#的知识以及项目经验,我们几乎可以不再需要了解任何新的知识就开 ...
- 【极简版】SpringBoot+SpringData JPA 管理系统
前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 在上一篇中已经讲解了如何从零搭建一个SpringBo ...
- 【极简版】OpenGL 超级宝典(第五版)环境配置 VS2010
事先声明:该教程仅适用于VS2010环境下超级宝典第五版的配置 第一步:下载示例代码和环境包: 链接:https://pan.baidu.com/s/1llRRQ8ymBgMGuXp5M50pJw 提 ...
- Vue数据双向绑定(面试必备) 极简版
我又来吹牛逼了,这次我们简单说一下vue的数据双向绑定,我们这次不背题,而是要你理解这个流程,保证读完就懂,逢人能讲,面试必过,如果没做到,请再来看一遍,走起: 介绍双向数据之前,我们先解释几个名词: ...
- 极简版 react+webpack 脚手架
目录结构 asset/ css/ img/ src/ entry.js ------------------------ 入口文件 .babelrc index.html package.json w ...
- cookie——登录注册极简版
本实例旨在最直观地说明如何利用cookie完成登录注册功能,忽略正则验证. index.html <!doctype html> <html lang="en"& ...
- 极简版 卸载 home 扩充 根分区--centos7 xfs 文件格式
1. 查看文件系统 df -Th 2. 关闭正常连接 /home的用户 fuser /home 3. 卸载 /home的挂载点 umount /home 4.删除home的lv 注意 lv的名称的写法 ...
随机推荐
- json转化总结
最近对接个老接口,返回的信息格式十分清奇,为此折腾了一会,简单记录下 先贴下这个接口返回的格式样子 在本地我使用idea的debug模式调试返回的信息,方式:进入debug模式,请求达到断点处,按组合 ...
- Elasticsearch - Docker安装Elasticsearch8.12.2
前言 最近在学习 ES,所以需要在服务器上装一个单节点的 ES 服务器环境:centos 7.9 安装 下载镜像 目前最新版本是 8.12.2 docker pull docker.elastic.c ...
- python script 编写摘要(一)
PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明 本文作为本人csdn blog的主站的备份.(Bl ...
- vim下删除swp文件
vim下删除swp文件 几个选项的内涵 [O]pen Read-Only 只读的方式打开 (E)dit anyway 编辑模式打开,但是不会载入存盘的内容 (R)ecover 编辑模式打开并且加载暂存 ...
- Jmeter前言
前言 为什么要撰写这样一个教程呢? 深入学习Jmeter 温故而知新.尽管我已经使用JMeter很长时间,但还有许多元件我并不十分了解,因此,编写教程的过程成为了我的学习过程,通过反复回顾和整理知识, ...
- SwiftUI 笔记
TextField 监听 lost focus 之前有一个初始化方法,传入一个 onEditingChanged closure,但这个方法废弃了,文档中也说了 alternative:使用 Focu ...
- [Oracle]细节、经验
[版权声明]未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/131054454 出自[进步* ...
- 在 M1 下搭建 DolphinScheduler 开发调试环境
Apache DolphinScheduler 是一个分布式去中心化,易扩展的可视化 DAG 工作流任务调度系统.致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用 M1 ...
- cadence板图设计基本操作
基于cadence的四位全加器设计及仿真. 1.实验原理 板图,也就是芯片的原理图.通过学习板图的绘制,可以有效地提高对芯片的工作原理的认识.在版图设计中,需要掌握许多的规则,能够按照特定的规范优化, ...
- archlinux运行appimage
1.cd进入appimage所在的目录 cd your_folder 2.赋予appimage运行权限 chmod +x your_file.appimage 3.运行appimage格式文件 ./y ...