首頁>技術>

分享使人快樂!

大型軟體系統生命週期的絕大部分都處於“使用”階段,而非“設計”或“實現”階段。那麼為什麼我們卻總是認為軟體工程應該首要關注設計和實現呢?在《SRE:Google運維解密》中,Google SRE的關鍵成員解釋了他們是如何對軟體進行生命週期的整體性關注的,以及為什麼這樣做能夠幫助Google成功地構建、部署、監控和運維世界上現存的軟體系統。透過閱讀《SRE:Google運維解密》,讀者可以學習到Google工程師在提高系統部署規模、改進可靠性和資源利用效率方面的指導思想與具體實踐——這些都是可以立即直接應用的寶貴經驗。  任何一個想要建立、擴充套件大規模整合系統的人都應該閱讀《SRE:Google運維解密》。《SRE:Google運維解密》針對如何構建一個可長期維護的系統提供了非常寶貴的實踐經驗

此書包含如下內容:

前言  xxxi序言  xxxv第Ⅰ部分 概覽第1 章 介紹  2系統管理員模式  2Google 的解決之道:SRE  4SRE 方法論  6確保長期關注研發工作  6在保障服務SLO 的前提下最大化迭代速度  7監控系統  8應急事件處理  8變更管理  9需求預測和容量規劃  9資源部署  10效率與效能  10小結  10第2 章 Google 生產環境:SRE 視角  11硬體  11管理物理伺服器的系統管理軟體  13管理物理伺服器  13儲存  14網路  15其他系統軟體  16分散式鎖服務  16監控與警報系統  16軟體基礎設施  17研發環境  17莎士比亞搜尋:一個示範服務  18使用者請求的處理過程  18任務和資料的組織方式  19第Ⅱ部分 指導思想第3 章 擁抱風險  23管理風險  23度量服務的風險  24服務的風險容忍度  25辨別消費者服務的風險容忍度  26基礎設施服務的風險容忍度  28使用錯誤預算的目的  30錯誤預算的構建過程  31好處  32第4 章 服務質量目標  34服務質量術語  34指標  34目標  35協議  36指標在實踐中的應用  37運維人員和終端使用者各關心什麼  37指標的收集  37彙總  38指標的標準化  39目標在實踐中的應用  39目標的定義  40目標的選擇  40控制手段  42SLO 可以建立使用者預期  42協議在實踐中的應用  43第5 章 減少瑣事  44瑣事的定義  44為什麼瑣事越少越好  45什麼算作工程工作  46瑣事繁多是不是一定不好  47小結  48第6 章 分散式系統的監控  49術語定義  49為什麼要監控  50對監控系統設定合理預期  51現象與原因  52黑盒監控與白盒監控  534 個黃金指標  53關於長尾問題  54度量指標時採用合適的精度  55簡化,直到不能再簡化  55將上述理念整合起來  56監控系統的長期維護  57Bigtable SRE :警報過多的案例  57Gmail :可預知的、可指令碼化的人工干預  58長跑  59小結  59第7 章 Google 的自動化系統的演進  60自動化的價值  60一致性  60平臺性  61修復速度更快  61行動速度更快  62節省時間  62自動化對Google SRE 的價值  62自動化的應用案例  63Google SRE 的自動化使用案例  63自動化分類的層次結構  64讓自己脫離工作:自動化所有的東西  66舒緩疼痛:將自動化應用到叢集上線中  67使用Prodtest 檢測不一致情況  68冪等地解決不一致情況  69專業化傾向  71以服務為導向的叢集上線流程  72Borg :倉庫規模計算機的誕生  73可靠性是最基本的功能  74建議  75第8 章 釋出工程  76釋出工程師的角色  76釋出工程哲學  77自服務模型  77追求速度  77密閉性  77強調策略和流程  78持續構建與部署  78構建  78分支  79測試  79打包  79Rapid 系統  80部署  81配置管理  81小結  82不僅僅只對Google 有用  83一開始就進行釋出工程  83第9 章 簡單化  85系統的穩定性與靈活性  85乏味是一種美德  86我絕對不放棄我的程式碼  86“負程式碼行”作為一個指標  87最小 API  87模組化  87釋出的簡單化  88小結  88第Ⅲ部分 具體實踐第10 章 基於時間序列資料進行有效報警  93Borgmon 的起源  94應用軟體的監控埋點  95監控指標的收集  96時間序列資料的儲存  97標籤與向量  98Borg 規則計算  99報警  104監控系統的分片機制  105黑盒監控  106配置檔案的維護  106十年之後  108第11 章 on-call 輪值  109介紹  109on-call 工程師的一天  110on-call 工作平衡  111數量上保持平衡  111質量上保持平衡  111補貼措施  112安全感  112避免運維壓力過大  114運維壓力過大  114奸詐的敵人—運維壓力不夠  115小結  115第12 章 有效的故障排查手段  116理論  117實踐  119故障報告  119定位  119檢查  120診斷  122測試和修復  124神奇的負面結果  125治癒  126案例分析  127使故障排查更簡單  130小結  130第13 章 緊急事件響應  131當系統出現問題時怎麼辦  131測試導致的緊急事故  132細節  132響應  132事後總結  132變更部署帶來的緊急事故  133細節  133事故響應  134事後總結  134流程導致的嚴重事故  135細節  135災難響應  136事後總結  136所有的問題都有解決方案  137向過去學習,而不是重複它  138為事故保留記錄  138提出那些大的,甚至不可能的問題:假如……  138鼓勵主動測試  138小結  138第14 章 緊急事故管理  140無流程管理的緊急事故  140對這次無流程管理的事故的剖析  141過於關注技術問題  141溝通不暢  141不請自來  142緊急事故的流程管理要素  142巢狀式職責分離  142控制中心  143實時事故狀態文件  143明確公開的職責交接  143一次流程管理良好的事故  144什麼時候對外宣佈事故  144小結  145第15 章 事後總結:從失敗中學習  146Google 的事後總結哲學  146協作和知識共享  148建立事後總結文化  149小結以及不斷最佳化  151第16 章 跟蹤故障  152Escalator  152Outalator  153聚合  154加標籤  155分析  155未預料到的好處  156第17 章 測試可靠性  157軟體測試的型別  158傳統測試  159生產測試  160創造一個構建和測試環境  163大規模測試  165測試大規模使用的工具  166針對災難的測試  167對速度的渴求  168釋出到生產環境  170允許測試失敗  170整合  172生產環境探針  173小結  175第18 章 SRE 部門中的軟體工程實踐  176為什麼軟體工程專案對SRE 很重要  176Auxon 案例分析:專案背景和要解決的問題  177傳統的容量規劃方法  177解決方案:基於意圖的容量規劃  179基於意圖的容量規劃  180表達產品意圖的先導條件  181Auxon 簡介  182需求和實現:成功和不足  183提升瞭解程度,推進採用率  185團隊內部組成  187在SRE 團隊中培養軟體工程風氣  187在SRE 團隊中建立起軟體工程氛圍:招聘與開發時間  188做到這一點  189小結  190第19 章 前端伺服器的負載均衡  191有時候硬體並不能解決問題  191使用DNS 進行負載均衡  192負載均衡:虛擬IP  194第20 章 資料中心內部的負載均衡系統  197理想情況  198識別異常任務:流速控制和跛腳鴨任務  199異常任務的簡單應對辦法:流速控制  199一個可靠的識別異常任務的方法:跛腳鴨狀態  200利用劃分子集限制連線池大小  201選擇合適的子集  201子集選擇演算法一:隨機選擇  202子集選擇演算法二:確定性演算法  204負載均衡策略  206簡單輪詢演算法  206最閒輪詢策略  209加權輪詢策略  210第21 章 應對過載  212QPS 陷阱  213給每個使用者設定限制  213客戶端側的節流機制  214重要性  216資源利用率訊號  217處理過載錯誤  217決定何時重試  218連線造成的負載  220小結  221第22 章 處理連鎖故障  223連鎖故障產生的原因和如何從設計上避免  224伺服器過載  224資源耗盡  225服務不可用  228防止軟體伺服器過載  228佇列管理  229流量拋棄和優雅降級  230重試  231請求延遲和截止時間  234慢啟動和冷快取  236保持呼叫棧永遠向下  238連鎖故障的觸發條件  238程序崩潰  239程序更新  239新的釋出  239自然增長  239計劃中或計劃外的不可用  239連鎖故障的測試  240測試直到出現故障,還要繼續測試  240測試最常用的客戶端  241測試非關鍵性後端  242解決連鎖故障的立即步驟  242增加資源  242停止健康檢查導致的任務死亡  242重啟軟體伺服器  242丟棄流量  243進入降級模式  243消除批處理負載  244消除有害的流量  244小結  244第23 章 管理關鍵狀態:利用分散式共識來提高可靠性  246使用共識系統的動力:分散式系統協調失敗  248案例1 :腦裂問題  249案例2 :需要人工干預的災備切換  249案例3 :有問題的小組成員演算法  249分散式共識是如何工作的  250Paxos 概要:協議示例  251分散式共識的系統架構模式  251可靠的複製狀態機  252可靠的複製資料儲存和配置儲存  252使用領頭人選舉機制實現高可用的處理系統  253分散式協調和鎖服務  253可靠的分散式佇列和訊息傳遞  254分散式共識系統的效能問題  255複合式Paxos :訊息流過程詳解  257應對大量的讀操作  258法定租約  259分散式共識系統的效能與網路延遲  259快速Paxos 協議:效能最佳化  260穩定的領頭人機制  261批處理  262磁碟訪問  262分散式共識系統的部署  263副本的數量  263副本的位置  265容量規劃和負載均衡  266對分散式共識系統的監控  270小結  272第24 章 分散式週期性任務系統  273Cron  273介紹  273可靠性  274Cron 任務和冪等性  274大規模Cron 系統  275對基礎設施的擴充套件  275對需求的擴充套件  276Google Cron 系統的構建過程  277跟蹤Cron 任務的狀態  277Paxos 協議的使用  277領頭人角色和追隨者角色  278儲存狀態  281運維大型Cron 系統  282小結  283第25 章 資料處理流水線  284流水線設計模式的起源  284簡單流水線設計模式與大資料  284週期性流水線模式的挑戰  285工作分發不均造成的問題  285分散式環境中週期性資料流水線的缺點  286監控週期性流水線的問題  287驚群效應  287摩爾負載模式  288Google Workflow 簡介  289Workflow 是模型—檢視—控制器(MVC)模式  290Workflow 中的執行階段  291Workflow 正確性保障  291保障業務的持續性  292小結  294第26 章 資料完整性:讀寫一致  295……第27 章 可靠地進行產品的大規模釋出  322……第Ⅳ部分 管理第28 章 迅速培養SRE 加入on-call  341……第29 章 處理中斷性任務  355……第30 章 透過嵌入SRE 的方式幫助團隊從運維過載中恢復  363……第 31 章 SRE 與其他團隊的溝通與協作  370……第32 章 SRE 參與模式的演進歷程  383……第Ⅴ部分 結束語第33 章 其他行業的實踐經驗  398……第34 章 結語  408附錄A 系統可用性  411附錄B 生產環境運維過程中的最佳實踐  412附錄C 事故狀態文件示範  417附錄D 事後總結示範  419附錄E 釋出協調檢查列表  423附錄F 生產環境會議記錄示範  425參考文獻  427索引  439

連結: https://pan.baidu.com/s/1_DR5K1HUZ1sa1hX8UEC5IA 提取碼: 67xc

16
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • OH MY ZSH