一、Google生產(chǎn)環(huán)境
1、物理服務(wù)器
- 物理服務(wù)器(Machine),軟件服務(wù)器(Server),兩者之間沒有專屬關(guān)系;
- 10臺(tái)物理服務(wù)器組成機(jī)柜(Rack),數(shù)臺(tái)機(jī)柜組成一個(gè)機(jī)柜排(Row),一排或多排機(jī)柜組成一個(gè)集群(Cluster),多個(gè)集群組成一個(gè)數(shù)據(jù)中心(Datacenter),多個(gè)相鄰的數(shù)據(jù)中心組成一個(gè)園區(qū)(Campus);
- 幾百臺(tái)自己制造的交換機(jī)以Clos連接方式組合成有幾萬(wàn)個(gè)虛擬端口的交換機(jī)(Jupiter)。最大的一個(gè)數(shù)據(jù)中心內(nèi),Jupiter提供1.3Pb/s的交叉帶寬;
- 數(shù)據(jù)中心由全球覆蓋的B4骨干網(wǎng)連接。B4基于SDN技術(shù),支持動(dòng)態(tài)帶寬管理;
2、物理服務(wù)器管理軟件——Borg
- Borg是一個(gè)分布式集群操作系統(tǒng),與Apache Mesos類似,是Kubernetes的前身。負(fù)責(zé)在集群層面管理任務(wù)的編排工作;
- Borg運(yùn)行任務(wù)(Job),為每一個(gè)實(shí)例安排一臺(tái)物理服務(wù)器。然后監(jiān)控實(shí)例,當(dāng)有異常發(fā)生時(shí),可以終止重啟,或者遷移到另一臺(tái)物理服務(wù)器上重啟;
- Borg名稱解析系統(tǒng)(BNS),負(fù)責(zé)將任務(wù)實(shí)例名稱和編號(hào)轉(zhuǎn)換成具體的IP地址和端口;
- Borg負(fù)責(zé)將具體資源分配給每個(gè)任務(wù)。每個(gè)任務(wù)需要在配置文件中聲明它需要的具體資源(如,CPU、內(nèi)存等)。Borg會(huì)根據(jù)配置合理分配到不同的物理服務(wù)器,并會(huì)將某個(gè)任務(wù)的實(shí)例分散到兩個(gè)以上的機(jī)柜,避免單點(diǎn)故障;
- Borg監(jiān)控到一個(gè)任務(wù)實(shí)例資源使用超出了它的分配范圍,就會(huì)殺掉這個(gè)實(shí)例并重啟。
3、存儲(chǔ)
- 存儲(chǔ)跟Hadoop的HDFS類似,Google三大分布式相關(guān)的論文之一Google File System就是說(shuō)這個(gè)的。
- 最底層是D服務(wù),運(yùn)行在所有物理服務(wù)器上。上一層是Colossus,是一個(gè)覆蓋了整個(gè)集群的文件系統(tǒng),是GFS的改進(jìn)版本。
- 上層幾種數(shù)據(jù)庫(kù):Bigtable、Spanner、Blobstore等等。
4、網(wǎng)絡(luò)
- 帶寬控制器(BwE)負(fù)責(zé)管理所有可用帶寬。
- 全球負(fù)載均衡系統(tǒng)(GSLB)負(fù)責(zé)三個(gè)層面的負(fù)載均衡:1)根據(jù)地理位置信息進(jìn)行負(fù)責(zé)均衡DNS請(qǐng)求;2)用戶服務(wù)層面進(jìn)行負(fù)載均衡;3)在遠(yuǎn)程調(diào)用(RPC)層面進(jìn)行負(fù)載均衡。
5、其它系統(tǒng)軟件
- Chubby分布式鎖服務(wù),可以處理異地、跨機(jī)房級(jí)別的鎖請(qǐng)求,使用Paxos協(xié)議提供分布式一致性;
- Borgmon監(jiān)控程序,定期從監(jiān)控對(duì)象抓取監(jiān)控指標(biāo)(Metric),觸發(fā)告警或存儲(chǔ);
- Stubby遠(yuǎn)程調(diào)用通信,開源實(shí)現(xiàn)是gRPC;
- Protocol Buffer是Google RPC的傳輸格式,與Apache Thrift類似。
思考
高度一致的自研硬件、網(wǎng)絡(luò)設(shè)備、系統(tǒng)軟件、數(shù)據(jù)庫(kù)、負(fù)載均衡器、DNS等構(gòu)成了Google的運(yùn)維對(duì)象。對(duì)于所有的運(yùn)維人員來(lái)說(shuō),這是一個(gè)天下大同的世界。沒有不同廠商、不同協(xié)議、沒有架構(gòu)差異、沒有到處洋溢異域風(fēng)情的運(yùn)行環(huán)境,簡(jiǎn)化掉了相當(dāng)程度的傳統(tǒng)運(yùn)維工作,這是理想的SRE模式運(yùn)行的土壤。那么相比運(yùn)營(yíng)所處的運(yùn)維環(huán)境,從網(wǎng)絡(luò)設(shè)備到網(wǎng)管、從基礎(chǔ)軟件到業(yè)務(wù)系統(tǒng),是一個(gè)完全的多廠商、多技術(shù)的復(fù)雜環(huán)境。隨便一個(gè)有10年歷史的運(yùn)營(yíng)商,網(wǎng)管軟件幾十上百種,網(wǎng)絡(luò)設(shè)備型號(hào)幾百上千種,板卡備件成千上萬(wàn)種。要推行SRE,首先就要解決運(yùn)營(yíng)商多廠商、多技術(shù)的問(wèn)題,這樣才能避免SRE成為網(wǎng)管定制團(tuán)隊(duì),才能真正聚集自動(dòng)化運(yùn)維和業(yè)務(wù)敏捷。