Serverless 架構演進
Serverless架構風格挑戰了軟件設計和軟件部署基礎的現狀,以實現最佳開發、最優運營和最優的管理開銷。雖然它繼承了微服務架構MSA的基本概念,但它已被賦予了新的架構模式,盡可能實現最高效的硬件利用。
盡管Serverless架構有顯著的進步,但適應這種架構需要一個周全的過程,把企業解決方案精確映射到Serverless架構上。
部署在物理服務器上的軟件系統,其初始實現不能最佳地利用底層硬件的計算能力,因為在給定時間內只能有一個操作系統實例運行。隨后的改造中,在計算資源中識別時間共享能力之后,多個虛擬計算機能夠通過在它們之間切換CPU和I/O操作從而實現在相同硬件上的同時運行。
這種技術演進導致了行業中的許多創新,最重要的是云的誕生。此時,虛擬機是用于部署軟件的隔離計算環境中最易于管理的、可擴展的和可編程的單元。Linux容器技術出現在2006年左右,當時Google實現了符合Linux內核特性的控制組。
Linux容器自那時以來一直存在。然而,只有規模大、技術上超越的企業,比如谷歌,才能夠規模化的使用它。到2012年,在歐洲,一個軟件架構師討論組引入了微服務架構的概念。在2013年晚些時候,Docker巧妙地填補了容器生態系統中的可訪問性、可用性和支持服務的空白,因此,容器開始變得流行起來。
Linux容器打開了一個新的視野,將大型單片系統分解成獨立的自包含服務,并以細粒度的資源利用來執行它們。為了加快這些進展,容器集群管理系統(如Kubernetes和Mesosphere)在同一時期開始提供端到端的容器即服務(CaaS)的能力。
到2015年晚些時候,AWS通過引入AWS Lambda實現了另一個飛躍,它可以通過按需運行微服務進一步節省軟件部署成本,并在無負載時自動停止。這種概念類似于節能車輛中的停止-啟動的特性,其自動關閉內燃機以降低燃料消耗。
它是如何工作的?
盡管術語“Serverless”乍一看是荒謬的,但其實際的意義在于,部署軟件無需涉及基礎設施的建設。Serverless平臺可以根據需要自動構建、部署和啟動服務的整個過程。用戶只需注冊所需的業務功能及其資源需求。
顯然,這樣的功能可以分為兩種主要類型:由客戶端請求觸發的功能,和需要通過時間觸發器或事件觸發的后臺執行的功能。
通常,這種Serverless系統可以使用具有動態路由器的容器集群管理器(CCM)來實現,該動態路由器可以按需調整容器。然而,還需要考慮路由器的延遲、容器的創建時間、語言支持、協議支持、功能接口、函數初始化時間、配置參數的傳遞、提供證書文件等。
盡管這種部署方式要求在沒有負載時停止容器,但實際上在服務請求之后很快就停止容器,這種開銷也將是昂貴的,因為在短時間間隔內可能有更多的請求進入。因此,更通常的做法是,在Serverless計算容器中將保留預先配置的時間段以便能重用于對服務的更多請求。這類似于PaaS平臺中的自動縮放行為。一旦服務被擴展了,實例將被保留一段時間以便能及時處理更多的請求,而不會立即終止它們。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
原文鏈接:http://blog.csdn.net/chszs/article/details/60466183