業界首發|雲原生領域首本架構白皮書重磅發佈

雲棲號資訊:【點擊查看更多行業資訊
在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!

image
來源 | 《雲原生架構白皮書》

【導讀】今日,由阿里雲 20+ 位雲原生技術專家共同編撰的《雲原生架構白皮書》正式對外發布。作爲業界第一本全方位構建雲原生架構規劃與實踐全景圖的白皮書,本書在詳細闡述雲原生架構定義的同時,完整展示雲原生架構應用所需的演進路徑與設計規則,旨在幫助企業更好地理解與應用雲原生架構,助力企業數字化轉型升級。

以下爲 Serverless 章節內容:

隨着以 Kubernetes 爲代表的雲原生技術成爲雲計算的容器界面,Kubernetes 成爲雲計算的新一代操作系統。面向特定領域的後端雲服務(BaaS)則是這個操作系統上的服務 API,存儲、數據庫、中間件、大數據、AI 等領域的大量產品與技術都開始提供全託管的雲形態服務,如今越來越多用戶已習慣使用雲服務,而不是自己搭建存儲系統、部署數據庫軟件。

當這些 BaaS 雲服務日趨完善時,Serverless 因爲屏蔽了服務器的各種運維複雜度,讓開發人員可以將更多精力用於業務邏輯設計與實現,而逐漸成爲雲原生主流技術之一。

1 技術特點

Serverless 計算包含以下特徵:

  • 全託管的計算服務,客戶只需要編寫代碼構建應用,無需關注同質化的、負擔繁重的基於服務器等基礎設施的開發、運維、安全、高可用等工作;
  • 通用性,結合雲 BaaS API 的能力,能夠支撐雲上所有重要類型的應用;
  • 自動的彈性伸縮,讓用戶無需爲資源使用提前進行容量規劃;
  • 按量計費,讓企業使用成本得有效降低,無需爲閒置資源付費。

函數計算(Function as a Service)是 Serverless 中最具代表性的產品形態。它通過把應用邏輯拆分多個函數,每個函數都通過事件驅動的方式觸發執行,例如當對象存儲(OSS)中產生的上傳 / 刪除對象等事件,能夠自動、可靠地觸發 FaaS 函數處理,且每個環節都是彈性和高可用的,客戶能夠快速實現大規模數據的實時並行處理。同樣的,通過消息中間件和函數計算的集成,客戶可以快速實現大規模消息的實時處理。

目前函數計算這種 Serverless 形態在普及方面仍存在一定困難,例如:

  • 函數編程以事件驅動方式執行,這在應用架構、開發習慣方面,以及研發交付流程上都會有比較大的改變;
  • 函數編程的生態仍不夠成熟,應用開發者和企業內部的研發流程需要重新適配;
  • 細顆粒度的函數運行也引發了新技術挑戰,比如冷啓動會導致應用響應延遲,按需建立數據庫連接成本高等。

針對這些情況,在 Serverless 計算中又誕生出更多其他形式的服務形態,典型的就是和容器技術進行融合創新,通過良好的可移植性,容器化的應用能夠無差別地運行在開發機、自建機房以及公有云環境中;基於容器工具鏈能夠加快解決 Serverless 的交付。雲廠商如阿里雲提供了彈性容器實例(ECI)以及更上層的 Serverless 應用引擎(SAE),Google 提供了 CloudRun 服務,這都幫助用戶專注於容器化應用構建,而無需關心基礎設施的管理成本。此外 Google 也開源了基於 Kubernetes 的 Serverless 應用框架 Knative。

相對函數計算的編程模式,這類 Serverless 應用服務支持容器鏡像作爲載體,無需修改即可部署在Serverless 環境中,可以享受到 Serverless 帶來的全託管免運維、自動彈性伸縮、按量計費等優勢。下面是傳統的彈性計算服務、基於容器的 Serverless 應用服務和函數計算的對比:

image

2 常見場景

近兩年來 Serverless 近年來呈加速發展趨勢,用戶使用 Serverless 架構在可靠性、成本和研發運維效率等方面獲得顯著收益。

小程序 /Web/Mobile/API 後端服務

在小程序、Web/Moible 應用、API 服務等場景中,業務邏輯複雜多變,迭代上線速度要求高,而且這類在線應用,資源利用率通常小於 30%,尤其是小程序等長尾應用,資源利用率更是低於 10%。Serverless 免運維,按需付費的特點非常適合構建小程序 /Web/Mobile/API 後端系統,通過預留計算資源 + 實時自動伸縮,開發者能夠快速構建延時穩定、能承載高頻訪問的在線應用。在阿里內部,使用 Serverless 構建後端服務是落地最多的場景,包括前端全棧領域的 Serverless For Frontends,機器學習算法服務,小程序平臺實現等等。

image

大規模批處理任務

在構建典型任務批處理系統時,例如大規模音視頻文件轉碼服務,需要包含計算資源管理、任務優先級調度、任務編排、任務可靠執行、任務數據可視化等一系列功能。如果從機器或者容器層開始構建,用戶通常使用消息隊列進行任務信息的持久化和計算資源分配,使用 Kubernetes 等容器編排系統實現資源的伸縮和容錯,自行搭建或集成監控報警系統。而通過 Serverless 計算平臺,用戶只需要專注於任務處理邏輯的處理,而且 Serverless 計算的極致彈性可以很好地滿足突發任務下對算力的需求。

通過將對象存儲和 Serverless 計算平臺集成的方式,能實時響應對象創建、刪除等操作,實現以對象存儲爲中心的大規模數據處理。用戶既可以通過增量處理對象存儲上的新增數據,也可以創建大量函數實例來並行處理存量數據。

image

基於事件驅動架構的在線應用和離線數據處理

典型 Serverless 計算服務通過事件驅動的方式,可以廣泛地與雲端各種類型服務集成,用戶無需管理服務器等基礎設施和編寫集成多個服務的“膠水”代碼,就能夠輕鬆構建松耦合、基於分佈式事件驅動架構的應用。

通過和事件總線的集成,無論是一方 BaaS 雲服務,還是三方的 SaaS 服務,或者是用戶自建的系統,所有事件都可以快速便捷地被函數計算處理。例如通過和 API 網關集成,外部請求可以轉化爲事件,從而觸發後端函數處理。通過和消息中間件的事件集成,用戶能快速實現對海量消息的處理。

image

開發運維自動化

通過定時觸發器,用戶用函數的方式就能夠快速實現定時任務,而無須管理執行任務的底層服務器。通過將定時觸發器和監控系統的時間觸發器集成,用戶可以及時接收機器重啓、宕機、擴容等 IaaS 層服務的運維事件,並自動觸發函數執行處理。

3 技術關注點

計算資源彈性調度

爲了實現精準、實時的實例伸縮和放置,必須把應用負載的特徵作爲資源調度依據,使用“白盒”調度策略,由Serverless 平臺負責管理應用所需的計算資源。平臺要能夠識別應用特徵,在負載快速上升時,及時擴容計算資源,保證應用性能穩定;在負載下降時,及時回收計算資源,加快資源在不同租戶函數間的流轉,提高數據中心利用率。因此更實時、更主動、更智能的彈性伸縮能力是函數計算服務獲得良好用戶體驗的關鍵。通過計算資源的彈性調度,幫助用戶完成指標收集、在線決策、離線分析、決策優化的閉環。

在創建新實例時,系統需要判斷如何將應用實例放置在下層計算節點上。放置算法應當滿足多方面的目標:

  • 容錯:當有多個實例時,將其分佈在不同的計算節點和可用區上,提高應用的可用性。
  • 資源利用率:在不損失性能的前提下,將計算密集型、I/O 密集型等應用調度到相同計算節點上,儘可能充分利用節點的計算、存儲和網絡資源。動態遷移不同節點上的碎片化實例,進行“碎片整理”,提高資源利用率。
  • 性能:例如複用啓動過相同應用實例或函數的節點、利用緩存數據加速應用的啓動時間。
  • 數據驅動:除了在線調度,系統還將天、周或者更大時間範圍的數據用於離線分析。離線分析的目的是利用全量數據驗證在線調度算法的效果,爲參數調優提供依據,通過數據驅動的方式加快資源流轉速度,提高集羣整體資源利用率。

負載均衡和流控

資源調度服務是 Serverless 系統的關鍵鏈路。爲了支撐每秒近百萬次的資源調度請求,系統需要對資源調度服務的負載進行分片,橫向擴展到多臺機器上,避免單點瓶頸。分片管理器通過監控整個集羣的分片和服務器負載情況,執行分片的遷移、分裂、合併操作,從而實現集羣處理能力的橫向擴展和負載均衡。

在多租戶環境下,流量隔離控制是保證服務質量的關鍵。由於用戶是按實際使用的資源付費,因此計算資源要通過被不同用戶的不同應用共享來降低系統成本。這就需要系統具備出色的隔離能力,避免應用相互干擾。

安全性

Serverless 計算平臺的定位是通用計算服務,要能執行任意用戶代碼,因此安全是不可逾越的底線。系統應當從權限管理、網絡安全、數據安全、運行時安全等各個維度全面保障應用的安全性。輕量安全容器等新的虛擬化技術實現了更小的資源隔離粒度、更快的啓動速度、更小的系統開銷,使數據中心的資源使用變得更加細粒度和動態化,從而更充分地利用碎片化資源。
以上內容出自阿里雲出品的《雲原生架構白皮書》。

本報告共分爲七大章節,涵蓋爲什麼需要雲原生架構、雲原生架構定義、主要雲原生技術、阿里巴巴雲原生架構設計、阿里云云原生產品介紹、雲原生架構實踐案例、雲原生架構未來發展趨勢幾部分,詳細闡述了雲原生領域的整體落地應用及未來發展趨勢。

【雲棲號在線課堂】每天都有產品技術專家分享!
課程地址:https://yqh.aliyun.com/live

立即加入社羣,與專家面對面,及時瞭解課程最新動態!
【雲棲號在線課堂 社羣】https://c.tb.cn/F3.Z8gvnK

原文發佈時間:2020-07-21
本文作者:雲原生架構白皮書
本文來自:“CSDN”,瞭解相關信息可以關注“CSDN

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章