無伺服器計算和 FaaS 模型 – 雲計算的下一個階段
如果我們聽到術語“無伺服器計算”,我們很容易被原諒,認為我們正在進入一個需要新的世界,在這個世界中,我們不需要伺服器來操作應用程式。儘管名稱具有誤導性,但無伺服器計算代表了雲發展中的一個重要里程碑。
無伺服器計算
無伺服器計算是一種應用程式部署和管理範例,消除了必須預配伺服器才能在雲中操作應用程式的需求。它免除了開發人員對伺服器預配、可伸縮性和管理的擔憂,以便他們可以專注於製作和改進核心產品。
在利用雲計算執行方法時,仍然需要使用伺服器。然而,它透過在雲基礎設施上新增額外的抽象層,為您提供了操作應用程式所需的一切。
無伺服器計算的特點
使用無伺服器計算可以在管理伺服器的同時執行程式碼,並根據事件執行函式,而不是連續執行。
它允許按請求自適應函式的伸縮。無需額外的設定。
各種事件型別和 API 閘道器可以啟用函式。
作為服務的軟體(FaaS)模式
透過闡明 FaaS 模型,可以更好地理解無伺服器計算。
SaaS、IaaS 和 PaaS 都屬於許多人熟知的一些概念。在深入探討 FaaS 之前,讓我們定義幾個術語。
SaaS 是一種雲計算服務,使用者付費訂購儲存在遠端資料中心的預定義軟體的訪問許可權。
除了提供物理和虛擬基礎架構之外,雲基礎設施 (IaaS) 還處理資源管理和可擴充套件性。
與傳統的應用程式建立方法相比,雲提供商 (PaaS) 會向開發者交付必要的軟體和硬體。AWS Beanstalk 和適用於構建移動應用的 Azur 等服務就是此類例項。
接下來,讓我們深入瞭解 FaaS 正規化。這是一種 FaaS 方法,開發者可以專注於製作、執行和管理應用,而無需管理底層的應用程式基礎設施。該方法以函式為基礎,函式是執行特定任務的離散程式碼部分。該模型中每個函式都會根據模型觸發的特定事件(例如,API 請求、資料庫事件、預定義事件等)而執行。而且,很多函式組合在一起就能建立無伺服器應用程式 (FaaS)。
此外,還要考慮以下資訊:FaaS 正規化沒有任何狀態概念。由於 FaaS 架構下的函式是在可支配容器中執行的,因此無法訪問之前執行的函式的狀態。為避免這種情況,可以在處理永久性解決方案時,藉助 Amazon S3 等第三方服務來暫時儲存資料例項。此資訊可以在各個部門之間傳遞。
粗心的比較可能會讓你認為 PaaS 和 FaaS 是可以互換的。PaaS 為 Web 應用的釋出和管理提供便利,但並不會提供按需關閉整個應用的選項。
然而,FaaS 卻可以做到這一點,因為具有適應性。
在 PaaS 環境中,擴充套件應用程式需要使用額外的基於 PaaS 的技術,包括 AWS Elastic Beanstalk。另一方面,FaaS 基礎設施提供了管理應用程式可擴充套件性的高效方法,這是上述方法無法做到的。
無伺服器計算的利弊
到目前為止,我們已經介紹了 FaaS 模型和無伺服器計算。現在讓我們檢查一下無伺服器計算的利與弊。
無伺服器計算的優點 − 在 FaaS 中,預定義的執行時(基礎設施實際上只會在特定一段時間內使用)和共享的執行時可以極大地降低運營成本。
雲提供商處理基礎設施維護,使使用者能夠專注於構建功能。
由於它能夠在水平和垂直方向上自動擴充套件,因此最大程度地減少了與組織資源的增長或收縮相關的開支。與 PaaS 模型相比,此模型的擴充套件成本大幅降低。
在管理日常運營方面,FaaS 是最簡單易用的選項,因為它簡化了部署和管理軟體的過程。最重要的是,它能迅速使你的業務概念變為現實。
無伺服器計算的限制 − 無伺服器計算有很多優勢,但也存在一些劣勢。請檢視以下詳細資訊。
由於無伺服器設計是由雲提供商管理的,因此你無法對底層系統施加影響。
該應用程式的預定義執行時特徵與大多數雲供應商的超時時間段衝突,因此必須長時間執行。
最大的缺點之一是供應商鎖定,這會阻止您將您的雲服務轉移到不同的供應商。
由於 FaaS 僅僅是一個事件設計,因此軟啟動的前景引起了關注。如果您已經有一段時間沒有活動,那麼當發生意外事件時,您的反應時間可能會增加。
由於無伺服器應用程式利用的是公共基礎設施,因此無論底層伺服器歸誰所有,都可以同時執行多個應用程式。因此,鄰居應用程式的高負載生成功能將對您的程式碼產生影響。不幸的是,這個問題並非無伺服器服務獨有,它影響著絕大多數的共享服務模型。
結論
無伺服器計算有幾個優勢。但它並不是一個無操作的情況。確實,您不需要專門的 IT 專業人員來使基礎設施正常執行,但仍有部分方面您需要關注,以確保您的應用程式保持線上狀態。但是,無需擔心,因為 FaaS 包含用於監控的資料服務,以便隨時關注您的應用程式。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP