天天看點

阿裡資深架構師推薦:阿裡高可用架建構設實踐經驗1 背景2 存在的問題3 高可用架建構設4 阿裡高可用工具5 總結

1 背景

        随着業務線上化網際網路化的高速發展,企業對核心業務系統的穩定性、可靠性、有效性、業務連續性等有了更高的要求。采用高可用系統架構支援重要系統、為關鍵業務提供7x24的不間斷服務,已經成為衆多企業保障業務穩定、持續運轉的主要選擇。但如何從海量實踐中提煉出值得借鑒複制的高可用架構之道,實作适合自身的高可用系統架構,是需要企業深思熟慮的問題。阿裡巴巴在多年雙11高并發、高可用和高客戶體驗要求背景下積累了相應的技術體系,本文将依據高并發使用者、突發高流量場景下的真實案例,分享阿裡在高可用架建構設過程中的經驗總結,以期待幫助更多企業做好業務高可用建設。

2 存在的問題

2.1 非常複雜的服務端

        通常從用戶端到達服務端會涉及到的關鍵節點有CDN、動态加速、高防、應用防火牆、4/7層負載均衡、前後端服務集、緩存、資料庫存儲、中間件、基礎設施層等等,整個鍊路都面臨着不确定性。後端服務的服務規模化問題更是複雜和難以評估檢驗,這其中任何一個節點出現問題都會導緻服務不可用。如何能有效地全面檢驗服務端吞吐能力、發現所有問題甚至是做好容量規劃,具備對峰值的流控排程能力是所有企業都需要思考和應對的。

2.2 缺乏提前規劃的服務能力

        如果企業沒有對自己的服務能力進行提前規劃,沒有提前做好關鍵節點的規劃,對線上的應急措施如彈性擴容、線上防護、熔斷降級等都不具備,那麼在面對突發問題時,就很難保證核心接口能夠穩定對外服務。一旦出現問題,很多企業無法采取正确的手段,匆匆擴容非但不能解決問題,反而帶來更多不可預期的問題,導緻問題進一步的惡化。此外,運維側的隐患問題如故障影響面、配置一緻性、監控和根因分析相關工具、複雜人員組織的高可用程度等,如果沒有足夠的演練和驗證方案,同樣會在關鍵時刻出現問題。

3 高可用架建構設

3.1 架構設計

        首先要實作架構可視化。伺服器、存儲、網絡是現代雲平台的基礎設施。随着上雲戰略的推進,越來越多的企業将業務、服務、系統建構在雲平台上。利用阿裡AHAS的架構感覺可以全面了解雲上系統架構,以可視化的方式直覺呈現雲資源、容器和應用間分層依賴關系。

        開源軟體和雲服務的多樣性、開發語言的異構性,以及企業IT團隊的組織和能力差異,都提高了标準化的複雜性。架構感覺功能應運而生,通過采集和分析作業系統及第三方标準接口,捕捉程序級的調用關系,并使用特征庫算法識别程序所使用的技術元件,最後在伺服器、容器和程序這三個次元上以可視化的方式展示應用架構,給使用者一張全面清晰的雲上架構地圖。圍繞這張基礎的視圖,會持續衍生出雲資源、容器和應用架構多元度的架構視圖,還有搬站、重構梳理和資産管理等場景化的視圖,真正做到CMDB可視化,驅動問題發現助推業務增長,釋放雲上的更多元度的紅利。

        而關于強弱依賴治理,因為強依賴本身意味着一榮俱榮,一損俱損。結合AHAS SDK的引入和預埋,一旦當平台最大吞吐能力到達瓶頸時,除了入口或者web類應用的業務峰值流量限流可以起到第一層的保護作用外,還可以将預先标記為弱依賴的服務平滑下線,進而達到節省更多資源保障核心計算能力的目的,同時還可以去除非核心對核心服務的影響,最終通過合理高效的服務降級最大程度獲得業務和成本的平衡。而使用了AHAS SDK之後在編碼時,隻需要關心如何定義資源,即哪些方法/代碼塊需要保護,而不需要關注如何保護這個資源。然後通過添加規則來保護資源,規則添加即時生效。

阿裡資深架構師推薦:阿裡高可用架建構設實踐經驗1 背景2 存在的問題3 高可用架建構設4 阿裡高可用工具5 總結

                                                                   圖1:AHAS架構感覺及可視化

3.2 容量規劃

        外網仿真壓測:首先可以通過PTS高效快速建構同模型和量級的業務流量,對于開源主流的JMeter腳本可以直接100%相容,對于沒有現成腳本的情況可以使用PTS自研的可視化互動進行0編碼編排,編排完成後從公網的各地域營運商發起,真實模拟特定業務場景下的外網流量,進而全面驗證和探測雲上或雲下整體架構(從網絡接入到應用服務内再到存儲層和基礎設施)的瓶頸和問題。

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

阿裡資深架構師推薦:阿裡高可用架建構設實踐經驗1 背景2 存在的問題3 高可用架建構設4 阿裡高可用工具5 總結

                                                                   圖2:全鍊路壓測核心流程

3.3 業務監控

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

阿裡資深架構師推薦:阿裡高可用架建構設實踐經驗1 背景2 存在的問題3 高可用架建構設4 阿裡高可用工具5 總結

                                                                   圖3:ARMS業務監控體系

3.4 線上管控

        對于運作态或已有應用可以通過AHAS探針形态(除AHAS SDK外更輕的方案)在不修改代碼的情況下進行業務洪峰的流量強力控制、消息場景的削峰填谷,而對于結構複雜的可以将系統内或外不穩定的因素迅速降級讓業務保持穩定,同時還有單機過載保護(根據RT動态調節入口流量)的兜底能力,甚至很多時候系統來不及壓測或者不知道配置什麼規則的時候單機智能過載保護是個很好的功能和方法。以上都在運作态和運維側即可完成引入和控制。對于線上配置項和業務屬性值通過AHAS開關子產品的輕量級方案進行安全和統一管控,這部分能力即将開放,敬請期待。

阿裡資深架構師推薦:阿裡高可用架建構設實踐經驗1 背景2 存在的問題3 高可用架建構設4 阿裡高可用工具5 總結

                                                                   圖4:線上高可用防護布局

3.5 日常巡檢

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

3.6 常态化演練

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

阿裡資深架構師推薦:阿裡高可用架建構設實踐經驗1 背景2 存在的問題3 高可用架建構設4 阿裡高可用工具5 總結

                                                                   圖5:故障演練體系

4 阿裡高可用工具

4.1 應用高可用服務AHAS

        專注于提高應用高可用能力的雲工具産品,提供應用架構自動探測,故障注入式高可用能力評測和一鍵流控降級等功能,可以快速低成本地提升應用可用性。

https://www.aliyun.com/product/ahas

4.2 性能測試PTS

        面向所有技術背景人員的雲化測試工具。有别于傳統工具的繁複,PTS以網際網路化的互動,提供性能測試、API調試和監測等多種能力。自研和适配開源的功能都可以輕松模拟任意體量的使用者通路業務的場景,任務随時發起,免去繁瑣的搭建和維護成本。更是緊密結合監控、流控等兄弟産品提供一站式高可用能力,高效檢驗和管理業務性能。

https://www.aliyun.com/product/pts

4.3 智能顧問Advisor

        智能顧問Advisor根據使用者情況,結合阿裡雲長期以來的客戶側最佳實踐,基于TAM(Technical Account Management)服務體系的核心基礎能力,全方位地為使用者提供雲資源、應用架構、業務性能及安全上的診斷和優化建議。現在,越來越多的阿裡雲雲原生客戶可以通過Advisor便捷地享受專業的TAM基礎服務,更好地用好雲。同時,我們也會圍繞Advisor為有相關需求的客戶提供專項深度的TAM服務。

https://www.aliyun.com/product/advisor

4.4 企業級高可用架構解決方案

        脫胎于阿裡巴巴電商業務下的高可用技術體系,經過所有的雙11流量洪峰考驗、日常穩定性考驗,已經服務于阿裡全生态并開始服務外部的企業客戶,為企業提供包括營銷活動支撐、整體成本控制(全鍊路壓測、容量規劃、流量控制、排程)、應急應對能力(開關和預案)、容災逃逸能力(架構感覺、故障演練、異地多活、單元化)等在内的解決方案。

https://www.aliyun.com/solution/ehasl

4.5 混沌測試工具ChaosBlade

        ChaosBlade是一款遵循混沌工程實驗原理,建立在阿裡巴巴近十年故障測試和演練實踐基礎上,并結合了集團各業務的最佳創意和實踐,提供豐富故障場景實作,幫助分布式系統提升容錯性和可恢複性的混沌工程工具。

https://github.com/chaosblade-io/chaosblade

4.6 輕量級流量控制架構sentinel

        以流量為切入點,從流量控制、熔斷降級、系統負載保護等多個次元來幫助客戶保護服務的穩定性。

https://github.com/alibaba/Sentinel/wiki

5 總結

        以上便是阿裡高可用架建構設的實踐經驗分享。一個好的高可用架構可以以最低的成本、更靈活的方式滿足企業的相關需求。而在各種各樣、紛繁複雜的技術中建構最适合企業的高可用技術架構,是需要逐漸摸索和持續積累的。

繼續閱讀