雲訊息佇列 ApsaraMQ 成本治理實踐(文末附好禮)

阿里云云原生發表於2024-06-13

作者:家澤、稚柳

前言:

在 AI 原生應用架構浪潮中,訊息佇列需支援大規模資料和複雜 AI 模型訓練與推理場景下的高效非同步通訊,其成本效益最佳化也日益受到重視。面對大模型或大資料量,訊息量顯著增加,雲訊息佇列 ApsaraMQ 致力於降低訊息佇列成本,減輕使用者負擔,同時,透過架構演進,提升資料處理能力、安全性、效能和資源利用率,讓 AI 開發者在更低的成本下獲得更高的效益。

背景

雲訊息佇列 ApsaraMQ 始終圍繞“高彈性低成本、更穩定更安全、智慧化免運維”三大核心方向進行演進和擴充。在追求“高彈性低成本”方面,雲訊息佇列 ApsaraMQ 全系列產品(涵蓋雲訊息佇列 RocketMQ、Kafka、RabbitMQ、MQTT 以及訊息服務 MNS)均已實現 Serverless 化,支援自適應彈性,秒級萬 QPS 彈性擴充套件,並採用按實際使用量付費的模式,例項成本平均降低 50%。

本文將探討雲訊息佇列 ApsaraMQ 在成本治理方面的實踐經驗,同時介紹在 Serverless 版本中的架構最佳化和新增能力。希望能夠為企業或個人提供成本控制參考,同時幫助大家更好地理解和使用雲訊息佇列 ApsaraMQ,以實現成本效益最大化。

資源成本與運維成本相輔相成

在軟體研發過程中,除了考慮產品迭代的開發成本及運營成本之外,執行時成本主要由資源成本和運維成本組成,兩者相輔相成。

  • 要降低資源成本,通常需要對現有架構進行調整。而確保架構變更的安全性和穩定性,則需要依賴完善的運維體系,包括有效的監控和快速恢復機制。
  • 引入監控和告警系統提高系統可靠性,可能會增加核心元件的資源開銷,以及影響產品效能。但若沒有完善的運維體系,在系統出現問題時,會導致更大的業務損失。

因此,我們應重視運維體系的建設,在降低成本的同時,確保系統的穩定性和可靠性。這需要我們在資源利用和運維管理之間找到平衡,以實現成本效益的最大化。

為了有效降低資源和運維成本,同時提高系統效能和穩定性、最佳化運維效率,我們採取了以下有效策略:

  1. 降低資源成本:

    • 提升軟體效能:最佳化產品軟體,增強自身效能,從而提高執行效率,減少資源佔用。
    • 降低資源消耗:透過技術手段,選擇價效比更高的產品依賴,提高資源使用效率。
    • 提高資源利用率:與運維團隊合作,監控資源利用率,確保與系統穩定性相匹配。
  2. 降低運維成本:

    • 監控告警指標覆蓋:建立完善的指標體系,全面反映系統執行狀況,確保效能提升和架構最佳化達到預期效果。
    • 快速恢復:最佳化 MTTR,依賴於強大的監控系統和自動化恢復能力,縮短故障發現時間和故障解決時間。
    • 無損升級:實現無感知升級,降低使用者升級成本,在不中斷服務、不干擾客戶使用的情況下進行升級。
    • 彈性伸縮:加強雲服務底層元件彈性伸縮能力,根據併發請求和後設資料用量動態調整資源,有效控制成本,提高資源利用率。

架構最佳化,提升產品效能降低資源消耗

以 Kafka 為例,開源 Kafka 是典型存算一體架構,通常基於本地檔案系統或本地盤自建,存在一定的侷限性:

1)單盤效能瓶頸: 單盤的吞吐量和容量受限,形成效能瓶頸。

2)資源靈活性差: 儲存和計算資源比例固定,不能靈活調整適配。

3)擴縮容耗時長: 節點是有狀態的,擴縮容需要涉及資料遷移,但受原始節點負載、資料量和磁碟吞吐等因素影響,TB 級資料通常需要小時級遷移時長,導致整體風險提高,運維壓力大。

4)儲存架構複雜: 物件儲存用於儲存冷資料,本地盤儲存熱資料,而本地盤需要多副本保證資料可靠性,從而增加網路資源消耗,同時,需要實現本地儲存檔案和二級儲存檔案之間的邏輯對映機制,增加了系統複雜度。

上圖是 Kafka 3.0 的架構,從技術層面實現存算分離,在計算層做到了無狀態,透過開源 ISR 機制進行主從選舉,同時引入 RDMA 協議,顯著減少整個系統在互動過程中的 CPU 消耗;儲存層採用盤古 DFS 作為共享儲存,訊息資料(CheckPoint 和 index 檔案依然寫入分散式檔案系統)寫入盤古 DFS 保證可靠性。

此外,還從以下幾個方面進行了儲存結構最佳化:

  • 記憶體聚批: 支援時間、空間和頻率等多種提交策略;減少網路抖動、長尾影響服務質量。
  • 使用者態快取: 支援多級快取機制,資料就近加速;冷熱資料分離,避免快取汙染。
  • 冷讀最佳化: 冷熱執行緒(協程)分離,避免全域性不可用;資料預載入、預讀,自適應調整 IO 大小。

效能測試資料顯示,最佳化後的 Kafka 3.0 在攢批和碎片化傳送場景,效能均優於開源版本。

資源消耗方面,Kafka 3.0 透過存算分離設計,簡化架構,降低資源成本。僅需一份儲存資源即可確保資料可靠性,整體儲存成本降低約 30%。

軟硬結合,進一步提升產品效能

雲訊息佇列 ApsaraMQ 透過與雲原生晶片倚天進行了深度最佳化,進一步提升了產品效能。

為了充分發揮倚天晶片的優勢,我們在訊息收發鏈路上引入了自動聚合器,透過批次計算提高效率。在訊息序列化方面,我們採用了更緊湊的資料結構,減少了資料複製和傳輸開銷。同時,我們將序列化過程拆分為多個子任務並行執行,充分利用倚天晶片的多核處理能力和 ARM 指令集最佳化。

透過這些針對性的最佳化措施,最終實現了在相同機型和流量條件下,倚天晶片的訊息延遲比 X86 架構降低了 20%,訊息吞吐量提高了 30%。

增強運維能力,降低運維成本

為了提高運維效率、降低運維成本,同時確保系統的穩定性和可靠性,我們提供了以下增強能力:

監控體系建設: 透過監控關鍵效能指標來最佳化資源使用和控制成本。雲訊息佇列 ApsaraMQ 覆蓋了全面的監控和告警指標,幫助使用者瞭解資源使用情況並調整資源分配,包括物理節點、網路、磁碟、IO 等作業系統指標監控,以及訊息收發量、RPC 異常次數、訊息堆積等業務指標監控。同時,引入端到端巡檢,模擬使用者收發 SDK 主要介面行為,實時發現系統異常,分鐘級探測感知和報警。

訊息健康管家: ApsaraMQ Copilot for RocketMQ 提供全鏈路健康度智慧巡檢與診斷的先進功能,成為構建高效訊息整合鏈路的重要工具。透過全面監控、量化分析與配置可定製性、簡化診斷流程等關鍵操作,全面升級其監控和診斷能力。

無損升級: RocketMQ 5.2.0 版本新增服務端升級時主動通知客戶端的功能,實現優雅下線。客戶端接收通知後自動重連到未升級節點並重試上次傳送的訊息,從而保障業務連續性。

彈性伸縮: 彈性伸縮是 ApsaraMQ Serverless 版本的核心功能,適用於業務量波動較大的場景,透過監控業務流量、叢集水位和資源剩餘量,自動進行垂直或水平擴充套件,或在叢集例項間進行彈性排程。目前已達到秒級萬 QPS 彈性擴充套件,滿足大規模業務需求。


好禮放送

  1. 阿里雲 618 創新加速季正在火熱進行中,為企業提供豐富的補貼和禮包,助力數字化創新。雲訊息佇列 ApsaraMQ 也帶來了精選產品的折扣優惠和資源包。

歡迎訪問活動頁面,瞭解更多詳情:https://www.aliyun.com/activity/Mid-promotion/NativeCloud618

  1. 隨著雲訊息佇列 ApsaraMQ 產品品牌升級(https://www.aliyun.com/product/ons ),我們正在開展有獎調研活動,收集使用者對"ApsaraMQ"產品品牌的寶貴意見。

歡迎點選此處進行參與,我們將從參與者中隨機抽取 5 名幸運使用者,送出精美禮品!

相關文章