國美&華為,戰略合作簽約!
723
2025-03-31
1??????引言
無服務器計算是一種云計算執行模式,云提供商運行服務器,并動態管理機器資源的分配。根據應用實際消耗的資源量來定價,而不是根據預先購買的容量單位來定價,它可以是實用計算的一種形式。
無服務器計算可以簡化將代碼部署到生產中的過程。
在此理念下,伸縮、容量規劃和維護操作會對開發人員或操作人員隱藏起來。
無服務器代碼可以與以傳統風格部署的代碼(如微服務)結合使用。
另外,也可以將應用程序寫成純粹的無服務器應用程序,完全不使用任何配置的服務器。
這里值得一提的是,這個概念不應與不需要實際服務器來運作的計算或網絡模式相混淆,例如點對點(P2P)。
2??????無服務器運行時
大多數(但不是全部)無服務器廠商提供計算運行時,也就是所謂的功能即服務(FaaS)平臺,它執行應用邏輯但不存儲數據。
第一個?"隨用隨付"的代碼執行平臺是2006年發布的Zimki,但它并沒有取得商業上的成功。
2008年,Google發布了Google App Engine,其特點是對使用定制Python框架的應用進行計費,但不能執行任意代碼。
2010年發布的PiCloud為Python提供了FaaS支持。
Kubeless和Fission是兩個與Kubernetes一起運行的開源FaaS平臺。
AWS Lambda由亞馬遜在2014年推出,是第一家提供抽象無服務器計算的公有云基礎設施廠商。它還得到了AWS無服務器工具的支持,如AWS無服務器應用模型(AWS SAM)Amazon CloudWatch等。
谷歌云平臺自2016年起提供谷歌云功能服務。
自2016年起,IBM在IBM公共云中提供IBM云功能服務。
微軟Azure提供Azure Functions,既可以在Azure公有云中提供,也可以通過Azure Stack在企業內部提供。
3??????無服務器數據庫
在過去的幾年里,出現了一些無服務器數據庫。這些系統將無服務器執行模型擴展到RDBMS,消除了配置或擴展虛擬化或物理數據庫硬件的需要。
Nutanix提供了一個名為Era的解決方案,它可以將現有的RDMS如Oracle、MariaDB、PostgreSQL或Microsoft SQL Server變成一個無服務器服務。
亞馬遜Aurora提供了一個基于MySQL和PostgreSQL的無服務器版本的數據庫,提供按需、自動擴展的配置。
Azure Data Lake是一種高度可擴展的數據存儲和分析服務。該服務托管在微軟的公共云Azure中。Azure Data Lake Analytics提供了一個分布式基礎設施,可以動態分配或取消分配資源,因此客戶只需為其使用的服務付費。
Google Cloud Datastore是一個最終一致的文檔存儲。它作為一項獨立的服務提供谷歌應用引擎的數據庫組件。Firebase也是谷歌擁有的,包括一個分層數據庫,并通過固定和現用現付計劃提供。
4??????無服務器計算的優缺點
4.1????優點
4.1.1????費用低廉
無服務器比租用或購買固定數量的服務器更具成本效益,因為后者通常會存在大量的利用率不足或閑置時間的情況。?由于底層機器資源的bin-packing更有效,它甚至比配置自動伸縮組更具成本效益。
這這種模式可以被描述為現用現付計算模式,因為只根據分配給你的代碼運行的時間和內存來收費,而沒有相關的空閑時間費用。
直接的成本效益與操作系統成本有關,這包括:許可證、安裝、依賴性、維護、支持和補丁等方面。
4.1.2????很強的彈性與可伸縮性
此外,無服務器架構意味著開發者和運營商不需要花時間設置和調整自動伸縮策略或系統,云提供商負責根據需求進行容量伸縮。
正如谷歌所說。"從原型到生產,再到星球規模"。
由于云原生系統本質上可以向下以及向上擴展,這些系統具有很強的彈性,這跟可擴展有本質的區別。
小規模的開發者團隊能夠自己運行代碼,而無需依賴基礎設施和支持工程師團隊。越來越多的開發者變得可以熟練的操作DevOps任務,這使得軟件開發者,硬件工程師相互之間的區分正在變得模糊。
4.1.3????生產效率高
通過函數即服務,對外暴露的代碼單元是簡單的事件驅動函數。這意味著,通常情況下,程序員不必擔心多線程或直接處理代碼中的HTTP請求,從而簡化了后端軟件開發的任務。
4.2????缺點
4.3????性能相對下降
與專用服務器、虛擬機或容器上持續運行的代碼相比,不經常使用的無服務器代碼可能會出現更大的響應延遲。這是因為,與自動伸縮不同,在不使用代碼程序時,云提供商通常會完全?"關閉"無服務器代碼。這意味著,如果運行時(例如,Java運行時)需要大量的時間來啟動,就會產生額外的延遲。
4.4????資源限制
無服務器計算并不適合某些計算場景,例如高性能計算,因為云提供商在此中環境下會施加資源方面的限制,另一方面,在給定的時間點批量提供所需的服務器數量可能比云計算場景會更便宜。
4.5????監控和調試
與傳統的服務器代碼相比,診斷無服務器代碼的性能或過度使用資源問題可能更加困難,因為雖然可以對整個函數進行計時,但通常無法通過附加剖析器、調試器或APM工具來挖掘更多細節。
此外,代碼運行的云計算環境通常不是開源的,所以它的性能特性無法在本地環境中精確復制。
4.6????安全
無服務器有時被誤認為比傳統架構更安全。
這在一定程度上是正確的,因為操作系統的漏洞由云提供商處理。
但是,一個現實情況是,云計算總的攻擊面要大得多,因為與傳統架構相比,應用程序會有更多的組件,而且每個組件都是無服務器應用程序的入口點。
此外,客戶過去用來保護云工作負載的安全解決方案變得無關緊要,因為客戶無法在端點和網絡層面控制和安裝任何東西,例如入侵檢測/預防系統(IDS/IPS)。
整個服務器網絡的單一文化屬性更加劇了這種情況。
根據protego的說法,"
1.?????????安全無服務器應用的解決方案是開發者、DevOps和AppSec(也就是DevSecOps)之間的緊密合作。
2.?????????主要的目標是找到平衡點,開發人員不擁有安全,但也不能免除責任。
3.?????????因此需要采取措施讓安全成為每個人的問題。
4.?????????創建跨職能團隊,并努力實現安全專家和開發團隊之間的緊密整合。
5.?????????親密無間的協作可以確保既能享受無服務器的速度,又能解決可能的安全風險。
"。
4.7????隱私保護
許多無服務器功能環境都是基于專有的公共云環境。在這里,必須考慮到一些隱私問題,比如共享資源和外部員工的訪問。
然而,無服務器計算也可以在私有云環境甚至內部進行,例如使用Kubernetes平臺。
這樣企業就可以像傳統服務器設置中的托管一樣,完全控制隱私機制。
4.8????標準
國際數據中心管理局(IDCA)在其框架AE360中涵蓋了無服務器計算。然而,當把業務邏輯從一個公有云轉移到另一個公有云時,與可移植性相關的部分可能會成為一個問題,而Docker解決方案正是為此而創建的。
云原生計算基金會(CNCF)也在與甲骨文一起制定規范?。
4.9????供應商鎖定
無服務器計算是作為第三方服務提供的。在無服務器環境中運行的應用程序和軟件默認鎖定在特定的云供應商上。?因此,無服務器在遷移過程中可能會造成多種問題。
5??????參考
https://www.cloudflare.com/learning/serverless/what-is-serverless/
https://azure.microsoft.com/en-ca/overview/serverless-computing/
https://aws.amazon.com/serverless/
https://en.wikipedia.org/wiki/Serverless_computing#:~:text=Serverless%20computing%20is%20a%20cloud,pre%2Dpurchased%20units%20of%20capacity.
軟件開發
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。