《SRE Google 运维解密》笔记

指导思想

介绍


Google 生产环境介绍

borg 是 k8s 的前身。

拥抱风险


服务质量

  1. 现在的 SLO 没有更细粒度的划分到季度
    1. 如果划分到季度,需要用这个数据来限制什么或者进行什么活动?
  2. L1S 链路的 SLA 的签署工作已经做了很多
    1. 对于 SLA 的达成情况数据没有看板现在除了出故障后用这个 SLA 甩锅感觉没有别的作用
    2. SLO 目标制定 -> SLO 目标细化(按季度/按周) -> SLA 签署 -> 爆炸半径控制 -> 线上流量放火验证

减少琐事

  1. 琐事不仅仅代表“不喜欢的工作”,也不等于行政杂务或者“脏活累活”
    1. 流程开销是必须的(overhead)例如变更通报、项目会议、ko 材料(项目管理流程也是必须的)
    2. 一些脏活累活通常也具有长期价值(例如 check_status 接入/物理机下线/容量水位指标治理/监控报警治理)
    3. 这些都不是琐事


监控

自动化

  1. 人不可靠,没人能像机器一样永远保持一致。
  2. 现在工作中有哪些流程可以被自动化的?
    1. 重保后的缩容
      1. 自动记录发单和提单
      2. 人工审批后执行
    2. 限流触发后的自动化流程
      1. 拉群周知业务方
      2. 更改报警等级
      3. 自动化的按比例放大
  3. 警惕自动化的权限过大!自动化过程添加合理检查
    1. 速率限制
    2. 权限检查
    3. 幂等性


发布工程


简单化

不是在不能添加更多的时候,而是没有什么可以去掉的时候,才能达到完美。

只有真空中的软件系统才是永远稳定的?我们的工作最终是在系统的灵活性和稳定性上维持平衡。

  • 创造流程、工具、输出最佳实践
    • ex 代码膨胀检测
  • 同时最小化对开发人员的影响

实际工作中有很多东西是没有条件进行。

具体实践

紧急事件响应

给出了三类故障的案例、做得好的地方、做得不好的地方以及从中学到的。

没有几个人天生就能很好的处理紧急情况,紧急情况下恰当处理需要平时不断进行实战训练。


紧急事故管理流程


处理中断性任务


流状态是一个软件工程行业内普遍接受、人尽皆知的理念。
在流状态里可以提升生产力,提升创造性甚至艺术创造性。
进入“心流”会产生出很强的创造力,这个人也会更满意自己的工作。
进入流状态需要时间进行上下文切换。
工作中应尽量减少中断性任务,比如 on-call 工程师应专注于 on-call 工作,其他项目进度应该把这个工程师进度排除在外。
工单:不要讲复杂分散到整个团队中去,人不是机器,这样做只会干扰员工,降低工作效率。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营第七天|哈希表理论基础,454.四数相加II ,383. 赎金信 ,15. 三数之和 ,18. 四数之和

刷题建议 刷题建议与debug 代码随想录目前基本都有了视频讲解,一定要先看视频,事半功倍。写博客,将自己的感悟沉淀下来,不然会忘大家提问的时候,记得要把问题描述清楚,自己在哪一步遇到了问题&#xff0c…

AWS EC2的SSM配置(AWS云中的跳板机)

问题 开发人员需要访问AWS云中私有子网的数据库服务等,都需要通过EC2进行SSH隧道代理。这里假设本地已经有一款稳定优秀的SSH客户端工具,并且假设已经会熟练使用SSH的隧道代理。 1.创建EC2 搜索找到EC2服务,如下图: 点击“启动…

Docker 配置国内镜像源加速

1. 国内镜像源总览 名称路径中国官方镜像https://registry.docker-cn.com网易163镜像http://hub-mirror.c.163.com中科大镜像https://docker.mirrors.ustc.edu.cn阿里云镜像https://[xxx].mirror.aliyuncs.com 2. 阿里云镜像源 地址:https://cr.console.aliyun.c…

【开源】基于JAVA+Vue+SpringBoot的校园电商物流云平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 商品数据模块2.3 快递公司模块2.4 物流订单模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 商品表3.2.2 快递公司表3.2.3 物流订单表 四、系统展示五、核心代码5.1 查询商品5.2 查询快递公司5.3 查…

PLSQL启动报错:Initialization error,不能初始化

出现场景:我这里原来有个旧版的PLSQL,想用新版的又装了个新版,启动的时候报错 解决办法 1.核对程序位数 第一个提示明显看到是和程序位数相关的,不管是32位还是64位要做到向匹配 2.设置oci.dll 第二个提示可以看到是和oci.dll…

jenkins环境搭建

jenkins环境搭建 1.环境说明2.环境准备1.jdk安装2.安装Git3.安装sshpass4.安装Maven 3.安装Jenkins(war包方式安装)1.安装2.镜像加速 4.官网提供的yum方式安装5.访问 1.环境说明 keyvalue环境centos7jdk版本11git2.43.0maven3.9.6jenkins最新版本http://mirrors.jenkins-ci.or…

(收藏)数据治理:一文讲透数据安全

数据治理:一文讲透数据安全 数据安全是数据治理的核心内容之一,随着数据治理的深入,我不断的碰到数据安全中的金发姑娘问题(指安全和效率的平衡)。 DAMA说,降低风险和促进业务增长是数据安全活动的主要…

【从零开始学习Java重要集合】深入解读ThreadLocal类

目录 前言: ThreadLocal: ThreadLocal的内部结构: ThreadLocal的常用方法: 1.set方法: 2.get方法: 3.setInitialValue方法 remove方法(): ThreadLocalMap&…

第十二章 Java内存模型与线程(一)

文章目录 12.3 Java内存模型12.3.1 主内存与工作内存12.3.2 内存间交互操作小结12.3.3 对于volatile型变量的特殊规则12.3.5 原子性、可见性与有序性12.3.6 先行发生原则 12.3 Java内存模型 12.3.1 主内存与工作内存 1.Java 内存模型规定了所有的变量都存储在主内存&#xff…

Java反转单链表

/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next; }* }*/ //核心思想,利用cur和Curnex…

驱动树莓派直流电机(二)——python

一、安装spyder 我喜欢用spyder编写python 有两种方法安装spyder,第一种(版本更新),但是我更细化第二种,简单 方法一:在ubuntu PC端输入如下代码 wait~~~~~~~~~~~ 安装的慢就用下面这个代码 或者设置切…

脱离于ASP.NET 和Visual Studio编辑Razor脚本

Razor Pad是一个编辑Razor脚本的工具,脱离于ASP.NET 和Visual Studio。 github地址:https://github.com/RazorPad/RazorPad 如果在编译源码时出现:签名时出错: 未能对 bin\Debug\app.publish\RazorPad.exe 签名。SignTool Error: No certifi…

JFinal学生信息管理系统

JFinal学生信息管理系统 项目地址:mendianyu/StudentManage: JFinal学生信息管理系统 (github.com) 环境介绍: IDE:IDEA 2021.2.3 jdk:1.8 maven:3.6.3 项目介绍:JFinal框架实现的学生信息管理系统,完成简单的学生信…

一文解析低代码平台

一、低代码概念 低代码开发平台是一种无需编码或者只需要少量代码即可快速生成应用程序的开发平台,通过可视化进行应用程序开发的方法,让不同经验水平的开发人员可以通过图形化的用户界面,使用拖拽组件和模型驱动的逻辑来创建网页和移动应用程…

【QT】多层QTreeWidget与QStackedWidget的关联操作

通过点击多层QTreeWidget来控制QStackedWidget中的page页面切换 treeWidget设计 treeWidget设计&#xff1a; // treeWidget设计ui->treeWidget->clear();ui->treeWidget->setColumnCount(1);//第一层QStringList l;l<<"管理系统";QTreeWid…

JavaScript基础(26)_dom增删改练习

<!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"><title>DOM增删改练习</title><link rel"stylesheet" href"../browser_default_style/reset.css"><style>table {borde…

分布式事务:构建无障碍的云原生应用的完美解决方案

目录 一、前言 二、分布式事务概述 2.1 什么是分布式事务 2.2 分布式事务的挑战 2.3 分布式事务的分类 三、传统解决方案分析 3.1 两阶段提交协议&#xff08;2PC&#xff09; 3.2 三阶段提交协议&#xff08;3PC&#xff09; 3.3 补偿事务 3.4 其他传统解决方案 四…

Qt/QML编程学习之心得:slider(34)

滑条slider&#xff0c;有时也成为进度条progressbar&#xff0c;在GUI界面中也是经常用到的。 import QtQuick 2.9 import QtQuick.Controls 2.0 import QtQuick.Layouts 1.2ApplicationWindow {id:rootvisible: truewidth: 1920height: 720//title: qsTr("Hello World&q…

慕尼黑工业大学最新提出!单目实时密集建图的混合隐式场方法

作者&#xff1a;小柠檬 | 来源&#xff1a;3DCV 在公众号「3DCV」后台&#xff0c;回复「原论文」可获取论文pdf 我们提出了一种新颖的方法&#xff0c;它将基于深度学习的密集SLAM与神经隐式场相结合&#xff0c;实时生成密集地图&#xff0c;而无需像以前的方法那样依赖RGB-…

Vue的api接口封装以及使用说明、模块说明

在Api目录下面建立user.js&#xff0c;如果以后有不同的接口请求地址都可以单独创建不同的&#xff0c;目的是方便维护&#xff01; import request from /utils/request 这个代码是引入之前封装好的 request.js 文件&#xff0c;具体可以参考上门一篇文档 Vue的request.js模…