10分鐘瞭解谷歌SRE

概述

  • 什麼是SRE

SRE(Site Reliability Engineering)翻譯成中文就是網站穩定性工程師,專門負載網站的穩定運行。說到這個職責可能很多人會聯想到運維工程師,兩者確實有相似之處,但是也不盡然。SRE本質上還是軟件工程師,招聘時按照軟件開發工程師的要求來招聘,通過軟件工程理論來管理工程,力圖重新定義運維,推進業務進化。

SRE的概念最早由谷歌提出,其他互聯網公司爭相跟進,目前實踐的比較好的是谷歌和奈飛(neflix)。奈非的核心SRE據說只有個位數,他們運營着全球190國家的上億用戶,用實踐證明了SRE理論的正確性。

  • SRE和DevOps有什麼區別?

DevOps和SRE首先兩者不衝突,Devpos是一種在不斷演進的概念,主要是強調運維操作應該系統化和自動化,產品的設計研發運維工程應該統籌考慮,有機結合,利用軟件工程的理論來進行運維工作。SRE是DevOps思想的一個成功實踐,用程序設計來類比的話,DevOps可以看做一接口,而SRE則是在這個接口上的一個實現。

職責

SRE是做什麼的?SRE的工作內容主要包括以下內容

  • 容量規劃
  • 生產系統監控報警
  • 部署,發佈變更
  • 值班

 

具體實踐

  • 硬件

以集羣爲單位進行管理,使用一個叫做borg的集羣控制系統

10臺服務器=1個機櫃

多個機櫃=1機櫃排

多個機櫃排=1個集羣

多個集羣=1個數據中心

多個相鄰數據中心=1個園區

  • 網絡

使用基於SDN技術的中心化網絡路由方案,而不是使用分佈式的路由方案。這個的好處就是高效,將最佳路徑的計算從各個交換設備上轉移到中心化控制器上去,使得路由的控制更加快速和有效,並且可以使用廉價的交換設備,降低總體的成本。

在網絡帶寬的分配上,谷歌使用一套叫做BwE的帶寬控制器,集中化的控制可以更高效的分配帶寬,當發生網絡擁堵的時候,可以迅速的將流量調度到空閒的設備上去,提高網絡帶寬的使用效率以及服務質量。

  • 負載均衡

1.根據地域,將域名解析到就近的服務器地址

2.基於用戶ip的就近服務器地址下發

3.服務器間的rpc負載均衡

谷歌的GSLB可以通過計算qps和剩餘容量來自動調度用戶的請求

  • 服務質量

1.SLI(服務質量指標)

服務質量的量化指標,例如100分是最好的服務質量,80分良好,60分及格

2.SLO(服務質量目標)

SLI的目標值,例如我們規定SLI需要達到80分,則SLO是80

3.SLA(服務質量協議)

服務商與用戶間的協議,達到或者沒達到SLO的話,怎麼處理

SLO應該被作爲SRE觀測的重點指標,它代表了當前對用戶的服務質量,當SLO不達標時,SRE應該採取行動制定相應的計劃去提高SLI

  • 減少瑣事

瑣事,瑣事就是搬磚,簡單,重複,可自動化的手工工作,並且沒有長期價值。這種工作應該被自動化替代,例如幫同事上傳文件到某機器上,幫同事重啓一下某個服務等瑣碎工作。

  • 監控報警

1.監控

a.黑盒監控

從客戶端的角度出發,監控服務的被調失敗率,被調耗時等

b.白盒監控

從服務器的角度出發,監控服務的重要函數調用和接口的失敗率,耗時等

2.報警

報警分爲3級:緊急報警,工單,日誌。

緊急報警出現時,需要立即採取措施,否則將會有故障發生。緊急且重要

工單:不需要立即行動,重要不緊急

日誌:有問題時進行分析使用

  • 值班與故障響應

1.建立故障處理流程,並持續優化它

2.建立和維護一套完備的故障演習流程

3.事後總結,避免重蹈覆轍

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章