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.pswp.cn/news/278094.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/278094.shtml
英文地址,請注明出處:http://en.pswp.cn/news/278094.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

第8章 java中的并發工具類

8.1 等待線程完成的CountDownLatch 作用:讓一個線程等待其余線程完成之后在繼續執行,如主線程等待開啟服務的子線程執行完畢后主線程繼續執行,類似于join。 轉載于:https://www.cnblogs.com/AshOfTime/p/10608910.html

Microsoft Teams的Meet Now功能

今天,我們宣布完成了Skype for Business to Teams路線圖中首次披露的幾項關鍵會議功能。當個人聯系,溝通和協作時,工作就自然而然的完成了,我們相信這些功能(除了我們2月的公告之外)使Microsoft Teams為所有…

深入 Adobe Reader 保護模式 —— 第一部分 —— 設計

原作者:Liz McQuarrie, Ashutosh Mehra, Suchit Mishra, Kyle Randolph, Ben Roger 譯者:lordVice 校對: StrokMitream 看雪翻譯小組 介紹 我是 Kyle Randolph, 和我一起的還有負責 Acrobat 系列產品的安全團隊, 這些產…

Java泛型主題討論

說明:在學習泛型這一知識點中,主要參考自《瘋狂Java講義》第7章P307-P330的泛型內容,因為是跳著閱讀,所以前面的一些名詞不是特別清楚,這里也做出適當備注,供自己識記與理解。 1.泛型 理解:說到…

初學Vue.js,從頭來過~

之前上課也學過vue.js,但是一遍過下來,實話,沒有記住什么,所以決定自己在對照著文檔過一遍,所以之后會弄一些基礎的東西,還請大神們莫噴~~~~今天先給平臺打一個預防針,Young C 要來啦~~ 吼吼&…

從Microsoft Teams技術棧看前端技術發展趨勢

在前不久的微軟美國一年一度的Ignite大會上,微軟宣布Microsoft Teams是微軟歷史上發展最快的應用。它將取代Skype for business,成為語音視頻協作的主打產品。 我也有幸在上個月微軟中國年度技術大會Tech Summit 2018上被邀請作為講師講解基于Teams平臺…

LeetCode 最大正方形

在一個由 0 和 1 組成的二維矩陣內,找到只包含 1 的最大正方形,并返回其面積。 示例: 輸入: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0輸出: 4解法:判斷以某個點為正方形右下角時最大的正方形時,那它的上方,左方和左上…

solidity字符串拼接

如果你希望馬上開始學習以太坊DApp開發,可以訪問匯智網提供的出色的在線互動教程: 以太坊DApp實戰開發入門去中心化電商DApp實戰開發當你開始學習使用solidity開發以太坊智能合約之后,很快你會碰到一個問題: 在solidity中該如何拼…

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網絡是一個去中心化的,分布式信息存儲系統。 存儲的信息就…

Java基礎 Day04(個人復習整理)

分支結構 2、switch語句 因為if語句的級聯式最多只會處理三種情況,如果出現多情況 1>可以繼續使用if語句的級聯式,但是可能代碼的可讀性就會變差。  2>采用switch語句來解決。 switch語法格式: switch (存在多種情況的變量) {case 值…

java如何獲取一個double的小數位數

前言 看標題是不是覺得這是一個很簡單的問題,我一開始也是這么認為的,但是實際情況下,在各種情況下我們都進行了測試,發現很多實際情況是無法不盡如人意的。 方法分析 當前能想到的比較容易有下面幾種 1、直接使用double處理 2、將…

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 &…

Permutations CodeForces - 736D (矩陣逆)

對于刪除每個對(x,y), 可以發現他對答案的貢獻為代數余子式$A_{xy}$ 復習了一下線代后發現代數余子式可以通過伴隨矩陣求出, 即$A_{xy}A^*[y][x]$, 伴隨矩陣$A^*|A|A^{-1}$可以通過高斯消元$O(\frac{n^3}{\omega})$求出 #include <iostream> #include <algorithm> …

開發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)成一些…