iT邦幫忙

2023 iThome 鐵人賽

DAY 18
1
自我挑戰組

SRE 照書養系列 第 18

Day 18 - SRE 照書養:Borg 的軟體基礎設施

  • 分享至 

  • xImage
  •  

安安!大家週一好!今天來看 Borg 的軟體基礎設施!這裡是今天讀的原文出處:The Production Environment at Google, from the Viewpoint of an SRE,那我們就開始吧!

書中提到,軟體架構旨在最有效地利用我們的硬體基礎架構。因此所有 Google 服務都使用名為 Stubby 的遠端流程呼叫 (RPC) 基礎設施進行通訊,而後來官方有釋出開源版本 gRPC。

什麼是 gRPC?

gRPC 是一種高效的開放式原型遠程過程調用 (RPC) 框架,由 Google 開發。它基於 Protocol Buffers(protobuf) 進行數據序列化和協議定義,並使用 HTTP/2 作為傳輸層協議。gRPC 支持多種編程語言和平台,可以在不同的服務器和客戶端之間進行跨語言互操作。 gRPC 具有以下特點:

  1. 高效:通過使用二進制協議和 HTTP/2 進行傳輸,gRPC 實現了高效的數據序列化和壓縮,從而提供了快速的傳輸速度和低延遲。
  2. 客戶端與服務器端代碼生成:gRPC 使用 protobuf 定義服務的接口和消息結構,並根據這些定義生成客戶端和服務器端的代碼。這使得開發人員可以更容易地進行開發和維護。
  3. 支持多種編程語言:gRPC 支持多種主流編程語言,包括 Java、C++、Python、Go 等,使得不同團隊能夠使用自己熟悉的語言進行開發。
  4. 支持多種傳輸協議:除了 HTTP/2 之外,gRPC 還支持 TCP、WebSocket 等傳輸協議,可以在不同的環境和場景中應用。

gRPC 在微服務架構中被廣泛應用,特別是在需要高效通訊和跨語言相互操作的場景下。它提供了一種強大的方式來設計和開發分佈式系統中的服務間通訊。

為什麼 GSLB 對 RPC 的負載均衡有良好的支持?

還記得 GSLB 嗎?在前幾章有提到 Day 16 - SRE 照書養:Borg 的網路,有興趣的朋友可以點開連結回顧唷!

  • 智能流量管理:GSLB 可以根據流量需求和服務器性能等因素,智能地將流量分配到最適合的 RPC 服務器上。它可以根據實時的流量情況實時地調整流量分配策略,以優化負載均衡效果。
  • 基於地理位置的負載均衡:GSLB 可以根據用戶的地理位置將請求發送到最近的 RPC 服務器上,從而減少延遲和網路擁塞。這對於全球分布的 RPC 非常重要,可以提供更好的用戶體驗。
  • 故障轉移和高可用性:GSLB可以監控RPC服務器的健康狀態,並在服務器故障或性能下降時自動將流量重新分配到其他可用的服務器上。這可以確保 RPC 服務的高可用性和持續可靠的運行。
  • 可擴展性和靈活性:GSLB 可以根據需要輕鬆地擴展 RPC 服務,並根據實際情況動態調整負載均衡策略。它可以根據服務器資源的變化和業務需求的變化進行自適應調整,以提供更好的性能和可靠性。

後記

今天瞭解了 Google 使用 Stubby 來作為通訊架構的基礎,也稍微理解 RPC 跟 gRPC 的定義,接著來看 Google 的研發環境如何吧!那就明天見拉!掰噗!


上一篇
Day 17 - SRE 照書養:Borg 的其他軟體系統
下一篇
Day 19 - SRE 照書養:Google 的開發環境
系列文
SRE 照書養30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言