不知從何時(shí)起,幾乎所有的云計(jì)算廠商都在提容器、Kubernetes、DevOps、Serverless、ServiceMesh等等概念,那么云計(jì)算領(lǐng)域到底發(fā)生了什么?如何看待云原生在2019年的最新變化?云原生基礎(chǔ)設(shè)施領(lǐng)域有哪些值得關(guān)注的重要趨勢(shì)?面對(duì)這些復(fù)雜的技術(shù)問(wèn)題,相信許多人都云里霧里。
▲靈雀云CTO陳愷
“2019年是云原生概念和技術(shù)普及的元年,未來(lái)云原生會(huì)變成一個(gè)常態(tài)。” 靈雀云CTO陳愷,有曾經(jīng)在微軟美國(guó)總部開(kāi)發(fā)云計(jì)算平臺(tái) Azure的工作經(jīng)歷,對(duì)于云原生以及相關(guān)的技術(shù)熱點(diǎn),有著獨(dú)特的視角。他認(rèn)為,在數(shù)字化轉(zhuǎn)型壓力下,大多數(shù)企業(yè)已經(jīng)能夠接受云原生概念,所以云原生普及不難,難的是如何去落地。
過(guò)去,企業(yè)傳統(tǒng)業(yè)務(wù)系統(tǒng)的研發(fā)并不受重視,比如銀行內(nèi)部的業(yè)務(wù)管理系統(tǒng),一般采用的是Oracle、SAP等第三方產(chǎn)品,不做自己的軟件產(chǎn)品研發(fā),有些企業(yè)甚至都沒(méi)有研發(fā)人員。但是,數(shù)字時(shí)代企業(yè)IT發(fā)生了根本性轉(zhuǎn)變。企業(yè)需要開(kāi)發(fā)、上線、運(yùn)營(yíng)自己的產(chǎn)品。企業(yè)之前的軟件開(kāi)發(fā)模式、迭代速度和頻率可能不能滿足數(shù)字化背景下的企業(yè)需求。軟件產(chǎn)品的場(chǎng)景由支撐角色轉(zhuǎn)向了競(jìng)爭(zhēng)性場(chǎng)景。比如車聯(lián)網(wǎng)、自動(dòng)駕駛、風(fēng)控、營(yíng)銷、互聯(lián)網(wǎng)金融等,如果軟件產(chǎn)品迭代速度跟不上,就可能失去了企業(yè)的生存空間。在這樣的背景下,云原生迎來(lái)了“施展才華的舞臺(tái)”。
隨著信息技術(shù)的不斷深入,很多企業(yè)都有大量復(fù)雜的傳統(tǒng)應(yīng)用,雖然這些應(yīng)用還在遵循傳統(tǒng)的開(kāi)發(fā)模式,但是一些新業(yè)務(wù)會(huì)以云原生的方式落地。云原生讓企業(yè)體驗(yàn)到云帶來(lái)的優(yōu)勢(shì),他們開(kāi)始考慮如何兼顧兩種類型的應(yīng)用,對(duì)傳統(tǒng)應(yīng)用進(jìn)行改造,這也是我們常說(shuō)的“雙態(tài)IT”概念,即敏態(tài)和穩(wěn)態(tài)應(yīng)用。等發(fā)展到一定階段,企業(yè)會(huì)把業(yè)務(wù)全面云原生化。
簡(jiǎn)單理解,企業(yè)在數(shù)字化轉(zhuǎn)型過(guò)程中,云原生是必然選擇,中間會(huì)涉及很多關(guān)鍵技術(shù),包括Kubernetes、DevOps、Serverless、ServiceMesh、微服務(wù)架構(gòu)等等,這些技術(shù)是一個(gè)有機(jī)統(tǒng)一體,相互關(guān)聯(lián)。那么,從選型的角度看,我們?cè)撊绾握_處理各種技術(shù)之間的關(guān)系?
1、Kubernetes會(huì)替代OpenStack嗎?
現(xiàn)在,Kubernetes在云原生領(lǐng)域的發(fā)展態(tài)勢(shì)可以說(shuō)是如火如荼,大有超過(guò)OpenStack的趨勢(shì);但另外一種聲音則表示,Kubernetes和OpenStack在不同領(lǐng)域各司其職, OpenStack面向的是底層基礎(chǔ)設(shè)施的虛擬化,而Kubernetes更多面向的是應(yīng)用層。那么,Kubernetes和OpenStack到底是怎樣一種關(guān)系,Kubernetes會(huì)替代OpenStack嗎?
“的確,Kubernetes和OpenStack二者應(yīng)用并不沖突,但隨著Kubernetes的發(fā)展,OpenStack的應(yīng)用場(chǎng)景會(huì)越來(lái)越小。” 陳愷認(rèn)為,Kubernetes超越OpenStack是一件自然而然的事兒。
OpenStack剛剛誕生的時(shí)候,很多企業(yè)認(rèn)為它更適合做公有云,但是采用OpenStack做公有云不太可能成功。后來(lái),大部分企業(yè)用OpenStack做私有云,但是經(jīng)過(guò)一段時(shí)間驗(yàn)證,OpenStack的優(yōu)勢(shì)并沒(méi)有完全超越VMware。而Docker和K8s出來(lái)以后,底層技術(shù)平臺(tái)的游戲規(guī)則徹底被改寫(xiě),Kubernetes容器編排平臺(tái)變成Stack的中心,不管是VMware、OpenStack還是公有云以及裸機(jī),所有的應(yīng)用環(huán)境都能支持。
靈雀云基于開(kāi)源Kubernetes分不同層級(jí)給企業(yè)用戶提供產(chǎn)品和服務(wù)。最底層的是Alauda Kubernetes(AKS),是一個(gè)企業(yè)就緒的K8s發(fā)行版,跟上游K8s 最接近,包含開(kāi)發(fā)者和企業(yè)用戶都需要的功能,如:自動(dòng)化部署、網(wǎng)絡(luò)存儲(chǔ)、升級(jí)、企業(yè)用戶/租戶權(quán)限和監(jiān)控、日志等都集成在其中,開(kāi)箱即用。和社區(qū)版Kubernetes相比,靈雀云企業(yè)就緒發(fā)行版的最大的區(qū)別是,“源于K8s ,但高于K8s”,它基于100多家頭部客戶的生產(chǎn)環(huán)境經(jīng)驗(yàn)。再往上一層,是靈雀云的ACP 2.0(Alauda Container Platform),它的定位是一站式云原生應(yīng)用賦能平臺(tái),包含三個(gè)子產(chǎn)品:一個(gè)是容器平臺(tái)(Alauda Container Platform)、DevOps平臺(tái)(Alauda DevOps)和服務(wù)網(wǎng)格Service Mesh(Alauda Service Mesh,簡(jiǎn)稱“ASM”),是用來(lái)做微服務(wù)治理的平臺(tái)。
2、為什么要打造開(kāi)放式DevOps工具鏈集成與編排平臺(tái)?
除了推出與Kubernetes相關(guān)的產(chǎn)品,靈雀云還要打造一個(gè)開(kāi)放式的DevOps工具鏈集成和編排平臺(tái)。如何理解這一概念?
“盡管DevOps本身和K8s關(guān)系不大,但是我們的產(chǎn)品架構(gòu)是基于K8S原生架構(gòu)。換句話說(shuō),我們用K8s作為開(kāi)發(fā)框架,用它的API來(lái)編排所有DevOps需要的工具。”很多企業(yè)在做DevOps時(shí),流程非常長(zhǎng),涉及到很多階段,每個(gè)階段都要選很多工具,并且沒(méi)有固定標(biāo)準(zhǔn)。靈雀云DevOps平臺(tái)并不是要做一系列新的工具出來(lái),說(shuō)服用戶用靈雀云的CI/CD,而是盡可能地去兼容客戶已有的工具,甚至對(duì)用戶未來(lái)的工具選型也能適配,用更開(kāi)放式的集成和編排方式,去納管客戶所有的工具。
所以, 靈雀云的DevOps工具鏈集成主要服務(wù)于三個(gè)場(chǎng)景:第一,CI/CD;第二,敏捷性的項(xiàng)目管理;第三,DevOps端到端的數(shù)據(jù)可視化,把不同工具的數(shù)據(jù)打通,然后在整個(gè)DevOps流程里面通過(guò)數(shù)據(jù)串連。同時(shí),提煉DevOps落地最佳實(shí)踐,將DevOps最佳實(shí)踐自動(dòng)化,作為服務(wù)提供給客戶。
3、如何理解微服務(wù)架構(gòu)?
至于,微服務(wù)架構(gòu),本質(zhì)上是用運(yùn)維的復(fù)雜度去換取敏捷性。
在陳愷看來(lái),微服務(wù)早期很痛苦,因?yàn)闆](méi)有相配套的工具以及相關(guān)的基礎(chǔ)設(shè)施去管理應(yīng)用的復(fù)雜度,微服務(wù)改造效果完全依賴技術(shù)團(tuán)隊(duì)本身的能力和水平。一些技術(shù)能力很強(qiáng)的企業(yè),會(huì)在微服務(wù)改造過(guò)程中慢慢沉淀出屬于自己的微服務(wù)工具和框架,然后再把這些工具和框架開(kāi)源出來(lái)。
另外,企業(yè)早期做微服務(wù)之所以很痛苦,是因?yàn)閼?yīng)用的復(fù)雜度是未知狀態(tài),開(kāi)始做微服務(wù)的時(shí)候沒(méi)有意識(shí)到,具體操作后才發(fā)現(xiàn),把一個(gè)單體應(yīng)用變成一個(gè)分布式單體應(yīng)用,是非常痛苦的一件事。后來(lái),當(dāng)容器和K8s成為流行趨勢(shì)后,微服務(wù)才有了與之配套的工具和基礎(chǔ)設(shè)施。
其實(shí),K8s剛開(kāi)始出現(xiàn)的時(shí)候,很多人把它拿來(lái)和SpringCloud對(duì)比,因?yàn)橹昂芏嗳硕加肧pringCloud來(lái)做微服務(wù)治理,解決服務(wù)的復(fù)雜度。但是K8s和SpringCloud放在一起使用總是有些別扭,后來(lái)基于大型互聯(lián)網(wǎng)公司的一些業(yè)務(wù)驅(qū)動(dòng)的實(shí)踐,在K8s之上探索出了新的微服務(wù)治理的方式,Service Mesh、Istio 、Envoy等優(yōu)秀的技術(shù)和產(chǎn)品,都是用戶不斷選擇不斷創(chuàng)新出來(lái)的。
4、函數(shù)計(jì)算會(huì)是Serverless的最佳實(shí)現(xiàn)范例嗎?
眾所周知,函數(shù)計(jì)算最主流的產(chǎn)品就是AWS Lambda,2014年亞馬遜正式推出。Lambda的推出,標(biāo)志著Serverless時(shí)代正式開(kāi)啟,所以Serverless的大多數(shù)應(yīng)用場(chǎng)景都在Lambda上面。
但是,Lambda并不是一個(gè)開(kāi)放式的標(biāo)準(zhǔn),綁定性比較強(qiáng),這意味著你的API、函數(shù)包裝的格式都必須是AWS的應(yīng)用,否則如果將來(lái)要遷移,會(huì)有很多不確定性。尤其是國(guó)內(nèi)的很多企業(yè),他們不希望把所有的應(yīng)用全部放在公有云,這是Serverless模式落地的最大挑戰(zhàn)。
但是,從總體發(fā)展趨勢(shì)上看,大家對(duì)于這種按需服務(wù)的Serverless模式非常感興趣。雖然從個(gè)人角度看,Serverless模式看不到服務(wù)器,但其實(shí)它的服務(wù)器在由公有云廠商負(fù)責(zé)。而私有云模式,服務(wù)器就在企業(yè)用戶的眼前。Serverless的一大賣點(diǎn)是,從0到無(wú)限的規(guī)模化擴(kuò)展能力,這在公有云上容易實(shí)現(xiàn),但私有環(huán)境很難具備這樣的優(yōu)勢(shì)。不過(guò),無(wú)論是私有云廠商還是社區(qū),都在極力推動(dòng)私有部署的Serverless架構(gòu)的發(fā)展。并且,從技術(shù)層面,也逐漸達(dá)成了共識(shí)。我們可以用K8s編排容器、虛擬機(jī)等,為什么不能用來(lái)編排函數(shù)?這是正在進(jìn)行中的一個(gè)趨勢(shì)。
而從最佳實(shí)踐角度看,Serverless概念本身肯定要比Function更廣泛,Serverless可以包含函數(shù)、數(shù)據(jù)庫(kù),所有服務(wù)都可以是Serverless的,比如:Fargate,這種無(wú)服務(wù)器的容器服務(wù)也算Serverless,任何不用自己管理服務(wù)器的行為都可以叫Serverless。
總體來(lái)看,云原生是大勢(shì)所趨,而靈雀云會(huì)以基礎(chǔ)設(shè)施管理為核心,Kubernetes、DevOps、微服務(wù)三大技術(shù)為牽引力,不斷做技術(shù)層面的布局。對(duì)于企業(yè)專注的云原生核心應(yīng)用和技術(shù)能力,會(huì)進(jìn)行產(chǎn)品和研發(fā)方面的投入;對(duì)于云原生和容器周邊應(yīng)用,則借助外部合作伙伴力量,集成第三方產(chǎn)品,逐步擴(kuò)大云原生服務(wù)能力。