Google SRE 读书笔记 扒一扒SRE用的那些工具

写在前面

最近花了一点时间阅读了《SRE Goolge运维解密》这本书,对于书的内容大家可以看看豆瓣上的介绍。总体而言,这本书是首次比较系统的披露Google内部SRE运作的一些指导思想、实践以及相关的问题,对于我们运维乃至开发人员都有一定的借鉴意义。

书中的一些思想也令我印象深刻,例如SRE工程师要保证投入50%的时间在项目上、错误预算、命运之轮、事故总结等等,对于从业者有很大的启发。书中提到了很多思想,也提到了很多工具,我想不同的单位有不同的文化、制度背景,这种指导思想未必能够执行,但是书中提到的工具,却有被其他人利用的可能。因此,我就整理了书中提到的一些工具以及搜索是否有对应的开源工程,整理成下面的列表供大家参考。

如果大家发现有不全的,或者对于某个工具希望深入讨论的,欢迎给我留言。

Google 技术栈

功能介绍产品对标的开源产品备注
分布式共识系统、分布式锁服务Chubby 书中描述为强一致性存储系统ZooKeeper、Consul
监控服务BorgmonPrometheus、Riemann、Heka、Bosun
Photon
分布式周期性任务系统Cron
任务分发系统,集群管理系统Borg
分布式文件系统GFS
Mesos
管理报警响应及升级规则Escalator
故障跟踪工具(被动收集监控系统发出的所有报警信息,同时提供标记、分组和数据分析功能)Outalator
数据流水线MapReduce、Flume
大规模数据处理WorkflowSpanner ?
Incident Command System
构建系统Bazel
分布式文件系统GFS

Borg 调度服务(2003),开源产品 Kubernetes
Borg Name Service BNS 名称解析系统
Bigtable
Blaze/Bazel 构建
Rapid 发布
Midas Pacakge Management MPM 打包
Sisyphus 发布自动化框架
Chubby 强一致性存储系统
Prober 端到端检测(黑盒监控 Black Box Monitoring)
Protocol Buffer (Protobuf)
Alert Manager 报警管理服务
Dapper 分布式组件跟踪工具
Incident Command System 应急事件管理
IRC机器人
Dagger 依赖注入(Dependency Injection)工具
Protocol Buffer 数据交换格式
Auxon 自动化容量规划
gRPC Google RPC 框架
Doorman 协作性分布式客户端节流系统
Zipking 业务流追踪
Stackdriver

两点吐槽

一、绕口的翻译
P158:一个测试系统可以检测出一个MTTR为0的Bug。
P253:这种设计类型在服务领头人的工作量是分片的。
P327:Google几乎没有处理大规模消费者产品运行不能直接控制的客户端代码的经验。

二、强大的客户端
39469-20180421152131829-1112946961.png

全书各章节及小评

章节及名称感想
1 介绍
2 Google 生产环境:SRE视角
3 拥抱风险
4 服务质量目标
5 减少琐事
6 分布式系统的监控
7 Google 的自动化系统演进自动化的价值,自动化的层次
8 发布工程
9 简单化
10 基于时间序列数据进行有效报警
11 on-call 轮值
12 有效的故障排查手段
13 紧急事件响应
14 紧急事故管理
15 事后总结:从失败中学习
16 跟踪故障
17 测试可靠性
18 SRE部门中的软件工程实践
19 前端服务器的负载均衡不同数据中心之间的负载均衡策略最佳实践,基本的方案有DNS、VIP(网络负载均衡器 F5)
20 数据中心内部的负载均衡系统从应用层面谈如何进行负载均衡,如何让各台服务器的使用率更加均衡,避免出现闲忙不均的情况。如何更准确的识别出后端的真实状态的方法:跛脚鸭状态。
21 应对过载
22 处理连锁故障
23 管理关键状态:利用分布式共识来提高可靠性
24 分布式周期性任务系统
25 数据处理流水线
26 数据完整性:读写一致
27 可靠地进行产品的大规模发布
28 迅速培养SRE加入on-call
29 处理中断性任务
30 通过嵌入SRE的方式帮助团队从运维过载中恢复
31 SRE与其它团队的沟通与协作
32 SRE参与模式的演进历史
33 其他行业的实践经验
34 结语

参考资料:
1、Google Borgmon
2、Google使用Borg进行大规模集群的管理-2015
3、基于 Prometheus 的数据库监控
4、Prometheus
5、Google Protocol Buffer 的使用和原理
6、Doorman: Global Distributed Client Side Rate Limiting
7、SRE Book notes
8、Zipkin
9、morgue 事故总结工具
10、Incident management at Google
11、TerraForm
12、

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

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

相关文章

Microsoft Teams的Meet Now功能

今天,我们宣布完成了Skype for Business to Teams路线图中首次披露的几项关键会议功能。当个人联系,沟通和协作时,工作就自然而然的完成了,我们相信这些功能(除了我们2月的公告之外)使Microsoft Teams为所有…

Java泛型主题讨论

说明:在学习泛型这一知识点中,主要参考自《疯狂Java讲义》第7章P307-P330的泛型内容,因为是跳着阅读,所以前面的一些名词不是特别清楚,这里也做出适当备注,供自己识记与理解。 1.泛型 理解:说到…

从Microsoft Teams技术栈看前端技术发展趋势

在前不久的微软美国一年一度的Ignite大会上,微软宣布Microsoft Teams是微软历史上发展最快的应用。它将取代Skype for business,成为语音视频协作的主打产品。 我也有幸在上个月微软中国年度技术大会Tech Summit 2018上被邀请作为讲师讲解基于Teams平台…

Confluence Cloud的Teams Message Extension

Confluence Cloud的Message Extension现在正式登入Microsoft Teams。 它可用于团队频道和私人聊天,使您的对话更具描述性和信息性。 从Microsoft Teams应用商店获取Confluence Cloud应用程序并连接到Confluence Cloud实例。 连接后,您将能够搜索Conflue…

45 | 打蛇打七寸:精准测试

转载于:https://www.cnblogs.com/lmx0621/p/10614966.html

Teams App统计

周末闲来无事,统计了一下Teams的app商店里的app ( Teams App Store )。截至到现在(2018年11月)一共有145个app。要注意一点:如果app不是公开的(即单独安装到Office365租户里,并没有提交到office store&…

你必须要懂的APK瘦身知识

随着业务复杂度的逐渐增加,代码、资源也在不断的增加,此时你的APP大小也在增加。从用户层面来说,面对动辄几十兆的APP来说在非WIFI情况下还是会犹豫要不要下载,不下载你就可能因此失去了一个用户。从公司层面来讲,流量…

DHT网络

(基础技术) 现在有一种方法,可以通过磁力链接,例如magnet:?xturn:btih:0482e0811014fd4cb5d207d08a7be616a4672daa,就可以获取BT文件。 这个是通过DHT网络来实现的。 DHT网络是一个去中心化的,分布式信息存储系统。 存储的信息就…

Node文件模块

在上一篇文章中有提到,Node模块分为核心模块和文件模块,接下来就简单总结一下文件模块。 文件模块则是在运行时动态加载,需要完整的路径分析、文件定位、编译执行过程、速度相比核心模块稍微慢一些,但是用的非常多。这些模块需要我…

PHP GD库解析一张简单图片并输出

这里只演示一下2种颜色值的图片&#xff0c;简单描述下概念。 首先要安装下GD库。否则下面的代码运行不了。 $size getimagesize(2.png); // 获取图片大小 $res imagecreatefrompng(2.png); // 获取指定图片的资源对象for ($i 0; $i < $size[1]; $i) {for ($j 0; $j &…

开发Teams的messaging extension

什么是Messaging Extension Messaging Extension是微软Teams的一种十分有用的扩展方式。可以让用户发送adaptive cards。具体的说明不在这里展开了。可以阅读微软官方的详细说明&#xff1a; https://docs.microsoft.com/en-gb/microsoftteams/platform/concepts/messaging-e…

归并排序(转)

转载自&#xff1a;https://www.cnblogs.com/chengxiao/p/6194356.html 归并排序&#xff08;MERGE-SORT&#xff09;是利用归并的思想实现的排序方法&#xff0c;该算法采用经典的分治&#xff08;divide-and-conquer&#xff09;策略&#xff08;分治法将问题分(divide)成一些…

Site24x7 为Teams提供可智能 DevOps

我们生活在一个云的时代, SaaS 应用程序每天都在推动我们的生产力。作为一个消费者, 很难想象如果你最喜欢的应用无法访问&#xff0c;即使只是一秒钟无法访问。作为 SaaS业务, 更难以想象您的服务面临停机, 每一分钟停止服务都会花费大量的资金, 当然还损失客户的信任。Site24…

XUbuntu22.04之跨平台容器格式工具:MKVToolNix(二百零三)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

redis集群搭建踩坑笔记

推荐参考教程&#xff1a;https://blog.csdn.net/pucao_cug/article/details/69250101 错误&#xff1a; from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require from /usr/local/redis-3.0.6/src/redis-trib.rb:25:in <main> 解决&#xff1a; g…

Docker 创建镜像

文章首发自个人网站&#xff1a;https://www.exception.site/docker/docker-create-image 本文中&#xff0c;您将学习 Docker 如何创建镜像&#xff1f;Docker 创建镜像主要有三种&#xff1a; 基于已有的镜像创建&#xff1b;基于 Dockerfile 来创建&#xff1b;基于本地模板…

使用Azure Pipelines来实现Teams App的CI

我在之前的文章里介绍了如何一步步配置CI/CD来部署Teams App( 之前的文章 )&#xff0c;随着Azure DevOps的发展&#xff0c;微软推出了Azure Pipelines。在这篇文章中&#xff0c;主要介绍什么是Azure Pipelines&#xff0c;以及如何使用Azure Pipelines来进行Teams App的构建…

004-React入门概述

一、概述 参考地址&#xff1a;https://reactjs.org/docs/try-react.html 1.1、本地快速体验 <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>Hello World</title><script src"https://unpkg.com/react16/…

开发Teams Tabs应用程序

什么是Teams Tabs Tabs是微软Teams的一种十分有用的扩展方式。可以非常方便的和现有的网站或者网页应用进行整合。具体的说明不在这里展开了。可以阅读微软官方的详细说明&#xff1a; https://docs.microsoft.com/en-gb/microsoftteams/platform/concepts/tabs/tabs-overvie…

(转)关于SimpleDateFormat安全的时间格式化线程安全问题

想必大家对SimpleDateFormat并不陌生。SimpleDateFormat 是 Java 中一个非常常用的类&#xff0c;该类用来对日期字符串进行解析和格式化输出&#xff0c;但如果使用不小心会导致非常微妙和难以调试的问题&#xff0c;因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的&…