發(fā)布于:2021-01-11 15:30:15
0
159
0
無服務(wù)器是當(dāng)前熱門話題,它對不同的人意味著不同的意思。我們采訪了New Relic云架構(gòu)高級總監(jiān)Lee Atchison,討論了無服務(wù)器對他的意義,它如何改變應(yīng)用程序的開發(fā)方式以及無服務(wù)器對未來基礎(chǔ)架構(gòu)的影響。
構(gòu)建無服務(wù)器應(yīng)用程序意味著您的開發(fā)人員可以將更多時間集中在交付核心產(chǎn)品上
JAXenter:無服務(wù)器一詞是一個頗具爭議的流行詞:服務(wù)器仍在使用中。此外,每個人似乎都將無服務(wù)器理解為不同的東西(即FaaS或BaaS)。對于您個人而言,無服務(wù)器是什么?
Lee Atchison: 對我來說,無服務(wù)器最有用的定義是任何平臺級服務(wù),它可以為客戶提供功能,而客戶無需了解或了解運行該服務(wù)的底層基礎(chǔ)結(jié)構(gòu)。
使用此定義作為基準(zhǔn),AWS Lambda等FaaS產(chǎn)品當(dāng)然可以勝任,但是,同樣,Amazon S3也將被視為無服務(wù)器產(chǎn)品。
Amazon S3將存儲功能作為服務(wù)提供,而消費者不需要任何知識或?qū)\行該服務(wù)的基礎(chǔ)架構(gòu)的任何了解。
了解基于服務(wù)器的服務(wù)和無服務(wù)器服務(wù)之間區(qū)別的最好方法是了解Amazon DynamoDB和Amazon RDS之間的區(qū)別。
它們都是數(shù)據(jù)庫產(chǎn)品。DynamoDB是無服務(wù)器的,因為您不必了解或理解基礎(chǔ)服務(wù)器體系結(jié)構(gòu)。Amazon RDS是基于服務(wù)器的,因為您必須了解并了解該服務(wù)在其中運行的服務(wù)器,因此,您需要配置服務(wù)器的正確大小并建立適當(dāng)?shù)娜哂嗪蛡浞?。這兩種服務(wù)是比較基于服務(wù)器的服務(wù)和無服務(wù)器服務(wù)的好方法。
AWS無服務(wù)器服務(wù)的示例:
AWS Lambda
DynamoDB
SNS / SQS
CloudFront
基于AWS Server的服務(wù)示例:
RDS
ElastiCache
ECS / EKS
Elastic Beanstalk
總體而言,與基于服務(wù)器的服務(wù)相比,配置和擴展無服務(wù)器服務(wù)要容易得多。
JAXenter:從開發(fā)人員的角度來看,無服務(wù)器具有許多優(yōu)點。一是您幾乎不必擔(dān)心基礎(chǔ)架構(gòu)。您認為無服務(wù)器如何改變開發(fā)人員的日常生活?
Lee Atchison: 開發(fā)人員,特別是那些使用DevOps方法構(gòu)建,部署和運營服務(wù)的開發(fā)人員,將從基于云的基礎(chǔ)架構(gòu)服務(wù)中受益匪淺。尤其是無服務(wù)器技術(shù),可使日常開發(fā)人員更高效地使用和擴展基礎(chǔ)架構(gòu)服務(wù)。此外,開發(fā)人員現(xiàn)在可以利用托管服務(wù),使他們能夠構(gòu)建從基于事件的簡單工作負載到復(fù)雜的視頻管道的所有內(nèi)容,而無需管理運行任何服務(wù)器的復(fù)雜性。開始使用這些服務(wù)的開銷很低,并且在它們上構(gòu)建和維護生產(chǎn)工作負載所需的最低工作量為軟件工程師提供了加速創(chuàng)新的機會。
但是,這并不意味著開發(fā)人員可以解決所有問題。作為一個簡單的示例,AWS Lambda的用戶仍然必須考慮性能和擴展性,因為特定的AWS Lambda函數(shù)的性能特征可能會根據(jù)該函數(shù)的使用模式以及其運行規(guī)模而變化。這些差異可能會對基于無服務(wù)器的基礎(chǔ)架構(gòu)的便捷性產(chǎn)生不利影響。簡而言之,僅僅是因為您不必擴展服務(wù)器并不意味著您不必考慮和處理擴展問題。
JAXenter:開發(fā)人員并不是受新模型影響的唯一人,特別是當(dāng)您想到DevOps時:無服務(wù)器方法對操作員/系統(tǒng)管理員的影響是什么?
Lee Atchison: 影響開發(fā)人員的相同挑戰(zhàn)也影響了現(xiàn)代運營人員。隨著我們的前進,這些角色在DevOps領(lǐng)域變得越來越交織在一起。
但是,對基礎(chǔ)設(shè)施運營管理的需求將繼續(xù)至關(guān)重要。操作團隊仍將負責(zé)確保已正確配置要創(chuàng)建的環(huán)境以進行故障轉(zhuǎn)移。此外,Ops將負責(zé)監(jiān)視云服務(wù),這將為他們提供必要的信息,以改善未來的云服務(wù)使用情況。運營團隊非常適合在無服務(wù)器旅程的下一個階段中為組織提供支持。
JAXenter:在DevOps的上下文中,可觀察性和監(jiān)視是非常重要的主題。由于您不再以運營商的身份負責(zé)基礎(chǔ)架構(gòu),因此可觀察性在無服務(wù)器應(yīng)用程序中如何工作?
Lee Atchison: 可觀察性更多地涉及端到端全棧應(yīng)用程序視圖以及所運行基礎(chǔ)架構(gòu)的低級詳細信息。諸如跟蹤之類的可觀察性功能變得越來越重要。此外,在單個統(tǒng)一視圖中結(jié)合了高級可觀察性模式(例如應(yīng)用程序跟蹤)和低級監(jiān)視功能(例如服務(wù)器監(jiān)視,Kubernetes /容器監(jiān)視和云服務(wù)監(jiān)視)的功能,使您可以比較和查明因果關(guān)系變得越來越重要。
例如,由于后端依賴性,服務(wù)可能無法通過SLA??捎^察性使團隊能夠做的是,快速查看并了解依賴關(guān)系正在使用當(dāng)前遇到問題的云服務(wù)。團隊擁有這種能力以保持其服務(wù)正常運行至關(guān)重要。
賈克森特:西蒙·沃德利(Simon Wardley)提出了這樣的論點,即容器和Kubernetes只是軟件開發(fā)歷史上的一種邊緣現(xiàn)象,并且由于“無服務(wù)器正在吞噬整個世界”,很快就會過時。你對那個怎么想的?
Lee Atchison: 無服務(wù)器技術(shù)使工程師能夠構(gòu)建具有更高敏捷性和更低總擁有成本的現(xiàn)代應(yīng)用程序。構(gòu)建無服務(wù)器應(yīng)用程序意味著您的開發(fā)人員可以將更多時間用于交付核心產(chǎn)品,而不是管理和操作服務(wù)器或運行時。減少的開銷使開發(fā)人員可以節(jié)省時間和精力,以花費在開發(fā)具有規(guī)模和可靠性的優(yōu)質(zhì)產(chǎn)品上。
容器技術(shù)也將是難題的主要部分,它將成為未來構(gòu)建和維護現(xiàn)代應(yīng)用程序的關(guān)鍵組成部分。
JAXenter:最后,簡要介紹一下水晶球:2020年無服務(wù)器將扮演什么角色?
Lee Atchison: 無服務(wù)器將成為與其他現(xiàn)代技術(shù)一起被稱為“動態(tài)基礎(chǔ)架構(gòu)”的關(guān)鍵服務(wù)之一??傮w而言,動態(tài)基礎(chǔ)架構(gòu)將用于構(gòu)建高度可擴展,高可用性,基于服務(wù)的應(yīng)用程序,這些將構(gòu)成我們現(xiàn)代世界的心臟。
明年,預(yù)計無服務(wù)器將成為企業(yè)應(yīng)用程序中的主流,并與微服務(wù)和傳統(tǒng)應(yīng)用程序體系結(jié)構(gòu)等其他技術(shù)進一步集成。無服務(wù)器并不一定會取代傳統(tǒng)計算的需求,并且我們將在未來看到Kubernetes和容器即服務(wù)模型的顯著增長。