基於eBPF微服務整合管理框架之設計與實作(2/2)

專案詳細資料

Description

微服務架構是雲端服務設計模式的趨勢,將整體服務切分為多個彼此獨立且功能單一的微服務,使整體服務變得更有彈性及效率。本計畫將設計與實作微服務整合管理框架,包含監測、負載平衡及限流等功能。以往的負載平衡器(LoadBalancer)皆針對主機層級進行分流,但微服務卻是在主機中的多個容器運行,導致分流無法達到最佳效果。為了提供適合微服務架構的負載平衡器,必須先針對微服務層級進行系統效能監控。而微服務會根據需求的變動來請求或釋放資源,所以必須先掌握即時系統狀態,方能設計演算法來選擇微服務容器以最佳化地分配流量,使微服務之間可高效率協同運作,讓整體服務具有更高的吞吐量(throughput)與服務品質(Quality of Service, QoS)。本計畫分三年進行,因eBPF能以事件驅動(Event-Driven)的方式快速取得系統資訊,所以第一年將提出一個基於eBPF之Multi-Granularity Sampling Agent(MGSA)來採集Network、CPU、Memory等效能指標,並實作一監控平台。該平台可對資料進行聚合(Aggregation)及查詢(Query),提供更彈性且全面的系統狀態。第二年延續第一年的成果,利用MGSA收集的效能指標,提出動態複合指標權重演算法(Dynamic Multi-Metric Weight Algorithm),根據各項效能指標給予微服務容器適當的權重,並儲存於本計畫為容器所設計的資料結構中。本年度將開發一針對微服務的負載平衡器,會根據權重來動態選擇合適的微服務容器。第三年度再加上具預熱功能之限流(Rate Limiting)及存取限制(Access Control)等流量控制元件,避免初期高流量或瞬間流量的衝擊所可能導致的系統故障,以提供高品質且穩定的服務。第三年度也將為限流元件設計一個低空間複雜度(Space Complexity)的資料結構來精準收集百毫秒等級的資料。最後整合三年成果,透過高即時性的監控機制來提供高效能且可動態調整的負載平衡器與限流等元件,確保微服務雲端環境的可靠性。計畫主持人的團隊已有參與多項開源專案之經驗,包括kubernetes、gin-limiter、gin-oauth2-example、thor、contrib及golangweekly等專案,未來將規劃以開源專案執行本計畫。
狀態已完成
有效的開始/結束日期1/08/2331/07/24

聯合國永續發展目標

聯合國會員國於 2015 年同意 17 項全球永續發展目標 (SDG),以終結貧困、保護地球並確保全體的興盛繁榮。此專案有助於以下永續發展目標:

  • SDG 9 - 產業、創新與基礎設施

Keywords

  • 容器
  • 負載平衡
  • 擴展伯克利包過濾器
  • 微服務

指紋

探索此專案觸及的研究主題。這些標籤是根據基礎獎勵/補助款而產生。共同形成了獨特的指紋。