日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

浅析Serverless

發布時間:2024/7/19 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅析Serverless 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

近兩年來,Serverless 概念在開發者中交流的越來越多,主題分享呈現爆發趨勢。有人說:Serverless 正在改變未來軟件開發的模式和流程,它就是云計算的未來。

在一個應用中包含了多個功能,如訂單創建、訂單查詢和訂單修改等。應用數據存儲在外部數據庫中。數據庫和應用一樣,也部署在數據中心的主機上,由用戶負責運維。

開發人員進行業務開發時,需要關心很多和服務器相關的服務端開發工作,比如存儲和計算資源、緩存、消息服務、數據庫,以及防止服務器被安全攻擊,負載均衡和橫向擴展能力,考慮服務器容災穩定性等非專業邏輯的開發。這些服務器的運維和開發知識、經驗極大地限制了開發者進行業務開發的效率。

傳統的架構:

應用被部署在Serverless平臺之上。應用的功能點變成若干個函數定義,部署于FaaS之中。數據仍然存放在后端數據庫中。應用函數通過訪問后端的數據庫服務(BaaS)獲取訂單數據。

Serverless 場景下,客戶端需要通過 API 網關 Baas 來訪問函數 FaaS 服務,然后在通過函數計算做數據庫鏈接實現數據庫的寫入和拉取。

Serverless架構下。當用戶完成應用開發后,軟件應用將被部署到指定的運行環境,這個運行環境不再是具體的一臺或多臺服務器,而是支持Serverless的云計算平臺。Serverless云計算平臺保證該主機提供應用正常運行所需的計算資源。在訪問量升高時,云計算平臺動態地增加應用的部署實例。當應用空閑一段時間后,云計算平臺自動將應用從主機中卸載,并回收資源。

Serverless服務架構:

相相同點:
1.兩個應用都存在一個邏輯層,負責處理用戶請求;
2.兩個應用的數據都存儲在應用外部的數據庫中。
不同點:
1.Serverless架構的應用部署于Serverless平臺之上,由Serverless平臺提供運行所需的計算資源。
2.在Serverless架構下,由于應用的邏輯分散成了若干個函數,推薦通過API網關對這些函數邏輯進行統一的管控(如流量控制、安全管控、版本管理等)

詳解Serverless:

無服務器計算是一種云計算執行模型,云廠商提供程序運行的服務器,并動態管理機器資源的分配。云廠商基于應用程序消耗的實際資源量進行定價,而不是用戶預先購買的容量。

Serverless并不能按字面上理解為無服務器,而是說對應用開發者而言,不再需要操心大部分跟服務器相關的事務,比如應用運行環境配置、負載均衡、日志搜集、系統監控等,這些事情統統交給Serverless平臺即可,應用開發者唯一需要做的就是編寫應用代碼,實現業務邏輯。

Serverless主要的兩個特征是:免運維,按資源的使用量付費

目前業界的各類Serverless實現按功能而言,主要為應用服務提供了兩個方面的支持:函數即服務(Function as a ServiceFaaS)以及后臺即服務(Backend as aServiceBaaS

那么下面來說說IaaS,PaaS,Saas,FaaS和BaaS

以做披薩生意為例,如果從買設備,制作,銷售都是自己一個人做,未免會太過于勞累,所以需要別人的服務來讓這個生意更好做,下面就是一些讓別人服務你的方法:

1.IaaS

別人給你提供廚房,爐子,煤氣這些基礎設施,你去制作

2.PaaS

除了別人給你提供的基礎設施之后,還有人幫你做餅皮,自己只需要把其他配料撒上去,之后還有人幫你烤

自己能決定的就是這個披薩的味道

3.SaaS

自己不參與制作,直接用別人做好的披薩,自己只需要包裝一下,給披薩打上自己的logo賣出去就可以
?

4.BaaS

提供了一些服務讓你選擇,別人提供了烤披薩,調配料這些服務,用哪個就可以點哪個

5.FaaS

比提供某一項服務更加具體,具體到某一項服務的具體內容

c技術特點:

按需加載
應用的加載(load)和卸載(unload)由Serverless云計算平臺控制。這意味著應用不總是一直在線的。只有當有請求到達或者有事件發生時才會被部署和啟動。當應用空閑至一定時長時,應用會被自動停止和卸載。 事件驅動
應用的加載和執行由事件驅動,通過將不同事件來源(EventSource)的事件(Event)與特定的函數進行關聯,實現對不同事件采取不同的反應動作。

狀態非本地持久化
云計算平臺自動控制應用實例的加載和卸載,且應用和服務器完全解耦,應用不再與特定的服務器關聯。因此應用的狀態不能,也不會保存在其運行的服務器之上,不能做到傳統意義上的狀態本地持久化

應用函數化
每一個調用完成一個業務動作,應用會被分解成多個細顆粒度的操作。由于狀態無法本地持久化,這些細顆粒度的操作是無狀態的。

依賴服務化
所有應用依賴的服務都是一個個后臺服務(BackendService),應用通過BaaS方便獲取,而無須關心底層細節。
?

Serverless的局限性:

可移植性
Serverless應用的實現在很大程度上依賴于Serverless平臺及該平臺上的FaaS和BaaS服務。不同IT廠商的Serverless平臺和解決方案的具體實現并不相同。
安全性
在Serverless架構下,用戶不能直接控制應用實際所運行的主機。不同用戶的應用,或者同一用戶的不同應用在運行時可能共用底層的主機資源。對于一些安全性要求較高的應用,這將帶來潛在的安全風險。
性能
當一個Serverless應用長時間空閑時將會被從主機上卸載。當請求再次到達時,平臺需要重新加載應用。應用的首次加載及重新加載的過程將產生一定的延時。對于一些對延時敏感的應用,需要通過預先加載或延長空閑超時時間等手段進行處理。
執行時長
Serverless的一個重要特點是應用按需加載執行,而不是長時間持續部署在主機上。目前,大部分Serverless平臺對FaaS函數的執行時長存在限制。因此Serverless應用更適合一些執行時長較短的作業。?
技術成熟度
目前Serverless相關平臺、工具和框架還處在一個不斷變化和演進的階段,開發和調試的用戶體驗還需要進一步提升。

?

如何實現FaaS?

微服務和FaaS的差別在于粒度,微服務是功能級別,FaaS 是函數級別。server 要實現FaaS,首先必須將單體應用演進到微服務,然后才能進一步地分解到函數級別,實現FaaS。

總結

以上是生活随笔為你收集整理的浅析Serverless的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。