https://juejin.im/post/5e43a077f265da576d6099a4web
「咱們在 1 月底的時候遇到第一波的流量突增,主要集中在上午和晚上,多是全國的學校已經明確了延期開學的事情,並通知各學校師生以在線教育的方式渡過困難期,當時,咱們在阿里雲上進行了緊急擴容來應對這波流量的突增。但咱們也清楚,等正式開學,還會有更多的流量進來,並且極可能高流量會成爲一種常態,這使得咱們開始從新審視當前的基礎設施是否能支撐將來的業務發展。」算法
這段時間,遇到這類狀況的客戶不僅這一家,咱們接到了大量的來自在線教育客戶的緊急諮詢,需求均是是否有一些不影響現有架構的無侵入工具,能應對流量的激增狀況,同時也會開始從新梳理架構和業務之間的關係。數據庫
本文整理了阿里在高可用架構建設過程當中的一些實踐,分爲架構設計、容量規劃、業務監控、線上管控、平常巡檢和常態化演練。安全
架構設計服務器
首先要實現架構的可視化。網絡
經過架構感知能夠全面瞭解雲上系統架構,以可視化的方式直觀呈現雲上資源、容器和應用間分層依賴關係。架構
服務器、存儲、網絡是現代雲平臺的基礎設施,隨着上雲戰略的推動,愈來愈多的企業將業務、服務、系統構建在雲平臺上。但開源軟件和雲服務的多樣性,開發語言的異構性,以及企業 IT 團隊的組織和能力差別,都提升了標準化的複雜性。運維
所以,架構感知功能應運而生,經過採集和分析操做系統及第三方標準接口,捕捉進程級的調用關係,並使用特徵庫算法識別進程所使用的技術組件,最後在服務器、容器和進程這三個維度上以可視化的方式展現應用架構,給用戶一張全面清晰的雲上架構地圖。微服務
其次,對強弱依賴進行梳理和應對。工具
任何強依賴都要儘量的轉化成弱依賴,由於強依賴自己意味着一榮俱榮,一損俱損。有了弱依賴的引入,一旦當平臺最大吞吐能力到達瓶頸時,除了入口或者 web 類應用的業務峯值流量限流能夠起到第一層的保護做用外,還能夠將預先標記爲弱依賴的服務平滑下線,從而達到節省更多資源保障核心計算能力的目的。
同時,還能夠去除非核心對核心服務的影響,最終經過合理高效的服務降級最大程度得到業務和成本的平衡。此外,若是還能實現只須要關心如何定義資源,即哪些方法/代碼塊須要保護,而不須要關注如何保護這個資源。而後經過添加規則來保護資源,規則添加即時生效。這類架構的設計會更加智能。
延伸閱讀:《阿里巴巴在微服務系統下架構可視化方面的探索》
容量規劃
外網仿真壓測:首先須要經過一些在線壓測工具高效快速構建同模型和量級的業務流量,從而全面驗證和探測雲上或雲下總體架構(從網絡接入到應用服務內再到存儲層和基礎設施)的瓶頸和問題。
全鏈路壓測:更進一步的,若是在生產環境想直接精準衡量業務容量的狀況,能夠經過更場景化的壓測解決方案,例如阿里雲 PTS 的相關解決方案使生產環境具有壓測流量識別和路由到指定影子存儲區域的能力,結合相關影子存儲區域的準備,而後作到一樣規模基礎數據上的業務流量壓測一樣的生產環境,最終達到精準衡量線上生產環境的能力,固然,對於壓測流水數據因爲已經隔離開,因此能夠方便安全的清理和維護。
延伸閱讀:《獨家揭祕 | 阿里怎麼作雙11全鏈路壓測?》
業務監控
監控的做用不言而喻,但如何經過開源的監控工具或者商業化的監控解決方案,來排查並解決各種複雜的線上問題是關鍵。咱們極可能須要通過查看配置項、登陸機器、掃描日誌甚至去查離線日誌等步驟,通過十幾分鍾才能定位到問題,有的時候甚至須要排查個大半天時間。
一些監控大多侷限在應用總體 RT、QPS 的監控和部分業務日誌的監控,報警發生時,大部分狀況只知道這個應用有了問題,但很難快速定位是哪裏出了問題,出了什麼問題。
以阿里雲的應用實時監控服務 ARMS 爲例,能夠能幫助用戶快速構建各類環境下完整的監控體系,實現從頁面到數據庫、從應用性能到基礎架構資源、從 IT 到業務的端到端監控。減小故障排查時間,下降跨部門溝通成本,最終下降由於故障和體驗差給企業帶來的損失。
延伸閱讀:《10 人,2 個月 | 蝦米音樂的監控體系升級之路》
線上管控
對於運行態或已有應用能夠經過 AHAS 探針形態在不修改代碼的狀況下進行業務洪峯的流量強力控制、消息場景的削峯填谷,而對於結構複雜的能夠將系統內或外不穩定的因素迅速降級讓業務保持穩定,同時還有單機過載保護(根據RT動態調節入口流量)的兜底能力。以上都在運行態和運維側便可完成引入和控制。
對於線上配置項和業務屬性值經過 AHAS 開關模塊的輕量級方案進行安全和統一管控,這部分能力即將開放,敬請期待。
延伸閱讀:《「國貨之光」 完美日記的微服務實踐和優化思路》
平常巡檢
風險的提早暴露:經過 Advisor 智能顧問對雲上主要雲資源進行全面的巡檢和風險識別,規則都來自於 TAM 面向客戶的技術體系積累及阿里生態內 SRE 最佳實踐的融合。基於前述的架構地圖和用戶的輸入,可進行更深層次的應用/業務架構層面的巡檢和建議。
常態化演練
AHAS 的故障演練模塊遵循混沌工程實驗原理並融合了阿里巴巴內部實踐的經驗,基於此用戶能夠創建流程完整並且可視化程度很高的故障演練體系,可方便的對基礎資源、應用服務、容器服務和雲平臺 4 層進行超多維度的編排和定製,同時產品還提供了豐富的成熟故障經驗庫。從而幫助用戶實現包括架構、業務、人員的全面高可用提高。故障演練在依賴治理、業務連續性提高和故障修復驗證等場景中都有巨大做用。
查看更多:https://yq.aliyun.com/articles/744111?utm_content=g_1000103476
上雲就看雲棲號:更多雲資訊,上雲案例,最佳實踐,產品入門,訪問:https://yqh.aliyun.com/