作為云計(jì)算領(lǐng)域的排頭兵,AWS一直是“老大哥”形象,他的一舉一動(dòng)都牽動(dòng)著無(wú)數(shù)人的神經(jīng)。AWS不僅在云計(jì)算領(lǐng)域投入時(shí)間早、運(yùn)行時(shí)間長(zhǎng)、客戶多,在無(wú)服務(wù)器、容器以及現(xiàn)代化應(yīng)用工具開(kāi)發(fā)方面,也是當(dāng)之無(wú)愧的引領(lǐng)者。所以,很多企業(yè)都把AWS的產(chǎn)品當(dāng)做云計(jì)算領(lǐng)域的晴雨表,是新技術(shù)發(fā)展的“風(fēng)向標(biāo)”。
在容器技術(shù)定型之前,AWS沒(méi)有站隊(duì),因?yàn)?a href="http://www.qzkangyuan.com/cnidc/cloud/yzx/2017/15290.html">AWS擁有自己的一套理念,就是“我建應(yīng)用,你直接使用”。但有意思的是,當(dāng)以Kubernetes為代表的容器時(shí)代來(lái)臨,AWS也開(kāi)始擁抱這一趨勢(shì),推出新的“產(chǎn)品矩陣”。
那么,AWS到底如何看待容器,尤其是Kubernetes的技術(shù)發(fā)展趨勢(shì)?未來(lái)將如何部署容器、微服務(wù)方面的產(chǎn)品及解決方案?在開(kāi)源技術(shù)支持方面,歐洲服務(wù)器,有哪些新動(dòng)態(tài)?AWS現(xiàn)代化應(yīng)用產(chǎn)品系列負(fù)責(zé)人Aaron Kao,接受了IT168等媒體的采訪。
▲AWS現(xiàn)代化應(yīng)用產(chǎn)品系列負(fù)責(zé)人Aaron Kao
“并不是只有互聯(lián)網(wǎng)公司在使用新技術(shù),以汽車(chē)服務(wù)網(wǎng)站Edmunds、媒體公司Turner為例,你可能覺(jué)得這些公司很傳統(tǒng),但事實(shí)上他們已經(jīng)在使用AWS的容器服務(wù)、無(wú)服務(wù)器服務(wù)。”Aaron Kao表示,AWS之所以做出改變,在容器方面加大布局力量,最大的源動(dòng)力是客戶。
構(gòu)建現(xiàn)代化應(yīng)用,已成為主流趨勢(shì)
Kubernetes之所以受熱捧,和企業(yè)想通過(guò)現(xiàn)代化手段進(jìn)行微服務(wù)改造,密切相關(guān)。盡管這是一個(gè)新趨勢(shì),但是AWS早在十多年前就已經(jīng)將微服務(wù)用于內(nèi)部實(shí)踐。
和大多數(shù)企業(yè)一樣,歐洲服務(wù)器,亞馬遜的網(wǎng)站起初也是一個(gè)大型的單體架構(gòu),所有開(kāi)發(fā)人員都基于同一個(gè)應(yīng)用進(jìn)行開(kāi)發(fā)。這對(duì)系統(tǒng)的快速迭代來(lái)說(shuō),產(chǎn)生了巨大壓力,只要有新產(chǎn)品添加,就必須對(duì)原代碼進(jìn)行編輯、修改。
從2001年開(kāi)始,亞馬遜開(kāi)始思考:如何通過(guò)現(xiàn)代化應(yīng)用改變系統(tǒng)架構(gòu)的敏捷性?所以,把應(yīng)用分解為多個(gè)微服務(wù),讓“雙披薩團(tuán)隊(duì)”負(fù)責(zé)從發(fā)現(xiàn)應(yīng)用到應(yīng)用開(kāi)發(fā)、再到應(yīng)用部署的整個(gè)流程,便成為了亞馬遜進(jìn)行企業(yè)變革的最初模型,這也是我們常常提及的DevOps開(kāi)發(fā)應(yīng)用模式。
亞馬遜走過(guò)的這段旅程,后來(lái)也成為數(shù)千萬(wàn)客戶的最終選擇。為了幫助自己以及更多客戶走向現(xiàn)代化應(yīng)用世界,AWS在2013年推出了存儲(chǔ)服務(wù)Amazon S3。剛開(kāi)始推出S3的時(shí)候只有8個(gè)微服務(wù),現(xiàn)在已發(fā)展為235個(gè)以上的分布式微服務(wù)。
那么,什么是現(xiàn)代化應(yīng)用程序?對(duì)于廣大用戶來(lái)說(shuō),走向現(xiàn)代化應(yīng)用要從何處入手?
Aaron Kao的答案是,首先在要系統(tǒng)架構(gòu)上進(jìn)行變革,與之相關(guān)的還有運(yùn)營(yíng)模式、軟件交付、安全模型以及數(shù)據(jù)管理方面的改變。
過(guò)去,那種單一體系架構(gòu),系統(tǒng)與系統(tǒng)之間是緊耦合模式,如果應(yīng)用程序的某一節(jié)點(diǎn)遇到了峰值,必須要擴(kuò)展整個(gè)架構(gòu)。隨著代碼庫(kù)的不斷加大,添加或者改變單體應(yīng)用程序的功能就變得越來(lái)越復(fù)雜。而微服務(wù)架構(gòu)是松耦合狀態(tài),每一個(gè)團(tuán)隊(duì)做一個(gè)服務(wù),每個(gè)服務(wù)執(zhí)行一個(gè)功能,系統(tǒng)與系統(tǒng)之間是相互獨(dú)立的狀態(tài),可以讓不同的團(tuán)隊(duì)開(kāi)發(fā)不同的服務(wù),通過(guò)輕量級(jí)的API調(diào)用來(lái)實(shí)現(xiàn)服務(wù)與服務(wù)之間的串聯(lián)。如果你想對(duì)某個(gè)服務(wù)進(jìn)行擴(kuò)展,只擴(kuò)展單個(gè)系統(tǒng)就能實(shí)現(xiàn),修改代碼也很容易,不影響其他應(yīng)用。
而容器之所以從五年之前開(kāi)始成為流行趨勢(shì),最首要原因是:它提供了一個(gè)非常容易的機(jī)制,來(lái)幫助用戶打包你的應(yīng)用,并且能快速部署到任意一個(gè)環(huán)境中,實(shí)現(xiàn)快速擴(kuò)容、縮容的目的。
所以,很多用戶都愿意在容器方面做更多探索。比如:麥當(dāng)勞的送貨上門(mén)服務(wù),使用的就是Amazon ECS,只需短短四個(gè)月時(shí)間就實(shí)現(xiàn)了微服務(wù)改造。通過(guò)這種云原生的微服務(wù)架構(gòu),用戶可以用不到100毫秒的延遲,就可以擴(kuò)展為每秒兩萬(wàn)個(gè)訂單,而且能夠輕松地與全球交付合作伙伴進(jìn)行系統(tǒng)集成。再比如:??怂?Fox),其數(shù)字化平臺(tái)FOX NOW,也是基于AWS的容器化、微服務(wù)解決方案來(lái)構(gòu)建和交付。
AWS將打造史上最全容器產(chǎn)品家族
問(wèn)題是,關(guān)于AWS容器服務(wù),有Amazon ECS、Amazon EKS、Amazon ECR以及AWS Fargate,還有最新的AWS Lambda,我們?nèi)绾螀^(qū)分和使用這些應(yīng)用?
Aaron Kao把AWS容器產(chǎn)品分為三個(gè)層面:第一層是編排層,包括ECS和EKS,用戶可以根據(jù)需求選擇。如果沒(méi)有明確的傾向性,可以選擇ECS,如果客戶專注于自己的基礎(chǔ)架構(gòu),可以通過(guò)EKS搭建編排服務(wù);第二層,也是中間計(jì)算引擎層,包括EC2和Fargate。想要把容器運(yùn)行在某一個(gè)計(jì)算平臺(tái)上,用戶可以使用EC2作為啟動(dòng)類型來(lái)運(yùn)行容器,也可以使用Fargate來(lái)啟動(dòng)無(wú)服務(wù)器的運(yùn)行;最后一個(gè)是底層的映像注冊(cè),通過(guò)ECR來(lái)完成,它可以存儲(chǔ)容器映像文件,讓容器注冊(cè)表非常易用。