當前位置:
首頁 > 科技 > 無伺服器計算:為雲中的下一個重大顛覆做好準備

無伺服器計算:為雲中的下一個重大顛覆做好準備

在每天發送超過15億條信息、每月與超過10億消費者互動的過程中,Braze公司使用了大量的雲基礎設施。但是Braze的業務是不可預測的,因此對計算資源的需求可能會隨著必須轉換的數據量大幅波動,以支持客戶的個性化通信需求。

Braze公司DevOps和安全主管Sal Poliandro III說:「有時候我們可能有100台伺服器在運行,也有的時候可能有1000台。」 Braze曾經根據一系列指標來擴展其雲基礎設施,而這些指標最終支持形成了有根據的最佳猜測。然後,Braze發現了亞馬遜的無伺服器計算平台Lambda。

現在,這個過程完全自動化了。演算法確定他們需要多少容量,然後啟動一個功能,該功能可以觸及其基礎設施合作夥伴並立即進行擴展。「過去我們常常根據峰值負荷進行擴展。而有了無伺服器技術,我們就不必擔心這一點了,」 」Poliandro說。對於一個典型的開發團隊,他估計該過程至少比手動配置伺服器快了10倍。

無伺服器計算:為雲中的下一個重大顛覆做好準備

Braze只是越來越多追逐這個雲領域、甚至是IT領域最熱門趨勢的公司之一。無伺服器計算——下面包含功能即服務等子集——通過擺脫配置基礎設施、同時要大幅削減成本的這些苦差事,來吸引開發者和首席信息官的注意力。

有些人認為,無伺服器將最終成為大多數軟體構建的一種方式。風險投資公司Mayfield Fund管理合伙人Navin Chaddha說:「這種底層技術將為重新定義完整的應用堆棧、軟體編寫方式、應用程序構建方式創造機會。」

狂熱者們可能會領先一步。畢竟,無伺服器計算還沒有走出孵化階段。但令人興奮的是,早期採用者的反饋令人鼓舞。

Cloudability對1500個組織的雲使用情況進行了分析,發現2017年第四季度無伺服器平台的使用量增長了7倍多,不過基數還比較小。RightScale報告稱,無伺服器技術是2017年1000名受訪的IT專業人員認為增長最快的擴展雲服務,採用率從12%增長到21%。

不僅是初創公司,還有大量網站。AWS Lambda及相關無伺服器服務總經理Tim Wagner表示,Lambda增長最快的用戶群中包括CapitalOne、Hearst和Financial Industry Regulatory Authority等大型企業。

事實上,一些企業已經開始將無伺服器技術推向主流甚至是前沿計算領域。例如,抵押貸款融資公司Federal National Mortgage Association(Fannie Mae)正在將其風險分析模擬從自己的伺服器轉移到Lambda,創造了所謂的金融行業第一個無伺服器高性能計算平台。

那些尚未加入的軟體開發人員正在爭先恐後地追趕上來,那些瞄準下一代關鍵技術的大型科技公司也在關注這些熱門趨勢。例如下周在舊金山舉行的Google Cloud Next大會上,無伺服器將成為19個分會場主題之一。

「無伺服器計算不僅將從根本上改變後端計算的經濟性,也將成為分散式計算未來的核心,」微軟首席執行官Satya Nadella在去年的微軟Build大會上這樣表示。

為你免除煩惱

簡而言之,無伺服器技術無需在每次運行程序時設置伺服器和軟體。相反,各種功能會根據事件自動執行,無論是由人還是由程序觸發。

「無伺服器」這個詞實際上有些用詞不當,因為仍然是需要伺服器來執行功能的。但是,與設置虛擬伺服器或使用軟體模擬的計算機所花費數小時或數天相比,該過程可以在幾毫秒內完成。因此,無伺服器應用可以以非常低的成本幾乎無限擴展,因為客戶只在使用該功能時付費,而無需在伺服器空間時間內付費。

相比之下,部署傳統集成應用的過程需要分配基礎設施,如CPU、內存和存儲,以及一套平台軟體。即使應用僅偶爾使用,這些資源仍然必須保持隨時可用。過度配置會增加成本、浪費容量並導致「伺服器無序擴張」——在這種情況下IT部門要為很少使用或者被遺忘了的雲實例支付費用。

在無伺服器的場景中,開發人員將應用構建為小塊代碼(或者功能)的集合,這些代碼或功能以協調的方式即時調配。這意味著沒有浪費、低開銷、快速可擴展來滿足容量需求。

移動計算最近推動著人們對無伺服器領域的關注,因為許多移動應用非常適合無伺服器設計。例如一位智能手機用戶查找當地天氣預報,或者某個足球場的方向,這些查詢可以封裝並保存在雲中,以便在必要時進行調用。程序只是將參數(例如人的位置和目的地)傳遞給伺服器,伺服器返回單個目標結果。

無伺服器技術還在一些更為日常的場景發揮著作用。例如,當用戶使用新照片更新在線個人資料時,無伺服器功能可以自動將照片複製到其他地方。或者,將Excel文件上載到資料庫的用戶可以觸發無伺服器功能,將文件轉換為JavaScript Object Notation格式,以便存儲在數據湖中。

無伺服器減輕了Braze等公司在規劃不可預測的使用場景時經常遇到的麻煩。這使得無伺服器成為新聞組織的一個很好的模式,因為他們看到,當有重要賽事或者有球隊進入季後賽時球迷活動激增導致流量峰值的出現,很多新聞組織只會簡單地分配資源來應對高峰期,為那些未被使用的資源支付費用。

十年變遷

無伺服器這一概念並不新鮮。谷歌的App Engine在2008年就具有了計量收費的功能。但直到2014年亞馬遜推出Lambda,這一概念才開始流行起來。其他雲服務提供商紛紛效仿,包括擁有Cloud Functions的谷歌、有Azure雲功能的微軟、以及有OpenWhisk的IBM。在此期間,商業和開源的產品及服務這一龐大生態系統已經蓬勃發展起來,其中也包括內部部署的選項。

無伺服器應用的分散式特性是最有趣的特點之一。無伺服器代碼不一定比傳統代碼運行得更快,但它可以分布在網路上以便並行執行。例如,谷歌的BigQuery分析數據倉庫將查詢分成幾個部分,並在伺服器可用的任何地方處理這些查詢。

這意味著相比單線程引擎處理來說,這麼做的處理速度要快上幾個數量。分散式引擎在使用資源的方式上也可以更加靈活和具有可擴展性,因為它可以在任何地方觸發功能。水平擴展是自動的、彈性的並且由提供者管理的。

Google Cloud開發人員Kelsey Hightower表示:「計算機的最終目標就像計算器:我希望能夠擁有一個非常簡單的界面,計算機應該給我一個答案。我們會一直做下去,直到最終的體驗變成『這是我的應用,為我運行的應用。』」

那為什麼這項技術還沒有風靡世界呢?嗯,首先,它仍然處於早期階段。「大多數客戶都將無伺服器技術用於非常具體的解決方案中,例如事件處理和數據採集,大規模部署還沒有真正開始,」New Relic公司戰略架構高級主管Lee Atchison說道。

另一個原因是無伺服器模型的結構是有局限性的,目前是限制於一組有限的應用中。「我認為很少有公司會把賭注全部壓在無伺服器上,你的IT部門可以採取混搭的方式,」 Red Hat產品管理高級總監Rich Sharples這樣表示。無伺服器是一種很好的快速執行簡單任務的方式,但缺乏統一化的、微服務平台提供的一些關鍵控制功能。

Gartner技術和服務提供商集團研究主管Craig Lowery更為樂觀一些。「人們不理解無伺服器技術,所以將其歸類成一個利基市場。」Gartner研究了五家公司,這五家公司都在沿著無伺服器學習曲線向上攀升,並發現一旦他們放棄了開發軟體的傳統規範,所有公司都會成為顛覆者。「一旦他們放下以前那些期望,他們就能夠實現這些好處。」

AWS首席執行官Andy Jassy去年表示,假如今年創建亞馬遜公司的話,那麼就會建立在無伺服器平台上——他們對這項技術的快速採用感到驚訝,即使在大型企業中也是如此。

「我們有很多企業客戶,我們原本認為他們不會是第一批採用Lambda的企業客戶,」AWS首席信息安全官辦公室主任Mark Ryland上周在紐約舉行的AWS峰會上表示。「但是因為他們正在做重大的應用重建,他們說,『我為什麼要選擇容器?我可以構建一個功能正常的應用。』」

無狀態和事件驅動

無伺服器計算有兩個顯著特徵,既有強大的吸引力,又面臨著更廣泛採用的障礙。

首先,無伺服器功能是無狀態的,這意味著沒有用於交互的上下文。它們不存儲歷史記錄,因此僅使用隨附的信息處理每個請求。「每次都像一塊白板,但非常高效,因為你不需要應對重重的複雜應用邏輯,」 Wikibon分析師James Kobielus說。

另一個顯著特徵是無伺服器是事件驅動的,意味著會對用戶或程序生成的動作做出響應,事件可能包括查詢明尼阿波利斯當前溫度的請求、搜索引擎查詢或資料庫記錄更新。

事件驅動的應用是非常高效的,因為在不使用的時候不會消耗資源。這種應用編程簡單,易於擴展。「你可以設置應用,這樣如果有事件進來,那麼功能運行起來。如果有一百萬個時間進來,你就可以應對一百萬個,」Lowery說。但是,並非每個應用都可以被提煉為一系列無狀態事件。

綜合起來,這些讓無伺服器計算成為某些請求的理想平台,例如查看美國明尼阿波利斯的熱或冷。然而,對於其他例如管理購物車或製作賬單來說,並不是那麼好用。

Kobelius說:「有人點擊『購買』,整套資料庫和運行時功能做定價,最終確定訂單,並發送確認。所有必須以嚴格的方式發生,帶有狀態和事務流」,這使得它無法與無伺服器執行相匹配。

目前尚不清楚是否會有新的工具和擴展程序讓無伺服器技術在更為傳統的應用中變得可行。無狀態應用可以擴展或改進以展示有狀態的行為,就像容器一樣,輕量級虛擬機可以抽象消除底層基礎架構的差異。容器也是無狀態的,但商業和開源擴展讓容器可以用於上下文敏感的應用中。

微軟的目標是消除功能即服務和平台即服務之間的界限,讓開發人員能夠混合搭配各種不同的平台。特別是,微軟強調所謂的「虛擬Kubelets」,這個在12月推出的技術能夠使容器運行各種功能或完整的應用,但有了微計費和自動基礎設施配置,無伺服器提供了很多企業客戶想要的靈活性。AWS在11月底推出了Fargate,可以在不管理伺服器或伺服器集群的情況下運行容器。

微軟Azure容器項目管理負責人Gabe Monroy在去年12月的KubeCon + CloudNativeCon北美會議上表示:「這實際是最好的無伺服器,如果基礎設施消失,我們將在基礎設施領域開展工作。」

Wikibon的Kobielus甚至認為,區塊鏈這種去中心化的數字記賬技術對資料庫密集型場景中的無狀態來說是一種補充。他說:「你可以隨時回滾一個完整敘述,關於誰在什麼樣的聯合框架中調用了什麼。」

因此,無伺服器的擁護者認為,這項技術有廣闊的前景,特別是對於那些有著「提升和轉變」心態的企業,他們試圖將舊應用轉移到一種新模式上,並積極擁抱構建和運行這些應用的新方法。

例如就在幾年前,房利美(Fannie Mae)公司運行蒙特卡洛(Monte Carlo)模擬分析其抵押貸款組合的風險。現在,他們正在運行所謂的第一個在金融行業中使用無伺服器的高性能計算平台。在大約2000萬抵押貸款的模擬中,該系統的工作速度比以前快了4倍多。

「我們認為沒有任何固有的技術限制可以阻止任何主要工作負載在Lambda上的使用,」AWS的Gilbert表示,他有趣地稱Fannie Mae將無伺服器當做「雲中的超級計算機」。他說:「無伺服器將是最簡單、最簡單的,對許多客戶來說是主流計算的首選方式。」

開發者的愛

無伺服器模型有一個優點,不容易被提煉為投資回報指標:開發人員喜歡這項技術。無伺服器架構使他們擺脫了基礎架構部署的負擔,他們只需要編寫代碼就行了。

Braze的Poliandro說「無伺服器技術讓我們的應用和運營工程師能夠以對他們更有意義的方式思考他們的責任。他們可以更快地部署,不必擔心周圍的基礎設施。」

但是,在無伺服器平台上構建應用,需要對開發人員如何考慮執行任何的方式進行重大改變。「選擇Lambda意味著要為代碼進行重寫,」Ryland坦言。

無伺服器架構的粉絲說,這種局限性不在於技術,而在於開發集成應用已有60年的歷史。 Gartner的Lowery說:「無伺服器技術挑戰了軟體應該如何開發的一些假設和已有的模式。客戶看到其中有很多價值,但他們不得不學習一種全新的編程方式。」

針對無狀態、以事件驅動的環境進行開發,並不一定比開發單一程序更容易。無伺服器架構「將複雜性從應用轉移到連接中,」Atchison說。「這不是萬能的解決方案,也有自身的問題,也要解決這些問題。」

微軟建議,開發人員要熟悉基於事件的非同步模式的編程,並學習使用功能協調器(如Durable Functions編程模型和Logic Apps連接器),創建長時間運行的操作和狀態管理。

但是倡導者們說,這些好處值得陡峭的學習曲線,所需要的不僅僅是更多工具,還有更具創造性的軟體開發方法。

「大多數應用所做的,絕大多數都可以呈現為無伺服器功能,」Kobielus說。容器有助於將功能封裝並作為服務提供給用戶,它們可以獨立擴展。」

傳統應用仍然可以通過修改以利用某些無伺服器功能。本質上由事件驅動的各種功能是可以與主應用分開封裝的。

例如,「隨時在資料庫或文件系統中創建數據,這是一個事件,」Lowery說。「這意味著你可以將其設置為獨立於主程序執行其他操作。這樣做讓應用生命周期更長,」因為應用可以通過使用應用程序編程介面進行擴展,或者掛接到其他應用中。

企業組織可以調整各個組成部分以便受益於無伺服器執行,並分階段遷移,而不是從頭開始重寫現有應用。「將新的應用功能作為微服務,將用戶界面組件從業務邏輯和數據訪問層拆分,並將現有的微服務轉換並拆分為無伺服器功能,」Simform技術顧問Rohit Akiwatkar這樣說道,Simform是一家移動和物聯網服務公司,已經圍繞伺服器做了廣泛發布。「隨著時間的推移,功能的數量將會增加,開發團隊的敏捷性和速度將會提高。」

最佳時機

現在是CIO加入無伺服器陣營的時候了嗎? Lowery認為是的。「我告訴CIO們,這項技術不會消失,這不是一種流行時尚。企業應該開始讓員工熟悉這項技術。」

Simform的Akiwatkar建議採取三個步驟:了解使用無伺服器架構的最佳實踐;確定高ROI的應用;在低風險環境中嘗試無伺服器功能。

所有這些讓現在成為開發者採用無伺服器技術的最佳時機。從容器、微服務到現在的無伺服器計算,過去五年在應用的構建和部署方面引入的創新數量比過去20年的總和還多。

在一個極度缺乏人才的經濟體中,對下一個重要事件保持謙遜可能是吸引最優秀人才的唯一途徑。 「你必須有一個長期採用這項技術的計劃,否則你將無法獲得所需的人才。開發人員會對這項技術充滿期待,」Lowery說。

對於那些仍在努力應對如DevOps等無窮無盡創新(例如雲、容器和微服務)的組織來說,無伺服器計算似乎又是一個令人頭痛的問題。 但在這個所有公司都想成為軟體公司的商業世界中,沒有跟上這個最新趨勢可能會讓你犯下存在感減少的錯誤。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 至頂網 的精彩文章:

2018年BI市場誰執牛耳?
數據智能,推動產業創新

TAG:至頂網 |