還在糾結(jié)選Kubernetes還是Serverless?這個問題終于解決了

原標(biāo)題:還在糾結(jié)選Kubernetes還是Serverless?這個問題終于解決了

隨著容器編排引擎Kubernetes的成熟與流行,容器化已經(jīng)開始在IT界尤其是云計算領(lǐng)域得到廣泛應(yīng)用。與此同時,Serverless正逐漸成為繼容器之后的下一個技術(shù)潮流。因此,很多企業(yè)面臨Kubernetes和Serverless之間的兩難抉擇。為了解決這個問題,百度智能云新推出容器實例產(chǎn)品BCI,將建立這兩者的鏈接,為用戶提供最大的靈活性和便利性。

那么,該產(chǎn)品是如何誕生的,技術(shù)特性是什么?我們還是從容器說起。

1

高歌猛進的容器技術(shù)

自從2013年Docker技術(shù)和Kubernetes編排引擎問世以來,容器技術(shù)一路高歌猛進,逐漸成為了今天絕大部分企業(yè)IT架構(gòu)的轉(zhuǎn)型方向。容器為企業(yè)帶來的架構(gòu)優(yōu)化和效率提升是顯而易見的,利用Docker image輕量級、可移植的特點,將業(yè)務(wù)拆分解耦到不同的容器中,分布式部署至跨機器甚至跨機房的基礎(chǔ)設(shè)施。

由于每個容器都可以被獨立管理和升級并且快速在不同的基礎(chǔ)設(shè)施之間遷移,容器化大大提高了IT生產(chǎn)流程的敏捷程度并且?guī)椭髽I(yè)獲得更高的業(yè)務(wù)可用性。

但是容器也并非是萬能的,隨著容器的數(shù)量和復(fù)雜度增加,用戶需要維護一個龐大的集群和編排系統(tǒng)來進行容器管理,這就需要企業(yè)付出一定的額外資源用于維護集群本身,并且對于編排系統(tǒng)(如Kubernetes)的使用也是IT部門需要面臨的一個新的挑戰(zhàn)。

云服務(wù)商一直在嘗試?yán)迷朴嬎愕膬?yōu)勢降低容器的使用成本和技術(shù)門檻,如百度智能云的容器引擎產(chǎn)品CCE,能夠幫助用戶快速搭建和維護一個Kubernetes集群,為用戶解決集群本身的可用性、可觀察性以及對底層資源的兼容性等問題,同時使得原生的Kubernetes API能夠以對用戶更加友好的方式被使用。

2

新起之秀:Serverless

Serverless是繼容器之后出現(xiàn)的又一個技術(shù)趨勢,以云服務(wù)商提供的函數(shù)計算服務(wù)為典型代表(如百度智能云函數(shù)計算CFC),其核心思想在于服務(wù)提供者完全打包了基礎(chǔ)設(shè)施的搭建、管理與維護,開發(fā)者只需要編寫業(yè)務(wù)代碼并選擇一個所需的運行時,然后平臺自動化地完成資源的創(chuàng)建、調(diào)度以及運行時的生命周期管理,并由平臺保障業(yè)務(wù)運行環(huán)境的高可用性。

函數(shù)計算服務(wù)對于小型應(yīng)用的開發(fā)者而言非常友好:

  • 不需要提前采購和管理任何服務(wù)器,幾乎為0的啟動成本和運維成本。
  • 無需關(guān)心資源的擴容與縮容,函數(shù)可以在毫秒級完成啟停,帶來了更高的業(yè)務(wù)彈性。
  • 完全按需的付費模式,資源只有在業(yè)務(wù)實際運行時才產(chǎn)生費用,不會再有閑置成本。

在許多輕量級場景中,函數(shù)計算已經(jīng)得到了不錯的應(yīng)用與實踐,比如小程序、智能設(shè)備、自動化數(shù)據(jù)處理等。

但是函數(shù)計算同樣不能解決企業(yè)的全部問題,它要求用戶的業(yè)務(wù)以函數(shù)為粒度進行拆分、函數(shù)之間完全通過接口通訊并且對業(yè)務(wù)的無狀態(tài)化要求更高。對于復(fù)雜的業(yè)務(wù)系統(tǒng)而言,要滿足這些要求并不簡單,而且即便用戶的業(yè)務(wù)架構(gòu)可以真正實現(xiàn)函數(shù)化改造,現(xiàn)有的大規(guī)模函數(shù)協(xié)作、編排和管理技術(shù)也還不夠成熟,很難完全投入生產(chǎn)。

在面對容器化和Serverless時,用戶通常需要對業(yè)務(wù)進行拆分,根據(jù)業(yè)務(wù)屬性選擇更合適的架構(gòu),有時會因此而面臨兩難的技術(shù)抉擇。

那么有沒有一種技術(shù)可以在充分發(fā)揮容器編排引擎優(yōu)勢的同時,又享受到Serverless帶來的低成本和高彈性呢?

3

魚和熊掌也可兼得

Kata-Container和Virtual-Kubelet這兩個新技術(shù)的發(fā)展為這個問題帶來了新的思路,而百度智能云基于兩者提供的新產(chǎn)品:百度智能云容器實例(Baidu Container Instance — BCI),也許會是一個不錯的答案。

  • Kata-Container:作為一種啟動docker的插件,為容器提供了更強的隔離性,解決了多租戶情況下容器的安全問題。
  • Virtual-Kubelet:CNCF 社區(qū)項目,幫助用戶將kubernetes的管理范疇從物理集群拓展到任意的容器提供者。

BCI為用戶提供了可以直接啟動的容器化資源,不需要預(yù)先購買服務(wù)器和集群,用戶在業(yè)務(wù)需要時可以隨時啟動一個或多個容器,在業(yè)務(wù)完成后可以隨時將其釋放。

相比虛擬機,BCI充分發(fā)揮了容器化的優(yōu)勢,使用標(biāo)準(zhǔn)的Docker Image啟動、細(xì)粒度的資源劃分、在數(shù)秒內(nèi)完成啟動或停止、隨時進行多副本復(fù)制。

對于小型應(yīng)用的開發(fā)者,BCI可以體現(xiàn)出媲美函數(shù)計算的Serverless特性。將應(yīng)用打包到Docker image中,即可啟動或停止容器,只需要為應(yīng)用運行實際消耗的資源付費,也完全不需要關(guān)心底層資源如何管理和調(diào)度,而kata-container技術(shù)則完全確保了用戶容器運行過程中的資源隔離性。

對于有復(fù)雜容器編排需求的企業(yè),BCI可以通過Virtual-Kubelet接入到CCE集群中,從而成為用戶集群中的一個虛擬節(jié)點,這個虛擬節(jié)點幾乎沒有資源邊界,用戶也無需為它預(yù)先購買任何服務(wù)器。用戶可以使用標(biāo)準(zhǔn)的Kubernetes API管理自己的容器(比如創(chuàng)建Deployment),通過指定部署節(jié)點,將業(yè)務(wù)容器部署到BCI容器實例中運行。

BCI的出現(xiàn)將建立起容器和Serverless之間的鏈接,大大拓展百度智能云CCE的管理邊界,為用戶提供極大的便利和靈活性。

極客網(wǎng)企業(yè)會員

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,應(yīng)及時向本網(wǎng)站提出書面權(quán)利通知或不實情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關(guān)文章源頭核實,溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

2019-07-09
還在糾結(jié)選Kubernetes還是Serverless?這個問題終于解決了
那么有沒有一種技術(shù)可以在充分發(fā)揮容器編排引擎優(yōu)勢的同時,又享受到Serverless帶來的低成本和高彈性呢?將應(yīng)用打包到Docker image中,即可啟動或停止容器,只需要為應(yīng)用運行實際消耗的資源付

長按掃碼 閱讀全文