應(yīng)用

技術(shù)

物聯(lián)網(wǎng)世界 >> 物聯(lián)網(wǎng)新聞 >> 物聯(lián)網(wǎng)熱點(diǎn)新聞
企業(yè)注冊(cè)個(gè)人注冊(cè)登錄

PaaS將吞噬云計(jì)算?Kubernetes的市場(chǎng)沖擊波

2018-04-18 10:40 InfoQ徐川
關(guān)鍵詞:PaaS云計(jì)算Kubernetes

導(dǎo)讀:基于容器 +Kubernetes 的新型 PaaS 將會(huì)成為云計(jì)算的主流。

  2017 年是 Kubernetes 的勝利之年,很多人還不明白這意味著什么。但如果看一下云計(jì)算業(yè)界的動(dòng)向,你會(huì)發(fā)現(xiàn),Kubernetes 的影響正在擴(kuò)散。

  在本文中我將分享我們的發(fā)現(xiàn),并試圖說(shuō)服你:基于容器 +Kubernetes 的新型 PaaS 將會(huì)成為云計(jì)算的主流。

  但是這些意味著什么呢?首先,這意味著開(kāi)發(fā)人員必須要掌握一個(gè)與 90% 的容器工作相關(guān)的容器編排平臺(tái)。這是一個(gè)學(xué)習(xí) Kubernetes 很好的理由。同時(shí)這還意味著我們已經(jīng)深深地依賴于 Kubernetes,Kubernetes 就像容器領(lǐng)域中的 Amazon。在 Kubernetes 上進(jìn)行設(shè)計(jì)、實(shí)現(xiàn)和運(yùn)行應(yīng)用程序可以讓你在不同的云提供商、Kubernetes 發(fā)行版和服務(wù)提供商之間自由地對(duì)應(yīng)用程序進(jìn)行遷移。它能讓你有機(jī)會(huì)找到 Kubernetes 認(rèn)證的開(kāi)發(fā)人員,讓他們來(lái)開(kāi)發(fā)項(xiàng)目并且在以后持續(xù)提供支持。Kubernetes 不是 VM,也不是 JVM,它是全新的應(yīng)用程序可移植層,它是大家共同的選擇?!狟ilgin Ibryam,Red Hat 首席架構(gòu)師

  基于“容器 +k8s”的新型 PaaS

  Kubernetes 并不是傳統(tǒng)意義上的 PaaS,事實(shí)上,傳統(tǒng) PaaS 可以基于 Kubernetes 構(gòu)建。

  在過(guò)去,PaaS 經(jīng)歷了這樣的發(fā)展:

  第一代:如最早的 Heroku,嚴(yán)格限定的運(yùn)行時(shí),不可修改的環(huán)境。對(duì)于 Ruby on Rails 這種小型單體應(yīng)用來(lái)說(shuō)很合適。

  第二代:Cloud Foundry (DEA 版本) ,可以簡(jiǎn)單的自定義環(huán)境,包括云端構(gòu)建。也開(kāi)始對(duì)多服務(wù)的應(yīng)用有所支持。

  第三代:Cloud Foundry (Diego 版本),如當(dāng)前版本的 GAE 和 AWS Elastic Beanstalk,它們都經(jīng)過(guò)之前兩代 PaaS 迭代而來(lái)。在這個(gè)版本里增加了對(duì)容器的支持,更自由的環(huán)境配置,對(duì)微服務(wù)的支持更強(qiáng)大。

  第四代:Kubernetes 以及其它容器編排引擎。這一代的平臺(tái)變成了 Kubernetes 本身,它是面向云原生應(yīng)用計(jì)算的、徹底基于分布式和容器的計(jì)算平臺(tái)。

  第四代 PaaS 的關(guān)注點(diǎn)也和之前不一樣,我們可以把前三代 PaaS 稱為應(yīng)用級(jí) PaaS(Application PaaS),它們關(guān)注的是應(yīng)用的運(yùn)行,第四代稱為容器 PaaS,或者 CaaS、KaaS,它們關(guān)注的是應(yīng)用的打包和分發(fā)。

  第四代 PaaS 當(dāng)然也可以使用其它的技術(shù)達(dá)到類似的效果,但就像前面所說(shuō)的,Kubernetes 贏得了這場(chǎng)競(jìng)爭(zhēng)。

  從下面的 PaaS 平臺(tái)架構(gòu)圖中可以看到,我用了 Docker+Kubernetes 層來(lái)做了一個(gè)“技術(shù)緩沖層”。也就是說(shuō),如果沒(méi)有 Docker 和 Kubernetes,構(gòu)建 PaaS 將會(huì)復(fù)雜很多。當(dāng)然,如果你正在開(kāi)發(fā)一個(gè)類似 PaaS 的平臺(tái),那么你會(huì)發(fā)現(xiàn)自己開(kāi)發(fā)出來(lái)的東西會(huì)跟 Docker 和 Kubernetes 非常像。相信我,最終你還是會(huì)放棄自己的輪子而采用 Docker+Kubernetes 的?!愷?《洞悉 PaaS 平臺(tái)的本質(zhì)》

PaaS完整平臺(tái)

  這是一個(gè)大而全的 PaaS 平臺(tái)架構(gòu),實(shí)際中可以根據(jù)需求進(jìn)行裁剪。

  業(yè)界趨勢(shì):全在做 PaaS

  如果我們看一下業(yè)界,會(huì)發(fā)現(xiàn),從公有云到私有云,從傳統(tǒng)企業(yè)到互聯(lián)網(wǎng)新貴,都在擁抱 Kubernetes,都在做 PaaS。

  公有云全在做 k8s 和容器

  從 AWS 到 Google Cloud、微軟 Azure,到國(guó)內(nèi)的騰訊云、華為云等,都在提供 k8s 容器服務(wù)。如果一個(gè)公有云到現(xiàn)在還沒(méi)有提供 k8s 服務(wù),或者沒(méi)有計(jì)劃做,那么可以認(rèn)為它的技術(shù)已經(jīng)落后于時(shí)代了。

  公有云提供的 k8s 和容器服務(wù),具體來(lái)說(shuō)分為兩類:

  一類是提供多租戶的單容器實(shí)例,這種其實(shí)類似于上面提到的第三類 PaaS,用戶創(chuàng)建的是單個(gè)容器,值得一提的是,這類 PaaS 仍可構(gòu)建于 k8s 之上,并且不少云計(jì)算廠商已經(jīng)采用這種方案。另外,由 KataContainer 技術(shù)逐漸應(yīng)用到生產(chǎn)環(huán)境,帶來(lái)將無(wú)服務(wù)器概念和容器結(jié)合的 Serverless Container Cloud 理念,讓容器也能兼具傳統(tǒng)虛擬化的優(yōu)點(diǎn),讓這類服務(wù)的未來(lái)充滿了想象空間。

  Kubernetes 所要扮演的角色,乃是取代傳統(tǒng)的 Infrastructure Layer 并鼓勵(lì)技術(shù)人員進(jìn)行上層的“二次創(chuàng)新”,而并不是直接面對(duì)最終用戶。真正為最終用戶提供云服務(wù)的,很大概率應(yīng)該是構(gòu)建于 Kubernetes 之上的、更加簡(jiǎn)潔高效的服務(wù)型 API,而 Serverless,尤其是 Serverless Container Cloud 的設(shè)計(jì),正是這種需求下最為貼切的實(shí)現(xiàn)方式之一?!獜埨?,浙江大學(xué)博士研究員,Hyper 項(xiàng)目成員,Kubernetes 項(xiàng)目資深成員與社區(qū)維護(hù)者。

  另一類是提供 Kubernetes 引擎,這種情況下用戶創(chuàng)建的是 Kubernetes 集群,如 GKE、Azure AKS、騰訊云 CCS 等。

  第二類服務(wù)是目前公有云研發(fā)的重點(diǎn),發(fā)布的時(shí)間基本集中在去年下半年到現(xiàn)在,我們采訪和調(diào)研了微軟 Azure、騰訊云、華為云,情況基本類似,具體內(nèi)容可進(jìn)一步閱讀:

  劍指 Kubernetes 揭秘騰訊云的 PaaS 技術(shù)選型策略

  華為云的 Kubernetes 實(shí)踐之路

  k8s 將成私有云的標(biāo)準(zhǔn)解法

  私有云的情況分為兩類,一類是企業(yè)搭建數(shù)據(jù)中心和私有云自用,另一類是服務(wù)提供商,為客戶提供私有云解決方案。在這兩類情況中我們都看到 Kubernetes 被使用的越來(lái)越多,并且無(wú)論是企業(yè)、服務(wù)提供商,還是客戶都嘗到了 Kubernetes PaaS 的甜頭。

  對(duì)于自用型私有云來(lái)說(shuō),系統(tǒng)的演進(jìn)是一個(gè)復(fù)雜的問(wèn)題,盲目采用新技術(shù)有時(shí)不僅無(wú)助于業(yè)務(wù),還造成資源浪費(fèi)。k8s 的表現(xiàn)如何呢?我們讓京東的經(jīng)驗(yàn)來(lái)說(shuō)話吧:

  (采用容器和 Kubernetes 的)JDOS 2.0 接入了包含大數(shù)據(jù)、Web 利用、深度學(xué)習(xí)等多種類型的利用,并為每一種利用依據(jù)類型采取了不同的資源限制方式,并打上了 Kubernetes 的不同標(biāo)簽?;诙鄻拥臉?biāo)簽,我們實(shí)現(xiàn)了更加多樣和靈便的調(diào)度方式,并在部份 IDC 試驗(yàn)性地混合部署了在線任務(wù)和離線任務(wù)。相較于 1.0,總體資源應(yīng)用率提升了約 30%?!U永成,京東基礎(chǔ)平臺(tái)部技術(shù)總監(jiān)

  對(duì)于服務(wù)提供商來(lái)說(shuō),Kubernetes 健康的生態(tài)可以保證它們有大量的第三方軟件和工具使用,同時(shí) PaaS 易于開(kāi)發(fā)和代碼 / 應(yīng)用復(fù)用的特性,也降低了它們交付項(xiàng)目的成本,并縮短了交付周期。

  對(duì)于客戶來(lái)說(shuō),基于 Kubernetes 的 PaaS 可以實(shí)現(xiàn)應(yīng)用自由遷移,這使企業(yè)可以采用多重云策略,并變相提升了對(duì)供應(yīng)商的議價(jià)能力。

  云計(jì)算經(jīng)過(guò)了十多年的發(fā)展,已然進(jìn)入的云原生的新階段,企業(yè)應(yīng)用優(yōu)先考慮部署在云環(huán)境,如何順應(yīng)云原生的大潮,使用容器和 Kubernetes 構(gòu)建云原生平臺(tái),踐行 DevOps 理念和敏捷 IT,開(kāi)源軟件和社區(qū)如何助力 IT 轉(zhuǎn)型,所有這些問(wèn)題的解決方案就是 PaaS 平臺(tái),其對(duì)于企業(yè)的重要性不言而喻?!蝺舫?TalkingData 容器平臺(tái)負(fù)責(zé)人

  運(yùn)維也需要 PaaS

  騰訊互娛的運(yùn)維團(tuán)隊(duì),需要為公司的在線游戲提供運(yùn)維能力,這可能是中國(guó)挑戰(zhàn)最大要求最高的運(yùn)維服務(wù),因此他們有數(shù)百人的研發(fā)團(tuán)隊(duì),他們的做法可以很大程度上代表運(yùn)維的發(fā)展方向,而不斷思考和迭代的結(jié)果就是自研了一套 PaaS 平臺(tái)藍(lán)鯨。藍(lán)鯨本身不使用 Docker、Kubernetes 等,完全自研,但我們可以看到,運(yùn)維的發(fā)展方向就是 PaaS。

PaaS運(yùn)維

  PaaS 本身與 DevOps 的理念完全契合,它改變了傳統(tǒng)運(yùn)維的職責(zé),讓他們變成運(yùn)維開(kāi)發(fā),為企業(yè)研發(fā)運(yùn)維工具乃至是 PaaS 平臺(tái)。而對(duì)于沒(méi)有藍(lán)鯨團(tuán)隊(duì)開(kāi)發(fā)能力的人,容器和 Kubernetes 能為他們提供彎道超車的捷徑。

  京東金融的運(yùn)維團(tuán)隊(duì)就采用了 Kubernetes 來(lái)搭建他們的 PaaS 平臺(tái):

  PasS 平臺(tái)化將問(wèn)題的關(guān)注點(diǎn)從基礎(chǔ)資源上升到了應(yīng)用層面,目標(biāo)是提供一個(gè)幫助開(kāi)發(fā)人員運(yùn)行、管理應(yīng)用的平臺(tái),讓使用者更關(guān)注運(yùn)行的代碼(業(yè)務(wù)邏輯)。

  PaaS 能解決的問(wèn)題:

  應(yīng)用聚合:如開(kāi)發(fā)需要一個(gè) Redis,直接啟動(dòng)一個(gè) Redis 容器即可

  服務(wù)發(fā)現(xiàn)、快速伸縮、狀態(tài)管理等

  服務(wù)監(jiān)控、恢復(fù)、容災(zāi)

  費(fèi)用統(tǒng)計(jì):提供計(jì)算資源信息匯總,針對(duì)不同項(xiàng)目收費(fèi)

  安全管控:不管什么平臺(tái),安全都非常重要,例如 A 應(yīng)用可以訪問(wèn) B,B 不允許訪問(wèn) A 以及安全審計(jì)等。

  快速部署。

  隨著 Docker 容器技術(shù)的出現(xiàn),讓我們有了更合適的工具建設(shè) PaaS 平臺(tái),具備了基于應(yīng)用構(gòu)建服務(wù)的能力。在 Docker 容器調(diào)度框架上,我們又選擇了 Kubernetes 平臺(tái)?!獜堼垼〇|金融 PE

  為什么 PaaS 會(huì)成為云計(jì)算主流?

  除了上面的這些,我們還可以看到,PaaS 是 SaaS 服務(wù)發(fā)展到一定程度后必然會(huì)做的事情,這么做不僅可以滿足客戶更全面、定制化的需求,也讓 SaaS 廠商可以向更多領(lǐng)域拓展。如果要舉一個(gè)例子的話,大家想想微信和小程序就能理解。

  而為什么 Kubernetes 會(huì)成為 PaaS 的選擇,為什么 PaaS 會(huì)成為云計(jì)算的主流,是因?yàn)槿萜骱?Kubernetes 是今日云原生概念的核心和基礎(chǔ)。云計(jì)算誕生到現(xiàn)在有十來(lái)年了,但云時(shí)代的應(yīng)用應(yīng)該長(zhǎng)什么樣子,過(guò)去一直沒(méi)有人能說(shuō)清楚,直到容器誕生后,我們終于離想象中的云時(shí)代稍微近了一些。

  通過(guò)了解軟件工程的這三個(gè)本質(zhì),你會(huì)發(fā)現(xiàn),我們上面所說(shuō)的那些分布式的技術(shù)點(diǎn)是高度一致的,也就是下面這三個(gè)方面的能力。

  分布式多層的系統(tǒng)架構(gòu)。

  服務(wù)化的能力供應(yīng)。

  自動(dòng)化的運(yùn)維能力。

  只有做到了這些,我們才能夠真正擁有云計(jì)算的威力。這就是所謂的 Cloud Native。而這些目標(biāo)都完美地體現(xiàn)在 PaaS 平臺(tái)上。前面講述的分布式系統(tǒng)關(guān)鍵技術(shù)和軟件工程的本質(zhì),都可以在 PaaS 平臺(tái)上得到完全體現(xiàn)?!愷?《洞悉 PaaS 平臺(tái)的本質(zhì)》

  云計(jì)算的未來(lái)

  過(guò)去幾年云計(jì)算的發(fā)展令人眼花繚亂,想要預(yù)測(cè)它的未來(lái)無(wú)疑是極為困難的,但只要把握住 Kubernetes 這條主線,理解從虛擬化到容器再到兩者融合的發(fā)展路線,在短期內(nèi)我們還是能做一些預(yù)測(cè)。

  這個(gè)問(wèn)題(Kubernetes 在五年后會(huì)變成怎樣)很好。我希望,在接下來(lái)的五年中,我們對(duì) Kubernetes 的討論不比對(duì) Linux 內(nèi)核的討論多。它真的應(yīng)該成為所有工作的基礎(chǔ)。如果我們接下來(lái)的行為正確,我認(rèn)為,有些事情就會(huì)成真。

  大多數(shù)開(kāi)源和 ISV(軟件供應(yīng)商)的安裝指令都是始于“選擇一個(gè)經(jīng)過(guò)認(rèn)證的 Kubernetes 集群”。第 2 步將是“運(yùn)行這個(gè) kubectl 命令”。Kubernetes 將讓第三方軟件不再憂慮開(kāi)發(fā)針對(duì)無(wú)數(shù)平臺(tái)的版本,讓那些供應(yīng)商更容易提供云提供商托管服務(wù)之外的方案。在許多情況下,使用云服務(wù)并沒(méi)什么不對(duì),但是,你應(yīng)該從你自己的基礎(chǔ)設(shè)施上也能獲得類似的體驗(yàn)。

  我相信,對(duì)于開(kāi)發(fā)流程,我們將從封閉的 PaaS 服務(wù),轉(zhuǎn)向企業(yè)可以使用一流組件組裝類似 PaaS 功能。其中,有些可能是領(lǐng)域?qū)俚?,只在一個(gè)特定的行業(yè)里應(yīng)用。企業(yè)能夠快速組裝一個(gè)完整的解決方案,提供從代碼到有強(qiáng)大防護(hù)的生產(chǎn)環(huán)境的簡(jiǎn)單路徑,也提供在需要時(shí)“打破玻璃”運(yùn)行自定義功能的能力。——Craig McLuckie,Kubernetes 創(chuàng)始人

  Kubernetes 已經(jīng)勝利,但基于 Kubernetes 的各類組件、工作流并不成熟,就像 Kubernetes 創(chuàng)始人 McLuckie 所說(shuō)的,Kubernetes 需要成為討論的“背景”,我們討論的將是基于容器編排的各種創(chuàng)新和應(yīng)用,比如 Service Mesh。

  在我看來(lái),在三到五年之后, Kubernetes 會(huì)成為服務(wù)器端的標(biāo)準(zhǔn)環(huán)境, 就像現(xiàn)在的 Linux,而 Service Mesh 就是運(yùn)行在 Kubernetes 上的分布式應(yīng)用的動(dòng)態(tài)鏈接器,屆時(shí)開(kāi)發(fā)一個(gè)分布式應(yīng)用將會(huì)像開(kāi)發(fā)單機(jī)程序一樣簡(jiǎn)單,業(yè)界在分布式操作系統(tǒng)上長(zhǎng)達(dá)三十多年的努力將以這種方式告一段落?!螢t男,普元信息云計(jì)算架構(gòu)師