無(wú)服務(wù)器只是炒作嗎?技術(shù)上如何發(fā)展?

責(zé)任編輯:cdeng

2018-01-31 10:36:44

摘自:IT168

無(wú)服務(wù)器是當(dāng)前軟件架構(gòu)模式中的熱門(mén)話題之一,像許多軟件工程中的其他術(shù)語(yǔ)或趨勢(shì)一樣,無(wú)服務(wù)器也沒(méi)有一個(gè)明確的定義,所以在這篇文章中我們會(huì)簡(jiǎn)單介紹一下無(wú)服務(wù)器的基本概念,并圍繞無(wú)服務(wù)器的幾個(gè)爭(zhēng)論點(diǎn)展開(kāi)討論。

無(wú)服務(wù)器是當(dāng)前軟件架構(gòu)模式中的熱門(mén)話題之一,像許多軟件工程中的其他術(shù)語(yǔ)或趨勢(shì)一樣,無(wú)服務(wù)器也沒(méi)有一個(gè)明確的定義,所以在這篇文章中我們會(huì)簡(jiǎn)單介紹一下無(wú)服務(wù)器的基本概念,并圍繞無(wú)服務(wù)器的幾個(gè)爭(zhēng)論點(diǎn)展開(kāi)討論。

什么是無(wú)服務(wù)器?

根據(jù)MartinFowler.com的定義,無(wú)服務(wù)器體系結(jié)構(gòu)是指主要依賴于第三方服務(wù)(稱為后端即服務(wù)或"BaaS")的應(yīng)用程序或在臨時(shí)容器中運(yùn)行的自定義代碼(功能即服務(wù)或"FaaS")。

如上說(shuō)述,如果你沒(méi)有維護(hù)或管理自己的基礎(chǔ)架構(gòu)來(lái)運(yùn)行應(yīng)用程序,并根據(jù)使用情況付費(fèi)(或者不付費(fèi)),同時(shí)從供應(yīng)商那里自動(dòng)獲得所需級(jí)別的高可用性、可擴(kuò)展性和容錯(cuò)性,那么你就正在運(yùn)行一個(gè)無(wú)服務(wù)器的應(yīng)用程序。作為在無(wú)服務(wù)器環(huán)境中運(yùn)行應(yīng)用程序的所有者,你可以將所有的精力放在應(yīng)用程序業(yè)務(wù)邏輯上,而不必?fù)?dān)心其運(yùn)行的基礎(chǔ)架構(gòu)以及應(yīng)用程序周圍的其他非功能性需求。

無(wú)服務(wù)器只是炒作?

如果你是無(wú)服務(wù)器的新手,并且在考慮將其作為架構(gòu),那么這就會(huì)成為你需要面對(duì)的問(wèn)題之一。沒(méi)錯(cuò)兒,無(wú)服務(wù)器是現(xiàn)在的熱門(mén)話題,但是綜合了之前和之后的發(fā)展,我個(gè)人認(rèn)為無(wú)服務(wù)器并不是一個(gè)短期內(nèi)的炒作,至少在3-5年不是,圍繞無(wú)服務(wù)器的技術(shù)或許會(huì)被改變、替換,但是無(wú)服務(wù)器的概念不會(huì)。

技術(shù)層面如何向無(wú)服務(wù)器發(fā)展?

俗話說(shuō)得好,觀往知來(lái)、知古鑒今,所以在解釋無(wú)服務(wù)器功能如何強(qiáng)大之前,我們先來(lái)看看它是如何在過(guò)去幾年演變的:

1989 - 1991年 - Sir Tim Berners-Lee發(fā)明了萬(wàn)維網(wǎng)

1991 - 1995年 - 裸機(jī)時(shí)代

1995年 web hosting

1999年 - 軟件即服務(wù)(SaaS)概念由Salesforce引入

2001年 - VMWare發(fā)布ESXi,"服務(wù)器虛擬化"成為了一件大事

2002-2006-AWS提出IaaS,人們開(kāi)始談?wù)?quot;云計(jì)算"

2009年 Heroku提出"平臺(tái)即服務(wù)"(PaaS)

2011年 - Envolve / Firebase,實(shí)時(shí)數(shù)據(jù)庫(kù)即服務(wù)

2012年 - Parse.com和第一個(gè)后端即服務(wù)(BaaS)

2013年 - Docker,"容器比虛擬機(jī)好"

2013-2015 - Kubernetes / Swarm / Nomad / CoreOs(containers at scale)

2014年 - AWS Lambda推出(FaaS)

AWS lambda誕生了,無(wú)服務(wù)器這個(gè)詞與FaaS一起出現(xiàn)在舞臺(tái)上,雖然大多數(shù)人認(rèn)為L(zhǎng)ambda是無(wú)服務(wù)器的起點(diǎn),但是containerization 將無(wú)服務(wù)器遷移推向第一個(gè)高潮,隨著containerization的出現(xiàn),全球領(lǐng)先的云服務(wù)提供商開(kāi)始向客戶提供"付費(fèi)即用"的概念以及最需要的非功能性需求,支持使用其基礎(chǔ)架構(gòu)運(yùn)營(yíng)業(yè)務(wù)。

無(wú)服務(wù)器應(yīng)用程序的關(guān)鍵特性

無(wú)服務(wù)器應(yīng)用程序有四個(gè)關(guān)鍵特征:

沒(méi)有服務(wù)器管理 -顧名思義,對(duì)于無(wú)服務(wù)器應(yīng)用程序,應(yīng)用程序所有者不需要涉及任何物理服務(wù)器。如果你是應(yīng)用程序所有者,那么你將不知道有多少服務(wù)器代表你的應(yīng)用程序及其物理位置運(yùn)行。

靈活的擴(kuò)展 - 因?yàn)槟悴恍枇私馕锢矸?wù)器層,所以不必?fù)?dān)心可伸縮性。應(yīng)用程序?qū)葱璺峙涓噘Y源以管理所需的容量級(jí)別。

高可用性 - 冗余和容錯(cuò)是無(wú)服務(wù)器框架的內(nèi)置功能,不必保留自己的服務(wù)器以使應(yīng)用程序高度可用。如果處理節(jié)點(diǎn)發(fā)生故障,框架會(huì)自動(dòng)為您生成一個(gè)新節(jié)點(diǎn)或幾個(gè)節(jié)點(diǎn)。

成本控制- 在無(wú)服務(wù)器的環(huán)境中,您無(wú)需多花費(fèi)時(shí)間,這是成本考慮的關(guān)鍵優(yōu)勢(shì)之一。

FaaS和無(wú)服務(wù)器是一樣的嗎?

這是一個(gè)趨勢(shì)類的常見(jiàn)問(wèn)題,有些人聲稱FaaS是無(wú)服務(wù)器概念的技術(shù)實(shí)現(xiàn),還有一些人認(rèn)為無(wú)服務(wù)器不局限于FaaS,而是一個(gè)更廣泛適用的概念。作為我個(gè)人來(lái)講,我更贊同后面一種說(shuō)法。

FaaS只是無(wú)服務(wù)器體系結(jié)構(gòu)的事件驅(qū)動(dòng)處理部分。對(duì)于應(yīng)用程序來(lái)說(shuō),還有許多其他必需的構(gòu)建塊,如數(shù)據(jù)持久性,數(shù)據(jù)流,消息傳遞,用戶管理等等,以便提供一些端到端的功能。最重要的是有一些沒(méi)有FaaS組件的應(yīng)用程序,但仍然可以被認(rèn)為是無(wú)服務(wù)器應(yīng)用程序。

舉個(gè)例子,如果我們需要一些靜態(tài)的虛擬主機(jī),我們可以做到這一點(diǎn),而不必考慮物理服務(wù)器。如果我們認(rèn)為AWS是我們的云服務(wù)提供商,我們可以將我們的網(wǎng)頁(yè)內(nèi)容托管在S3存儲(chǔ)桶中,并啟用靜態(tài)虛擬主機(jī)來(lái)托管網(wǎng)頁(yè)。為了使其完成,你可以使用Route 53作為DNS和CloudFront作為CDN。

另一個(gè)例子是一個(gè) thick client的Web應(yīng)用程序,它只使用后端服務(wù)來(lái)進(jìn)行身份驗(yàn)證和數(shù)據(jù)持久化。你實(shí)現(xiàn)這種應(yīng)用程序無(wú)需擁有自己的物理服務(wù)器以及FaaS組件,有許多服務(wù)可用于身份驗(yàn)證和數(shù)據(jù)持久性。

無(wú)服務(wù)器會(huì)是未來(lái)嗎?

在回答這個(gè)問(wèn)題之前,我建議你先去看一下AWS的產(chǎn)品頁(yè)面,如果你仔細(xì)看,那么你會(huì)發(fā)現(xiàn)大約有100個(gè)"服務(wù)產(chǎn)品",涵蓋了從開(kāi)發(fā)到部署和維護(hù)的整個(gè)軟件開(kāi)發(fā)生命周期。

如何看待AWS的愿景?我堅(jiān)信,它將改變世界,使我們能夠在解決方案的基礎(chǔ)上全面開(kāi)發(fā),測(cè)試,部署和維護(hù)我們的應(yīng)用程序。

如果你現(xiàn)在還沒(méi)有準(zhǔn)備好,那么可以去看看過(guò)去兩年中AWS服務(wù)的增長(zhǎng)情況,他們正在迅速擴(kuò)大自己的版圖,并從基礎(chǔ)架構(gòu)角度提升其服務(wù)范圍,以涵蓋軟件生命周期過(guò)程中幾乎所有的要求。當(dāng)然,其中一些服務(wù)還沒(méi)有完全完成(其中很少是在過(guò)去兩個(gè)月內(nèi)發(fā)布的),并且完全可以替代內(nèi)部產(chǎn)品。但是,在未來(lái)的2 - 3年內(nèi),他們將確保在為云應(yīng)用的開(kāi)發(fā)、部署和維護(hù)提供服務(wù)。

那么,這些云服務(wù)提供商在哪里進(jìn)行軟件開(kāi)發(fā)和維護(hù)?他們的目標(biāo)是以無(wú)服務(wù)器的方式來(lái)覆蓋所有可能的情況,并將他們的客戶放在一個(gè)舒適的地帶,以確保他們只需要關(guān)注他們的業(yè)務(wù)邏輯,并能夠充分發(fā)揮其潛力。

現(xiàn)在達(dá)到了我們所需的能力水平嗎?

現(xiàn)在你可能正在想:如果我們要轉(zhuǎn)向無(wú)服務(wù)器的范式,F(xiàn)aaS如何能夠提供所需的處理能力。下面我列舉一個(gè)FaaS產(chǎn)品為例, AWS Lambda。當(dāng)然,很多人都可以輕易的說(shuō)出,AWS Lambda沒(méi)有能力來(lái)促進(jìn)幾乎所有的處理場(chǎng)景(我仍然指的是基于事件的應(yīng)用程序)。但對(duì)于我來(lái)說(shuō),幾乎所有這些限制都只是軟限制,都可以放寬標(biāo)準(zhǔn),未來(lái) AWS Lambda有信心能夠覆蓋至少90%的案件。

最近的稱,到2021年,F(xiàn)aaS市場(chǎng)預(yù)計(jì)將增長(zhǎng)到32.7%。這僅僅是FaaS,如果你看一看無(wú)服務(wù)器的范例,你就會(huì)明白它有多大的潛力。

結(jié)論

"無(wú)服務(wù)器"目前是一個(gè)熱門(mén)話題,在未來(lái)幾年肯定會(huì)成為主流,你將不必?fù)?dān)心基礎(chǔ)設(shè)施,完整軟件生命周期將取決于云服務(wù)提供商。如果你熱衷于掌握最新技術(shù),那么歡迎你來(lái)了解無(wú)服務(wù)器范例和云產(chǎn)品。

正如前文所說(shuō),本文中所有提出的問(wèn)題都是極具爭(zhēng)議性的,沒(méi)有正確的答案,歡迎大家針對(duì)以上問(wèn)題在下方留言評(píng)論,共同分享交流。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)