Bob Violino 陳琳華
要記住:無服務器計算的設計初衷是要實現(xiàn)基礎架構配置自動化并消除服務器管理的負擔。
你的企業(yè)是否已經(jīng)為迎接無服務器的到來做好了準備?無服務器計算如今正在迅猛發(fā)展,但是這并不意味著它們適用于所有的場景或企業(yè)。
無服務器計算是一種軟件架構模型,即云計算服務提供商為客戶運行服務器并動態(tài)管理計算資源的分配?!盁o服務器”這個術語是一個誤稱,因為在某種意義上,服務器仍然參與到計算過程中。這種類型服務的價格是根據(jù)應用程序實際消耗的資源量而不是預先的購買量。
市場調研機構Markets and Markets 2018年發(fā)布的調查報告稱,無服務器架構市場規(guī)模在2018年估值為42.5億美元,預計到2023年將達到149.3億美元,期間將以復合年增長率29%的速度增長。北美地區(qū)在預測期內將占據(jù)最大的市場份額,部分原因在于這個地區(qū)采用云計算服務比較早。
預計推動市場增長的主要因素包括消除對管理服務器的需求,降低基礎設施成本、簡化部署、管理和執(zhí)行。微服務架構的廣泛應用也為增長起了推動作用。
Markets and Markets表示,自動化和集成服務在無服務器架構的部署中發(fā)揮了重要作用。自動化服務可有效地幫助管理部署在混合IT平臺上的微服務,以提供更快的響應速度,以及對計算資源的優(yōu)化使用。
Gartner也很看好無服務器計算的增長。該研究機構將無服務器計算列為2019年能夠影響基礎設施和運營的十大趨勢之一,并指出這一新興的軟件架構模型可能會消除企業(yè)對基礎設施供應和管理的需求。
無服務器計算對IT管理員的吸引力
德勤咨詢公司負責云計算實踐的主管Ken Corless表示,無服務器不僅對應用程序開發(fā)人員很有吸引力,而且對系統(tǒng)運營人員也很具吸引力。
無論是由大型云計算提供商提供,還是從市場上采購解決方案來實現(xiàn)內部部署,無服務器計算的目標都是一樣的。Corless稱:“企業(yè)采用自動化和自助服務可以加快軟件開發(fā)生命周期。”
對于IT管理員來說,無服務器可以減少基于標簽的工作負載的“請求-響應”周期,允許管理員將精力放在更高級別的任務上,例如基礎設施設計或創(chuàng)建更多的自動化。
Corless舉了兩個主要用例。一個是在應用程序開發(fā)中創(chuàng)建基于服務的現(xiàn)代松散耦合應用程序。功能即服務(FaaS)和后端即服務(BaaS)這兩種支持無服務器計算的云服務都可通過保持小型化團隊來提高軟件交付團隊的生產(chǎn)力。
另一個重要的用例是針對系統(tǒng)管理員的。Corless說:“他們追求的自動化可通過無服務器技術快速輕松地逐步實現(xiàn)。”例如,德勤公司在云計算管理業(yè)務中廣泛使用了無服務器來實現(xiàn)產(chǎn)品的自動化運營。
與云計算服務一樣,無服務器在某些情況下可能比支付虛擬機的費用更高。目前在虛擬機上使用率始終在80%的應用程序在無服務器環(huán)境中費用可能會更高。
Corless說:“無服務器的真正優(yōu)勢在于更少的人即可完成IT業(yè)務中的一些例行任務,例如軟件修補和備份?!边@有兩個好處。首先,執(zhí)行這些例行任務的人員可以將更多精力放在IT或企業(yè)中可以創(chuàng)造更多價值的地方。
“沒有人會為做DNS域名系統(tǒng)調整的工作而感到高興。這些人可以被重新分配參加新功能的開發(fā)工作。在我看來,推動實現(xiàn)更高程度的自動化是最重要的事情?!?/p>
第二個好處是,讓小型化的團隊有了更強的自我決定能力。Corless說:“隨著基礎設施管理的專業(yè)知識和指南的自動化,團隊可以自我服務,并安全地做到這一點。不過,實現(xiàn)標準和指導的自動化通常需要一些投資,因為無服務器解決方案通常不夠安全,需要某種類型的限制才能使用。”
市場調研機構IDC的平臺即服務研究主管Larry Carvalho稱,應用程序隨時都能夠利用事件驅動的計算和解耦服務,這對于無服務器平臺來說非常理想。
Carvalho說,常見的用例是物聯(lián)網(wǎng)(IoT)應用程序和需要事件驅動處理的移動后端。其他用例是針對事件實時反應的批處理或流處理。
無服務器計算的最佳實踐
那么企業(yè)如何確保無服務器取得成功呢?以下是專家給出的一些建議和做法。
在設計過程中就要考慮到服務器產(chǎn)品的限制條件
市場營銷技術提供商Cordial的物聯(lián)網(wǎng)平臺架構師Daniel Smith稱,負責處理向無服務器過渡工作的工程團隊常常會忽略“即使是很靈活的產(chǎn)品也存在嚴格的限制條件”這一問題。
Smith說:“無服務器是其他人的服務器或容器,它們有著自己的設計限制。記住這一點對無服務器的成功會有很大的幫助。在無服務器的堆棧中要劃分清楚責任,因此在設計和實現(xiàn)過程中需要考慮總運行時間、CPU使用時間或需要使用的內存總量等問題?!?/p>
Cordial從2015年就開始探索無服務器技術,其目標是在資源使用量不可知的情況下建立可預測的成本模型。Smith說:“作為一家初創(chuàng)企業(yè),可預測的、基于需求的成本結構很有吸引力?!?/p>
2018年5月,該公司開始使用Cloudflare的Workers技術作為其部分系統(tǒng)的替代品。作為一家為消費者服務的B2B企業(yè),Cordial需要盡快與消費者實現(xiàn)互動。
Smith說,“這通常需要在地理位置上盡可能地將工作負載靠近消費者?!?/p>
由于Cordial已經(jīng)能夠減小微服務的規(guī)模,因此他們愿意嘗試還未在其他地方部署的編程語言,以讓公司能夠更快、更自信地提供更高效的產(chǎn)品。
設計有限的工作負載
Smith指出,企業(yè)應該將無服務器架構視為一種方法或一種功能的執(zhí)行引擎。
他說:“為了進一步細化這個目標,功能的輸入和輸出應該是可以被處理的小數(shù)據(jù)。不要使用無服務器功能處理一個數(shù)據(jù)文件,而是要將每行數(shù)據(jù)單獨地執(zhí)行?!?/p>
減少每個工作單元的大小可以加快開始轉向網(wǎng)絡在服務之間移動數(shù)據(jù)的速度。Smith表示:“對于移動中的數(shù)據(jù),人們可以從一開始就將網(wǎng)絡視為一種易變的存儲設施,每秒為每個網(wǎng)絡接口可提供10GB的存儲。硬盤是速度很慢的系統(tǒng)組件,除了最終輸出可長期存儲外要避免使用?!?/p>
讓函數(shù)盡可能處于無狀態(tài)下
應用程序性能軟件提供商Dynatrace的軟件工程師Daniel Dyla表示,整體應用程序中常見的全局變量不適用于無服務器應用程序,因為調用間的全局狀態(tài)可能不會持久。
Dyla稱:“為了解決這個問題,無服務器函數(shù)應盡可能是無狀態(tài)的。如果需要狀態(tài),最好是從外部數(shù)據(jù)庫收集的狀態(tài),并調用另一個無狀態(tài)函數(shù)來執(zhí)行實際的數(shù)據(jù)處理的工作。通過這種方式,企業(yè)可以將狀態(tài)隔離到指定的位置,以便更容易管理?!?/p>
Dyla介紹說,受到低成本、擴展能力、事件驅動調用的吸引,Dynatrace在過去幾年中一直使用無服務器技術。目前該公司正在輪詢系統(tǒng)中使用無服務器計算,因為這一系統(tǒng)需要持續(xù)運行進行批處理。
Dyla稱:“我們看中的主要好處是成本低,我們的無服務器函數(shù)往往只是一小段代碼,突發(fā)負載可以從零開始迅速擴展?!?/p>
自動化部署和測試
電子發(fā)現(xiàn)軟件提供商Relativity的高級軟件工程師Hristo Papazov表示,雖然有些工具可以輕松實現(xiàn)無服務器計算的人工部署,但是自動化部署可讓企業(yè)保持良好的一致性,不會出現(xiàn)人為的錯誤。
“自動化還允許企業(yè)內部的其他團隊輕松采用這些技術,”Papazov說。
Relativity正在使用微軟Azure云服務的無服務器技術,并通過確保其核心組件正常運行來改善其電子發(fā)現(xiàn)平臺的客戶體驗。Papazov說,通過無服務器的內部監(jiān)控工具,企業(yè)可以讓用戶有能力處理大量的遙測數(shù)據(jù),以快速檢測和解決問題。
Papazov表示,隨著無服務器應用程序日益復雜,單元測試成為了開發(fā)周期的一個關鍵部分,同時自動化也可以為此提供幫助?!霸谖④浲瞥鯝zure Functions時,進行單元測試是非常困難的。經(jīng)過了較長一段時間的發(fā)展,現(xiàn)在在項目中添加單元測試已經(jīng)變得非常容易了?!?/p>
了解現(xiàn)代應用程序架構
管理者應該將應用程序分解為短期運行、獨立、分離的服務。Carvalho稱:“構建一個無狀態(tài)應用程序的同時還要利用API管理等支持服務來實現(xiàn)通信和確保用戶身份安全。”
他舉例說,“可以通過提取業(yè)務邏輯和在無服務器框架中將其作為微服務運行來分解為處理外來交易而持續(xù)運行以的Web應用程序服務器。這樣可以基本消除持續(xù)運行服務器的成本,同時將故障備援的難題交給云計算提供商?!?/p>
讓網(wǎng)絡安全成為優(yōu)先事項
部署了無服務器技術的企業(yè)或許不必擔心修補服務器或運行防病毒軟件,但是基于應用程序編程接口(API)的無服務器解決方案極大地增加了端點的數(shù)量。Corless指出,“如果這些API被公司的客戶或合作伙伴使用,那么風險將會更大?!?/p>
企業(yè)可能需要重新考慮防火墻規(guī)則的處理方式。Corless告誡道:“因為對防火墻的修改會迅速造成一場混亂?!?/p>
本文作者Bob Violino為Computerworld、CIO、CSO、InfoWorld和Network World網(wǎng)站的特約撰稿人。