無伺服器架構的簡單介紹

weixin_34041003發表於2017-03-25

該文討論了無伺服器架構的演變,幫助你瞭解它是如何工作的以及最佳實踐和可用的框架。無伺服器架構風格挑戰了軟體設計和部署的現狀,它能實現最佳開發效率、提高系統運營和管理節省開銷。雖然它繼承了微服務架構(MSA)的基本概念,但它是當前架構模式的最前沿,實現了最低水平的硬體空閒可能。儘管它是一個顯著的進步,但是採取它以及適應它將需要一個周密的研究過程,需要精確將企業解決方案要求對映到無伺服器計算上。下面我們看看無伺服器架構的演變,最初我們是直接將軟體系統部署執行在物理機器上,但是這種部署在物理伺服器上的初始實現並不能最佳地利用底層硬體的計算能力,因為在指定時間內只能有一個作業系統例項執行。後來,認識到計算資源具有時間上的共享能力之後,在相同硬體上同時執行多個計算機(虛擬主機/雲主機)能夠在CPU和I / O操作之間來回切換。這種技術的演進導致了行業中的許多創新,最重要的是雲的誕生。此時,虛擬機器是用於部署軟體並隔離計算環境的,是一種易於管理,可擴充套件和可程式設計的單元。Linux容器技術出現在2006年左右,當時Google實現了符合Linux核心特性的控制組(control groups)。Linux容器自那時以來一直存在。然而,只有大規模的、技術上超越的企業,如谷歌才能夠用到它的規模性。在2012年,微服務架構的概念由一組軟體架構師在歐洲引入。在2013年晚些時候,Docker巧妙地填補了容器生態系統中的可訪問性,可用性和支援服務的空白,因此,容器開始變得流行起來。Linux容器開啟了一個新的視野,將大型單片系統分解成獨立的自包含服務,並以細粒度的資源利用來執行它們。為了加快這些進展, 容器叢集管理系統(如Kubernetes和Mesosphere)在同一時期開始提供端到端的容器即服務(CaaS)能力。2015年晚些時候,AWS通過引入AWS Lambda實現了另一個飛躍,這可以通過按需執行微服務進一步節省軟體部署成本,並在無負載時停止。該概念類似於節能車輛中的停止 - 啟動特徵,在停車時能夠自動熄火,自動關閉內燃機以降低燃料消耗。Serverless是如何工作的?儘管術語“無伺服器”乍一看是荒謬的,但其實際意義是基於部署軟體而不涉及基礎設施的能力。無伺服器平臺根據需要自動構建,部署和啟動服務的整個過程。使用者只需要註冊所需的業務功能及其資源需求。


這些功能可以分為兩種主要型別:由客戶端請求觸發的功能和需要由時間觸發器或事件的後臺執行的功能。通常,這種無伺服器系統可以使用具有動態路由器的容器群集管理器(CCM)來實現,該動態路由器可以按需調整容器。然而,它還需要考慮路由器的延遲,容器建立時間,語言支援,協議支援,功能介面,函式初始化時間,配置引數傳遞,提供證書檔案等問題。即使這種部署方式要求在沒有負載時停止容器,但實際上在服務請求之後很快就會終止容器,這將是昂貴的,因為在短時間間隔內可能有更多請求進入。因此,更經常地,在無伺服器計算容器中將保留預先配置的時間段以重用應付更多的請求。這就類似於PaaS平臺中的自動縮放行為。一旦服務被擴充套件,例項將被保留一定時間段以處理更多請求,而不立即終止它們。Adapting Serverless Architecture - DZone Cloud

相關文章