天天看點

從一位線上教育客戶的緊急咨詢說起

“我們在 1 月底的時候遇到第一波的流量突增,主要集中在上午和晚上,可能是全國的學校已經明确了延期開學的事情,并通知各學校師生以線上教育的方式渡過困難期,當時,我們在阿裡雲上進行了緊急擴容來應對這波流量的突增。但我們也清楚,等正式開學,還會有更多的流量進來,而且很可能高流量會成為一種常态,這使得我們開始重新審視目前的基礎設施是否能支撐未來的業務發展。”

這段時間,遇到這類情況的客戶不隻這一家,我們接到了大量的來自線上教育客戶的緊急咨詢,需求均是是否有一些不影響現有架構的無侵入工具,能應對流量的激增情況,同時也會開始重新梳理架構和業務之間的關系。

本文整理了阿裡在高可用架建構設過程中的一些實踐,分為架構設計、容量規劃、業務監控、線上管控、日常巡檢和常态化演練。

架構設計

首先要實作架構的可視化。

通過架構感覺可以全面了解雲上系統架構,以可視化的方式直覺呈現雲上資源、容器和應用間分層依賴關系。

伺服器、存儲、網絡是現代雲平台的基礎設施,随着上雲戰略的推進,越來越多的企業将業務、服務、系統建構在雲平台上。但開源軟體和雲服務的多樣性,開發語言的異構性,以及企業 IT 團隊的組織和能力差異,都提高了标準化的複雜性。

是以,架構感覺功能應運而生,通過采集和分析作業系統及第三方标準接口,捕捉程序級的調用關系,并使用特征庫算法識别程序所使用的技術元件,最後在伺服器、容器和程序這三個次元上以可視化的方式展示應用架構,給使用者一張全面清晰的雲上架構地圖。

其次,對強弱依賴進行梳理和應對。

任何強依賴都要盡可能的轉化成弱依賴,因為強依賴本身意味着一榮俱榮,一損俱損。有了弱依賴的引入,一旦當平台最大吞吐能力到達瓶頸時,除了入口或者 web 類應用的業務峰值流量限流可以起到第一層的保護作用外,還可以将預先标記為弱依賴的服務平滑下線,進而達到節省更多資源保障核心計算能力的目的。

同時,還可以去除非核心對核心服務的影響,最終通過合理高效的服務降級最大程度獲得業務和成本的平衡。此外,如果還能實作隻需要關心如何定義資源,即哪些方法/代碼塊需要保護,而不需要關注如何保護這個資源。然後通過添加規則來保護資源,規則添加即時生效。這類架構的設計會更加智能。

延伸閱讀:

《阿裡巴巴在微服務系統下架構可視化方面的探索》

容量規劃

外網仿真壓測:

首先需要通過一些線上壓測工具高效快速建構同模型和量級的業務流量,進而全面驗證和探測雲上或雲下整體架構(從網絡接入到應用服務内再到存儲層和基礎設施)的瓶頸和問題。

全鍊路壓測:

更進一步的,如果在生産環境想直接精準衡量業務容量的情況,可以通過更場景化的壓測解決方案,例如阿裡雲 PTS 的相關解決方案使生産環境具備壓測流量識别和路由到指定影子存儲區域的能力,結合相關影子存儲區域的準備,然後做到同樣規模基礎資料上的業務流量壓測同樣的生産環境,最終達到精準衡量線上生産環境的能力,當然,對于壓測流水資料由于已經隔離開,是以可以友善安全的清理和維護。

《獨家揭秘 | 阿裡怎麼做雙11全鍊路壓測?》

業務監控

監控的作用不言而喻,但如何通過開源的監控工具或者商業化的監控解決方案,來排查并解決各類複雜的線上問題是關鍵。我們很可能需要經過檢視配置項、登入機器、掃描日志甚至去查離線日志等步驟,經過十幾分鐘才能定位到問題,有的時候甚至需要排查個大半天時間。

一些監控大多局限在應用整體 RT、QPS 的監控和部分業務日志的監控,報警發生時,大部分情況隻知道這個應用有了問題,但很難快速定位是哪裡出了問題,出了什麼問題。

以阿裡雲的應用實時監控服務 ARMS 為例,可以能幫助使用者快速建構各種環境下完整的監控體系,實作從頁面到資料庫、從應用性能到基礎架構資源、從 IT 到業務的端到端監控。減少故障排查時間,降低跨部門溝通成本,最終降低因為故障和體驗差給企業帶來的損失。

《10 人,2 個月 | 蝦米音樂的監控體系更新之路》

線上管控

對于運作态或已有應用可以通過 AHAS 探針形态在不修改代碼的情況下進行業務洪峰的流量強力控制、消息場景的削峰填谷,而對于結構複雜的可以将系統内或外不穩定的因素迅速降級讓業務保持穩定,同時還有單機過載保護(根據RT動态調節入口流量)的兜底能力。以上都在運作态和運維側即可完成引入和控制。

對于線上配置項和業務屬性值通過 AHAS 開關子產品的輕量級方案進行安全和統一管控,這部分能力即将開放,敬請期待。

《“國貨之光” 完美日記的微服務實踐和優化思路》

日常巡檢

風險的提前暴露:通過 Advisor 智能顧問對雲上主要雲資源進行全面的巡檢和風險識别,規則都來自于 TAM 面向客戶的技術體系積累及阿裡生态内 SRE 最佳實踐的融合。基于前述的架構地圖和使用者的輸入,可進行更深層次的應用/業務架構層面的巡檢和建議。

常态化演練

AHAS 的故障演練子產品遵循混沌工程實驗原理并融合了阿裡巴巴内部實踐的經驗,基于此使用者可以建立流程完整而且可視化程度很高的故障演練體系,可友善的對基礎資源、應用服務、容器服務和雲平台 4 層進行超多元度的編排和定制,同時産品還提供了豐富的成熟故障經驗庫。進而幫助使用者實作包括架構、業務、人員的全面高可用提升。故障演練在依賴治理、業務連續性提升和故障修複驗證等場景中都有巨大作用。

《實踐 | 混沌工程工具 ChaosBlade 建構高可用的分布式系統》

“宅”在家,做主播

遠端辦公,不孤單

除了視訊會議,當然還要連麥玩直播

在家運維不用慌系列直播,火熱進行中·····

阿裡雲程式員/中間件小姐姐/中間件小師妹

居家開課

快來加入我們吧

從一位線上教育客戶的緊急咨詢說起