Bazaar:阿里雲Serverless計算服務探祕

摘要: Serverless 指用戶無需管理服務器狀況下構建和運行應用程序的一種方式。可見 Serverless 並非真的不須要服務器,畢竟程序代碼不能靠意念來執行,仍然是須要硬件服務器實體來做爲運行代碼的基礎的。安全

Bazaar:阿里雲Serverless計算服務探祕服務器

 做者:Bazaar項目組網絡

1.     什麼是 Serverless架構

「Serverless computing refers to the concept of building and running applications that do not require server management.」併發

-- 來自 CNCF 對 Serverless 的定義app

Serverless 指用戶無需管理服務器狀況下構建和運行應用程序的一種方式。可見 Serverless 並非真的不須要服務器,畢竟程序代碼不能靠意念來執行,仍然是須要硬件服務器實體來做爲運行代碼的基礎的。這裏的 Serverless 是站在應用開發人員的視角提出的,指服務器的運行、維護對於應用程序的開發人員不可見。將底層基礎架構的維護、更新和擴展等任務交給平臺提供商來完成。從而將業務開發人員解放出來,讓他們更好的關注自身業務。這即是 Serverless 計算背後的核心思想。可見這一思想可以產生的一大基石即是雲計算服務。只有憑藉雲計算構建的強大基礎運維平臺,纔可以適應無服務器計算對於計算、存儲和網絡資源的需求。框架

圖1展現了 Serverless 計算的發展歷程。早在2006年就已經出現了第一個帶有 Serverless 性質的計算服務平臺 Zimki,該平臺會按照代碼實際執行時間向用戶收取相應的費用。隨後的2008年穀歌推出Google App Engine產品,其背後的理念也是 Serverless 計算。但這一時期,Serverless 計算的概念並無被明確提出。Serverless 概念第一次出現的時間是在2012年,iron.io,一家基於容器提供分佈式按需執行服務的提供商提出了這一律念。2014年AWS Lambda這一里程碑式的產品出現。經過將無服務器計算的概念嵌入到整個雲計算服務的總體框架中,無服務器計算正式走進了雲計算的舞臺中央。2016年無服務器計算則迎來了快速發展的階段,IBM、谷歌、微軟相繼推出了IBM OpenWhisk on Bluemix、Google Cloud Functions和Azure Functions等相關產品。而到了2018年,隨着容器技術的發展,各種 Serverless container 平臺更是如雨後春筍般出如今人們的視線中。less

 

圖1  Serverless 發展歷程運維

對於 Serverless 帶來的好處能夠歸結於如下幾點:分佈式

·      *下降成本

·      *靈活擴容

·      *按需付費

下降成本:使用 Serverless 服務後,用戶再也不須要關心採購、運行、維護底層機器資源的相關工做,也再也不須要對相關工做投入人力資源。特別是機器運維的成本將大幅降低。

靈活擴容:用戶本身購買服務器對外提供服務時,當業務壓力忽然增長時,很難快速添置大量服務器來知足突增的業務壓力的須要。而採用無服務器計算後平臺提供商會有大量機器資源供用戶動態擴容使用。

按需付費:用戶本身購買服務器時,即使業務負載很是低,用戶依然要負擔相關資源的使用成本。極端狀況當用戶業務負載壓力爲零時,用戶也要白白花費相應的成原本維持自身服務的運轉。在使用無服務器計算後,當用戶業務壓力下降時,用戶須要的資源會被自動減少,於是花費的成本也天然會下降。

總之 Serverless 讓開發人員更加聚焦於本身業務的同時,更能夠有效幫助企業下降業務運行過程當中沒必要要的開銷和成本。

Serverless 中很是重要的一個環節是底層相關計算資源的管理再也不須要用戶來關心,那麼這些資源的管理由誰來完成呢?下面咱們就來介紹本系列文章的主角——Bazaar。

2.     Bazaar:阿里雲 Serverless 計算服務

Bazaar ([bə'zɑːr])是阿里雲彈性計算團隊爲孵化更多的 Serverless 服務推出的基礎服務。該服務旨在爲終端用戶和雲上的各種 Serverless 產品提供底層的資源管理、交付服務。不管是終端用戶仍是阿里雲的各種 Serverless 產品亦或是外部的Serverless服務開發商都可以藉助Bazaar方便的得到須要的雲計算資源。憑藉彈性計算團隊和容器服務團隊在雲計算服務領域積累的豐富經驗,咱們將Bazaar打形成爲一款面向不一樣客戶和業務的資源交付服務以便支撐各種無服務器計算業務對底層雲計算資源管理、交付的不一樣訴求 。

Bazaar具有 Serverless 帶來的諸多優勢。如用戶聚焦自身業務,簡化底層資源管理,靈活的擴容方式等等。相較於彈性計算ECS,Bazaar在資源佔用開銷、實例啓動時間等方面也着重進行了優化,並從系統總體架構上針對 Serverless 進行了深度的定製優化。

Serverless 經過平臺服務商管理底層運行時環境,爲用戶擺脫底層基礎架構運維工做提供了可能。而平臺服務商爲了向用戶提供這樣一個統一的計算平臺,勢必須要一個統一的底層軟件運行環境。在這其中的沙箱技術就是最爲核心的技術組件,其要爲用戶程序的運行提供一個安全且與外界隔離的環境。該環境還必須考慮到 Serverless 自身的特色,在應用部署密度,程序啓動時間等方面作出相應的優化,來知足無服務器計算高併發,用戶負載不穩定的須要。

因爲Bazaar要兼容Docker/Kubernetes生態,並提供安全、多租戶等公有云須要的特性,對於當前Serverless產品來說,最爲適合的容器技術架構依然是經過硬件虛擬化來做爲Bazaar安全容器的底層技術。考慮到Serverless用戶的特定場景和需求,咱們在傳統虛擬機上又進行了進一步的改進和優化。好比禁用了登陸服務器,添加/刪除用戶功能,同時精簡了沒必要要的系統服務。

圖2中展現了咱們在Bazaar針對 Serverless 場景在底層系統上進行的各種優化。

 

圖2  Bazaar底層系統優化

經過上面的各類優化,Bazaar實例的啓動時間相較於此前ECS實例有了顯著的提高,如圖3所示。

 

圖3  優化先後啓動時間對比

3.     展望

能夠看到隨着容器技術的快速發展和 Serverless 計算產品的普及,以虛擬機爲表明的第一代雲計算服務(IaaS)正在逐漸讓位給以 Serverless 爲表明的新一代雲計算服務。而這一趨勢對底層系統軟件的開發也提出了更高的要求。新一代底層系統軟件不只要知足安全、隔離、多租戶的需求,更要針對 Serverless 的特色進行總體端到端優化。相信隨着 Serverless 的不斷髮展,會誕生更加優秀的系統來支持 Serverless,爲用戶提供更好的下一代雲計算服務。

原文連接

相關文章
相關標籤/搜索