天天看點

看雲栖說雲栖—— 網際網路江湖的生存之道

出來混,總要還的!

——《無間道2》

流控、熔斷、降級、容錯都是任何一個網際網路應用的必修課,對于任何一個網際網路企業來說,或早或晚,這些核心科技都必須要掌握。這次繼續探讨行癫所講的“核心技術的網際網路化”。本文部分内容取自2019杭州雲栖大會《網際網路中間件專場》、《高可用架構專場》。

上一篇《看雲栖說雲栖 —— 容器、雲原生、微服務》的最後,提到了為配合微服務在Kubernetes上的落地,阿裡雲有很多的産品可供內建,這些産品中有一些就是阿裡雲自研的“網際網路核心技術”。

  • 日志服務SLS、阿裡自研的和ELK類似的日志服務。
  • 應用實時監控ARMS、解決各種應用和前端監控問題。
  • 鍊路追蹤、解決服務間複雜調用依賴關系的性能診斷問題。
  • 微服務引擎MSE、解決微服務的注冊和訂閱問題。
  • 企業級分布式應用EDAS、一個微服務托管平台。
  • 應用高可用AHAS服務、流量管理和架構感覺。
  • 應用配置管理ACM、集中化配置中心。

除此以外,還包括但不限于:

  • 消息隊列服務MQ、面向網際網路場景的消息隊列服務。
  • 全局事務服務GTS、解決分布式場景下的事務一緻性問題。
  • 雲服務總線CSB、主要對組織外部提供應用網關服務。
  • 壓力測試服務PTS、開箱即用的分布式壓力測試服務。

在《網際網路中間件專場》阿裡雲智能中間件首席架構師的《網際網路中間件的演進》中将中間件的發展分成了如下幾個階段:

  • 單體計算、1960s,在一台計算機上運作全部業務。
  • 叢集計算、1970s,通過計算節點和存儲節點的擴充實作業務的橫向擴充。
  • 分布式計算、1980s,把大規模的業務系統按領域劃分,進而實作業務的橫向擴充。
  • 網際網路中間件、2010s,幫助業務應對雙十一級别的大規模并發請求。
  • 雲計算時代、走向何方?

阿裡巴巴的這些網際網路核心技術大多都是從近十年的雙十一大促活動中錘煉積累出來的,這些核心技術的每一項都對應着阿裡踩過的“坑”,在國内做網際網路業務,或早或晚,這些“坑”都會碰到。到那時,阿裡的這些核心技術就成了一些企業成功爬出來的基礎,反正用或者不用,它就在那裡。

在《高可用架構專場》阿裡雲資深專家的《面向失敗設計》中,提到以下這些有關失敗的場景:

  • 硬體問題
  • 軟體BUG
  • 配置變更錯誤
  • 系統惡化
  • 超預期流量
  • 外部攻擊
  • 依賴庫問題
  • 依賴服務問題

為了防止這些失敗,可以有如下這些手段:

  • 容災、核心思想是基于隔離的備援
  • 服務能力與依賴調用自我保護、典型手段包括流量控制、熔斷降級、系統保護、熱點防控等。
  • 為一切不可預料的情況做好預案、包括事前準備、日常的沉澱及仿真演練、事中的統一指揮和協同作戰、事後的統一分析彙總改進。
  • 自動化運維、從完全的人肉運維到依托工具的自動化、到最終依賴資料智能名額體系的自動化。
  • 精細化的監控體系、建立業務層、應用層、容器層、主機層的分層監控體系。
  • 故障與攻防演練錘煉容災應急能力、通過計劃梳理測試用例、執行故障注入、觀察監控日志業務效果、記錄容災、監控、業務結果的有效性和正确性、事後分析的閉環來反複錘煉容災應急能力。

在《智能化壓測——應用穩定性基石》,阿裡雲智能技術專家爆出了一些曆年雙十一的“家醜”。

  • 2009年,交易和商品系統挂了,很多商家的外部圖檔空間壓挂了伺服器容量,網絡帶寬容量,系統保護都沒有。
  • 2010年,零點峰值出現了大量的購買失敗,但是伺服器沒有大面積當機。
  • 2011年,臨時通知所有有問題的商家下架商品溝通會,商家對雙十一的最大期望:系統穩定。
  • 2012年,系統超賣問題,0點系統顯示交易成功率不到50%,各種系統報錯。

之所有出現這種情況是因為當時大家都是基于單個系統的容量預估方式備戰雙十一,而單個系統的ready并不能代表全局的ready。此後,阿裡開始使用貫穿全業務鍊路的方式來對系統進行整體的全鍊路壓力測試。

為了能夠對線上正在運作的系統進行壓測而又不污染資料,阿裡雲全鍊路壓測實作了前端壓測流量可識别、壓測流量識别後可傳遞、應用業務系統相容和識别壓測流量、壓測資料和業務資料分别存儲。

阿裡雲全鍊路壓測服務目前已經服務于整個阿裡經濟體,并開始對外以PTS服務的形式對外部客戶提供服務,目前已經成功應用在包括中國平安、中國人壽、邏輯思維、懂球帝、CCTV、聯通、蜻蜓FM等客戶身上。

下一步,PTS準備推出無人值守的智能壓測,實作壓測流量的智能構造、壓測過程中的自動調速、壓測結果的智能分析。