微服务治理-含服务线上稳定性保障建设治理

news2025/1/10 12:02:20

微服务的概念

任何组织在设计一套系统(广义概念上的系统)时,所交付的设计方案在结构上都与该组织的沟通结构保持一致。 —— 康威定律

微服务是一种研发模式。换句话理解上面这句康威定律,就是说 一旦企业决定采用微服务架构,就必须在组织架构、管理策略、研发模式、测试、运维等领域都做出相应的调整,为微服务架构的落地创造合适的“土壤”。

微服务架构的特点:

  1. 高内聚、低耦合
  2. 独享资源
  3. 同构还是异构
  4. 架构治理 (服务架构中的架构腐化的表现)
    (1)单点依赖: 这类服务一旦出现问题,会导致服务应用出现大面积的故障
    (2)循环调用:服务A调用服务B,B调用C,C在特定条件下又调用A,这样A->B->C->A就形成了循环调用,就构成了一个隐患,这种循环关系被触发,就会导致业务异常
    (3)服务冗余

**如何发现和看到以上的架构问题,2种典型的手段:

  1. 静态代码调用链路分析
  2. 动态线上调用依赖关系分析**

服务质量
6. 服务开发质量度量
7. 服务测试质量度量
8. 服务运维质量度量
9. 服务线上性能度量

服务管控

  1. 服务的内部管控
  2. 服务生命周期管理

通过服务质量度量提供治理依据

微服务基础的度量指标:

  1. 调用量
  2. 调用延时
  3. 异常

通过服务管控实现治理闭环

如何有针对性地进行服务的管控?

  • 服务限流 (单点限流、集群限流)
  • 服务集群容错
  • 服务降级
  • 服务降权

服务线上稳定性保障

1、应急预案

Google的公开经验,“通过实现预案并且将最佳方法记录在‘运维手册(palybook)’上通常可以使MTTR (故障平均恢复时间)降低3倍以上”
在这里插入图片描述

2、故障演练

(1)故障演练的目的

  1. 验证应急预案的有效性
  2. 锻炼研发的操作能力和危机意识

【最终目标】 建立一套有效的紧急故障管理流程,协调故障发生时的人(相关干系人,包含业务、运营、开发)、事(应对策略、事项)、物(故障主体、环境),以控制故障的影响并迅速恢复运营。

(2)一个可实施的故障预案建设流程
在这里插入图片描述

(3)演练场景

  • 基础资源类场景
场景详细目标
CPU类场景1.CPU使用率负载 2.指定使用率满载让CPU在特定负载下,验证服务质量、监控告警、流量调度、弹性伸缩等能力
网络类场景1网络延迟 2.网络丢包 3.篡改域名解析网络故障是时常会遇到的问题,需要提升系统在网络异常下的容错能力
  • java
场景
虚拟机场景
代码逻辑场景
java注入动态脚本
  • k8s场景
场景
node
pod
container
  • 其他
场景
服务依赖-强弱依赖演练
可观测性演练
故障恢复模式演练

(4)演练阶段
在这里插入图片描述

3、混沌工程

什么是混沌工程?

一门相对高级的系统稳定性治理方法论,提倡采用探索式的研究实验,发现生产环境中的各种风险,让人们建立对于复杂分布式系统在生产中抵御突发事件能力的信心。

混沌工程的本质

在不影响正常业务的前提下,在生产环境中有意识地注入一些异常和故障,探索系统潜在的脆弱点,并对这些脆弱点进行改进,从而增强系统的韧性,提高人们对系统健壮性的自信心的行为。

混沌工程的核心
在这里插入图片描述
混沌工程评估模型
(1)Netflix制定的混沌工程成熟度评估模型
在这里插入图片描述
(2)Netflix混沌工程实验的接纳指数
在这里插入图片描述
开展混沌工程的前提
不影响正常业务 & 线上系统具备完善的可观察性
混沌工程落地策略
(1)制定风险清单,确定实验项目 :梳理业务相关链路
(2)确定实验指标:
比如“当Redis缓存服务出现故障时,服务保持正常”这个预期,就必须定义Redis缓存服务的故障标准是什么,以及服务正常的定义是什么。
(3)充分做好实验准备工作
根据实验项目清单制定尽可能完善的实验步骤计划及预案保障计划;准备实验数据;通知相关系统干系人,让核心岗位人员就绪,同时让业务人员提前知晓,防止造成不必要的恐慌。
(4)由点及面,逐步扩大实验范围
(5)实验后复盘

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/20142.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Js逆向教程-12FuckJs

Js逆向教程-12FuckJs 它利用了js的语法特性: 一、特性1 任何一个js类型的变量结果 加上一个字符串 ,只会变成字符串。 数组加上字符串: [0]"" 0true加上字符串 true "" true数字加上字符串 1"" 1二、特性…

14天学习训练营之 初识Pygame

目录 学习知识点 PyGame 之第一个 PyGame 程序 导入模块 初始化 ​​1.screen 2. 游戏业务 学习笔记 当 init () 的时候,它在干什么? init () 实际上检查了哪些东西呢? 它到底 init 了哪些子模块? 总结 14天学习训练营导…

2023年计算机毕设选题推荐

同学们好,这里是海浪学长的毕设系列文章! 对毕设有任何疑问都可以问学长哦! 大四是整个大学期间最忙碌的时光,一边要忙着准备考研,考公,考教资或者实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越…

·工业 4.0 和第四次工业革命详细介绍

工业 4.0 是制造/生产及相关行业和价值创造过程的数字化转型。 目录 工业 4.0 指南 工业 4.0 与第四次工业革命互换使用,代表了工业价值链组织和控制的新阶段。 网络实体系统构成了工业 4.0 的基础(例如,「智慧机器」)。他们使用…

基于SpringBoot+Vue的疫苗接种管理系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端:SpringBoot 前端:Vue 数据库:MySQL5.7 数据库管理工具:Navicat 12 服务器:Tomcat8.5 开发软件:IDEA / MyEclipse 是否Maven项…

实验二 帧中继协议配置

计算机网络实验实验二 帧中继协议配置一、实验目的二、实验内容三、实验条件四、实验步骤4.1 连接帧中继交换网4.2 创建DLCI4.3 创建串行接口间的虚电路映射关系4.4 配置路由器的串行接口七、思考题实验二 帧中继协议配置 一、实验目的 掌握路由器上配置帧中继协议的方法 掌握…

SSM整合(一)

SSM整合之简单使用通用mapper 1.准备工作 1.1 在java文件夹下面创建所需要的目录 1.2 导入SSM整合时所需要的所有依赖 <properties><!--这个是统一一些spring插件的包名,避免因为版本不一样而报错--><spring.version>5.3.22</spring.version></p…

SAP S4 FI 后台详细配置教程文档 PART2 (财务会计的基本设置篇)

本篇是系列文章的第二部分&#xff0c;目标是家在配置“字段状态变式”和“年度与期间的配置” 目录 1、 字段状态变式 1.1定义字段状态变式 1.2 向字段状态变式分配公司代码 2、会计年度与记账期间 2.1维护会计年度变式 2.2 向一个会计年度变式分配公司代码 2.3定义未结…

服务器虚拟化有什么好处

服务器虚拟化是一种逻辑角度出发的资源配置技术&#xff0c;是物理实际的逻辑抽象。对于用户&#xff0c;虚拟化技术实现了软件跟硬件分离&#xff0c;用户不需要考虑后台的具体硬件实现&#xff0c;而只需在虚拟层环境上运行自己的系统和软件。 说起服务器虚拟化这个技术&…

你的新进程是如何被内核调度执行到的?(下)

接上文你的新进程是如何被内核调度执行到的&#xff1f;&#xff08;上&#xff09; 四、新进程加入调度 进程在 copy_process 创建完毕后&#xff0c;通过调用 wake_up_new_task 将新进程加入到就绪队列中&#xff0c;等待调度器调度。 //file:kernel/fork.c long do_fork(.…

表白墙服务器版【交互接口、服务器端代码、前端代码、数据存入文件/数据库】

文章目录 一、准备工作二、约定前后端交互接口三、实现服务器端代码 四、调整前端页面代码五、数据存入文件六、数据存入数据库一、准备工作 1) 创建 maven 项目2) 创建必要的目录 webapp, WEB-INF, web.xml&#xff1b;web.xml如下&#xff1a;<!DOCTYPE web-app PUBLIC&qu…

家居行业如何实现智能化?快解析来助力

什么是智能家居&#xff1f;主要是指利用先进的电子通信技术&#xff0c;将居家生活有关的各个子系统有机结合在一起&#xff0c;通过网络化便可以对这些系统进行智能控制与管理。智能家居概念之所以逐渐普及&#xff0c;得益于物联网、大数据、人工智能等新兴技术的进步。智能…

科学计算模型 Numpy 详解

本文主要介绍Numpy&#xff0c;并试图对其进行一个详尽的介绍。 通过阅读本文&#xff0c;你可以&#xff1a; 了解什么是 Numpy掌握如何使 Numpy 操作数组&#xff0c;如创建数组、改变数组的维度、拼接和分隔数组等掌握 Numpy 的常用函数&#xff0c;如数组存取函数、加权平均…

表关联查询

表关联查询 1.表别名 当表的名字很长或者执行一些特殊查询时&#xff0c;为了方便操作或者需要多次使用相同的表时&#xff0c;可以为表指定别名&#xff0c;以替代表原来的名称。 在为表取别名时&#xff0c;要保证不能与数据库中的其他表的名称冲突。 对单表做简单的别名查询…

能否通过手机号查询他人位置及技术实现(省流:不能)

前言 &#x1f340;作者简介&#xff1a;被吉师散养、喜欢前端、学过后端、练过CTF、玩过DOS、不喜欢java的不知名学生。 &#x1f341;个人主页&#xff1a;红中 &#x1fad2;每日emo&#xff1a;纪念我死去的爱情 &#x1f342;灵感来源&#xff1a;艺术源于生活&#xff0c…

SpringBoot SpringBoot 开发实用篇 5 整合第三方技术 5.2 Spring 缓存使用方式

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 开发实用篇 文章目录SpringBootSpringBoot 开发实用篇5 整合第三方技术5.2 Spring 缓存使用方式5.2.1 Spring 缓存使用5.2.…

数字集成电路设计(五、仿真验证与 Testbench 编写)(二)

文章目录4. 信号时间赋值语句4.1 时间延迟的语法说明4.2 时间延迟的描述形式4.3 边沿触发事件4.3.1 事件表达式4.3.2 边沿触发语法格式4.4 电平敏感事件4. 信号时间赋值语句 &#xff01;&#xff01;信号赋值语句是硬件描述语言非常重要的一条语句&#xff0c;是对于任意信号…

Zookeeper:Zookeeper的主从选举机制

ZAB 协议&#xff0c;全称 Zookeeper Atomic Broadcast&#xff08;Zookeeper 原子广播协议&#xff09;&#xff0c;是为分布式协调服务 ZooKeeper 专门设计的一种支持崩溃恢复的一致性协议。基于该协议&#xff0c;ZooKeeper 实现了一种主从模式的系统架构来保持集群中各个副…

业务定制型异地多活架构设计

1个原理 大道至简-异地多活核心原理 异地多活本质上是 CAP 中的AP 大道至深-CAP 粒度 CAP 关注的粒度是数据&#xff0c;而不是系统&#xff0c;需要根据不同业务的数据特点来设计异地多活 延迟 CAP 是忽略网络延迟的 &#xff0c;但工程落地不可能做到零延迟 分区容忍…

【Linux】linux中你不得不爱的命令集(上)

Linux命令集 我们将要介绍的命令并不是linux中所有的命令&#xff0c;是我们常见的和经常要使用的命令。 我们所用的linux版本是centos7&#xff0c;我们的linux搭建是在腾讯云服务器上搭建的&#xff0c;借助Xshell登录服务器&#xff0c;在root下进行命令行的操作。 目录 L…