快速瞭解“雲原生”(Cloud Native)和前端開發的技術結合點
歡迎訪問網易雲社群,瞭解更多網易技術產品運營經驗。
後端視角,結合點就是通過前端流控緩解後端的壓力,提升系統響應能力。
從一般意義理解,Cloud Native 是後端應用的事情,要搞的是系統解耦、橫向擴充套件,玩的是容器、微服務和 DevOps工具鏈。
從業務發展的角度來看,Cloud Native 是要解決業務網際網路化發展的問題,快速迭代(敏捷、持續交付)、永遠線上(高可用)、高併發(彈性伸縮)等是典型需求。一個成功產品的使用者量往往是數以億計,無論多強大的單點都無法滿足這種規模的效能需求。因此係統的可擴充套件性是一個成功網際網路產品的必然屬性。沒有容器之前,這些事情確實也不是不能做,但有了容器映象和成熟的編排之後,以工程化、服務化和自動化的流程來進行應用開發的便利程度是不可同日而語的。
對於瀏覽器端應用或者移動端應用,要消除大流量下的效能瓶頸導致請求變慢或者失敗,前後端分離、動態請求靜態請求分離的架構設計,是環節伺服器 CPU、磁碟I/O、頻寬等壓力的有效方法。
如果是前端的服務請求來不及處理或者有瓶頸,可以將圖片、JS、CSS、HTML 及應用服務相關的靜態資原始檔儲存通過 Nginx 本地代理或者物件儲存服務來進行物理加速,使用不同的域名來轉發請求,並通過 CDN 將靜態資源分散式快取在各個節點實現“就近訪問”,主動或被動重新整理 CDN 的快取來加速前端服務。
如果是後端的動態請求壓力過大或者有熱點服務,可以把無狀態的後端的服務再進一步水平擴充套件滿足業務分擔
另外,可以通過訊息佇列隔離前端的壓力,實現排隊系統,在湧入大量壓力的情況下保證系統可以按照正常速率來處理請求,不會被流量壓垮。如果是實際成交量有限的業務,也可以酌情通過前端系統進行攔截,限制最終流入後端系統的請求,來緩解系統壓力,保證系統正常執行。
以上內容,參考《雲原生應用架構實踐》(網易雲基礎服務架構團隊著)。
相關文章:
【推薦】 資料庫路由中介軟體MyCat - 原始碼篇(15)
【推薦】 微服務化的資料庫設計與讀寫分離