地址:北京市密云區(qū)高嶺鎮(zhèn)政府辦公樓
王經(jīng)理 13393261468
Q Q:514468705/1049705527
郵箱:jhcxkj@163.com
無服務(wù)器計(jì)算是一種由云提供商完全管理代碼執(zhí)行的體系結(jié)構(gòu),而不是傳統(tǒng)的將開發(fā)應(yīng)用程序部署到服務(wù)器上的方式。
這意味著開發(fā)人員在部署代碼時(shí)不必?fù)?dān)心管理、采購(gòu)和維護(hù)服務(wù)器。以前,開發(fā)人員必須考慮部署前需要多少存儲(chǔ)和數(shù)據(jù)庫容量,這減慢了整個(gè)過程。
無服務(wù)器的功能有哪些?
無服務(wù)器依賴于功能即服務(wù)(functions-as-a-service),開發(fā)人員將他們的應(yīng)用程序分解成小的、無狀態(tài)的塊,這意味著他們可以在沒有任何與底層服務(wù)器相關(guān)的的情況下執(zhí)行。
最受歡迎的功能即服務(wù)產(chǎn)品之一是來自市場(chǎng)領(lǐng)先云供應(yīng)商Amazon Web Services (AWS)的AWS Lambda。Lambda早在2014年就推出了,在Lambda上,開發(fā)人員無需配置或管理服務(wù)器即可運(yùn)行代碼。AWS按100毫秒的增量對(duì)使用的計(jì)算能力收費(fèi)。因此,開發(fā)人員可以專注于他們的代碼和事件觸發(fā)器,而AWS負(fù)責(zé)其余的工作。
AWS負(fù)責(zé)的工作可能包括對(duì)Amazon S3或Amazon DynamoDB表中的數(shù)據(jù)進(jìn)行更改、響應(yīng)使用Amazon API Gateway的HTTP請(qǐng)求或使用AWS SDK進(jìn)行的API調(diào)用。例如,當(dāng)用戶在乘車共享應(yīng)用程序上申請(qǐng)汽車時(shí),這可能觸發(fā)寫入獲取汽車的代碼,或者點(diǎn)擊應(yīng)用程序上的"購(gòu)買"按鈕將觸發(fā)該購(gòu)買過程。
"Lambda是一個(gè)由事件驅(qū)動(dòng)的執(zhí)行環(huán)境,"AWS的Ian Massingham解釋道, "因此,在非常簡(jiǎn)單的術(shù)語中,只要您有代碼和事件,當(dāng)事件發(fā)生時(shí),代碼會(huì)自動(dòng)為您執(zhí)行。您不必預(yù)先定位資源或創(chuàng)建任何常設(shè)基礎(chǔ)架構(gòu)來提供執(zhí)行環(huán)境。"
他當(dāng)事件被觸發(fā)時(shí),系統(tǒng)會(huì)自動(dòng)分配基礎(chǔ)設(shè)施來執(zhí)行代碼:首先在機(jī)器上啟動(dòng)的Linux容器和詳細(xì)信息,然后獲得有關(guān)事件的元數(shù)據(jù),最后將數(shù)據(jù)傳遞到執(zhí)行點(diǎn)。
這與AWS本身內(nèi)部的"傳統(tǒng)"部署模型相反,EC2 (彈性計(jì)算云)實(shí)例運(yùn)行Web服務(wù)器或應(yīng)用程序服務(wù)器,以及確定何時(shí)為他們提供服務(wù)。這為企業(yè)提供了超低成本,使用Lambda時(shí)的執(zhí)行成本為0。而且,它在低使用率時(shí)具有高成本效益,在高使用率時(shí)更具可擴(kuò)展性,因此不管規(guī)模大小都有好處。
Massingham表示,重要的是,Lambda并不完全等同于無服務(wù)器。 Lambda是執(zhí)行部分,無服務(wù)器要大一些。"除了計(jì)算之外,您還希望不需要操作基礎(chǔ)架構(gòu)就能運(yùn)行數(shù)據(jù)存儲(chǔ), Lambda就是一種不需要您操作基礎(chǔ)架構(gòu)的方法。
在2016年的主題演講中,亞馬遜CTO Werner Vogels用了一個(gè)比喻:"以前,你的服務(wù)器就像寵物一樣。如果它們生病了,你就得把它們養(yǎng)好。它們像是牛,你必須放他們?nèi)コ圆荨5跓o服務(wù)器中沒有這樣的牛,只有您的應(yīng)用程序。您甚至不需要考慮恢復(fù)其健康或獲得新的應(yīng)用程序,其中的所有的任務(wù)都能自動(dòng)執(zhí)行。"
有哪些廠商正在提供無服務(wù)器解決方案?
不過,無服務(wù)器并不只是對(duì)AWS客戶可用。IBM OpenWhisk是另一種基于事件的體系結(jié)構(gòu)。谷歌具有云功能,"開發(fā)人員可以創(chuàng)建單一用途的、獨(dú)立的功能來響應(yīng)云事件,而不需管理服務(wù)器或運(yùn)行時(shí)環(huán)境"。類似地,微軟也有Azure功能。
2019年4月,谷歌云宣布推出Cloud Run的公共測(cè)試版,這是一個(gè)完全托管的環(huán)境,供客戶以"無服務(wù)器"方式部署應(yīng)用程序。
在當(dāng)時(shí)發(fā)布的博客文章中,工程副總裁Eyal Manor和谷歌云產(chǎn)品管理總監(jiān)Oren Teich表示:"傳統(tǒng)的無服務(wù)器產(chǎn)品遇到了諸如運(yùn)行時(shí)支持受限和供應(yīng)商鎖定等挑戰(zhàn)。開發(fā)人員經(jīng)常需要在各種糾結(jié)中選擇:到底選擇無服務(wù)器帶來的易用性和速度,還是選擇容器帶來的靈活性和可遷移性。但在谷歌云,這兩種優(yōu)勢(shì)你可以同時(shí)擁有。"
以前,谷歌用戶可以使用谷歌云功能有效地運(yùn)行無服務(wù)器,運(yùn)行客戶可以"運(yùn)行無狀態(tài)HTTP驅(qū)動(dòng)的容器,而不必?fù)?dān)心基礎(chǔ)設(shè)施"。然后,客戶將被按每100毫秒的使用時(shí)間收取費(fèi)用。
Cloud Run基本上可以根據(jù)請(qǐng)求旋轉(zhuǎn)Docker容器,這意味著開發(fā)人員可以編寫代碼并將其提交到Cloud Run環(huán)境,GCP將負(fù)責(zé)配置和管理服務(wù)器,以及自動(dòng)擴(kuò)展以確??蛻粽嬲Ц端麄兪褂玫臅r(shí)間。
"我們可以做各種專有的緩存和性能增強(qiáng),"Teich說,"因此,Cloud Run能夠利用我們?cè)谶^去十年中建立的良好基礎(chǔ),滿足用戶規(guī)?;约办`活部署需求。"
Cloud Ru還可以與Google Kubernetes Engine(GKE)協(xié)同工作,這意味著客戶"可以在現(xiàn)有GKE集群上運(yùn)行無服務(wù)器"。您可以將相同的無狀態(tài)HTTP服務(wù)部署到GKE集群,同時(shí)抽象出復(fù)雜的Kubernetes概念。"
Oracle還在JavaOne 2017大會(huì)上宣布了與云無關(guān)的無服務(wù)器Fn項(xiàng)目。在關(guān)于這個(gè)主題的博客文章中,Gluon和LodgON的聯(lián)合創(chuàng)始人Johan Vos寫道:"Fn的一個(gè)關(guān)鍵特征是,雖然它打算在云環(huán)境中運(yùn)行,但它并不依賴于特定的云供應(yīng)商。平臺(tái)本身可以托管在任何支持Docker的云環(huán)境中。這意味著您可以在Oracle云上運(yùn)行它,但您也可以在自己的基礎(chǔ)架構(gòu)或其他云系統(tǒng)上運(yùn)行它,例如,AWS 、Google云、Microsoft Azure等。"
如何看待無服務(wù)器的未來發(fā)展?
2018年11月,亞馬遜CTO Werner Vogels在其"2018年re: create"主題演講時(shí)談到了無服務(wù)器計(jì)算的發(fā)展軌跡,尤其是它與企業(yè)的關(guān)系。
他表示,通常應(yīng)該是更年輕的、以技術(shù)為導(dǎo)向的企業(yè)率先嘗試這種技術(shù),但我們實(shí)際上看到的是,大型企業(yè)才是真正擁抱無服務(wù)器技術(shù)的企業(yè)。只需要構(gòu)建業(yè)務(wù)邏輯而不考慮其他任何事情的概念確實(shí)推動(dòng)了無服務(wù)器的發(fā)展。
吉他制造商芬達(dá)(Fender)也加入了Vogels的行列,該公司使用Lambda觸發(fā)器來支撐其數(shù)字內(nèi)容流程,并大談其解放開發(fā)者、專注于其數(shù)字產(chǎn)品而非基礎(chǔ)設(shè)施的雄心。
Vogels表示,甚至像Fender這樣的傳統(tǒng)企業(yè) 也在走向無服務(wù)器。無服務(wù)器的好處是顯而易見的:無需提供任何服務(wù),它可以自動(dòng)擴(kuò)展,并且具有高度可用性和安全性。最重要的是,你只需為你使用過的東西付費(fèi)。
AWS Lambda工程總監(jiān)Holly Mesrobian說:"人們討論過很多關(guān)于可伸縮性、可靠性、性能、安全性和成本的問題。當(dāng)我們構(gòu)建AWS Lambda時(shí)以無服務(wù)器的方式對(duì)所有這些問題進(jìn)行優(yōu)化。"
在增強(qiáng)這些功能時(shí),讓開發(fā)人員興奮的是Firecracker的開源版本,它允許安全的無服務(wù)器開發(fā),同時(shí)不會(huì)降低性能。
Firecracker擴(kuò)展了它的工作原理,為無服務(wù)器計(jì)算提供了安全、快速的microVM 。為了實(shí)現(xiàn)安全性,它設(shè)計(jì)的速度非???,在不到125毫秒的時(shí)間內(nèi)啟動(dòng)代碼,創(chuàng)建速度高于每臺(tái)主機(jī)每秒150個(gè)microVM的速度。Firecracker同時(shí)確保了規(guī)模和效率,其內(nèi)存開銷低且每個(gè)microVM的內(nèi)存占用量小于5MB,每個(gè)主機(jī)上有數(shù)千個(gè)microVM。
讓開發(fā)人員如此激動(dòng)的原因是,它帶來了Fargate的性能變化,F(xiàn)argate是AWS計(jì)算引擎,允許客戶無需管理服務(wù)器或集群即可運(yùn)行系統(tǒng)。
無服務(wù)器有哪些落地案例?
丹麥網(wǎng)絡(luò)公司Trustpilot是一家真正應(yīng)用無服務(wù)器的公司。
該公司成為云企業(yè)已經(jīng)有五年了,運(yùn)行由事件驅(qū)動(dòng)的微服務(wù)和REST api組成的高級(jí)體系結(jié)構(gòu)。它在線整合了對(duì)產(chǎn)品和服務(wù)的獨(dú)立評(píng)論,該公司首先"無服務(wù)器化",并將在2019年年中關(guān)閉其最后一個(gè)EC2實(shí)例。
它的第一步是確定Trustpilot所謂的"工程原理",以便在其架構(gòu)中添加"無服務(wù)器優(yōu)先"。
其原則是:堅(jiān)信無服務(wù)器(FaaS、BaaS、DBaaS)是云的未來,并站在這一趨勢(shì)的最前沿。目前,無服務(wù)器可能不是所有企業(yè)的最佳選擇,但是改變正從這里開始,虛擬服務(wù)器正在被淘汰。
該公司現(xiàn)已減少運(yùn)行53%的虛擬服務(wù)器,從今180個(gè)到今天的95個(gè)。同時(shí)已經(jīng)擁有283個(gè)容器,比2016年的80個(gè)增加了354%。另外,常規(guī)Lambda功能從40個(gè)增加到252個(gè)。
其他已經(jīng)通過Lambda將應(yīng)用程序移至無服務(wù)器的企業(yè)客戶包括Thomson Reuters、Finra、Hearst、Vevo和Expedia。
在谷歌云中,Teich表示,在過去一年左右的時(shí)間里使用Alpha Run的客戶運(yùn)行了大量的程序,他們已經(jīng)取消并轉(zhuǎn)移他們現(xiàn)有的基于Web的數(shù)據(jù)。 他還強(qiáng)調(diào)了Alpha Run在科學(xué)界的受歡迎程度。
總而言之,現(xiàn)在是應(yīng)用無服務(wù)器的最佳時(shí)機(jī)。
來源:精密空調(diào) http://preweds.com