成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

通通透透看無服務器計算:由來、場景和問題

原創
云計算
Serverless是一種構建和管理基于微服務架構的完整流程,允許你在服務部署級別而不是服務器部署級別來管理你的應用部署。它與傳統架構的不同之處在于,完全由第三方管理,由事件觸發,存在于無狀態(Stateless)、暫存(可能只存在于一次調用的過程中)計算容器內。

【51CTO.com原創稿件】一、 無服務器(Serverless)計算的由來

過去十年來,我們已經把應用和環境中很多通用的部分變成了服務。Serverless的出現,帶來了跨越式變革。Serverless把主機管理、操作系統管理、資源分配、擴容,甚至是應用邏輯的全部組件都外包出去,把它們看作某種形式的商品——廠商提供服務,我們掏錢購買。過去是“構建一個框架運行在一臺服務器上,對多個事件進行響應”,Serverless則變為“構建或使用一個微服務或微功能來響應一個事件”,做到當訪問時,調入相關資源開始運行,運行完成后,卸載所有開銷,真正做到按需按次計費。這是云計算向縱深發展的一種自然而然的過程。

[[250586]]

Serverless是一種構建和管理基于微服務架構的完整流程,允許你在服務部署級別而不是服務器部署級別來管理你的應用部署。它與傳統架構的不同之處在于,完全由第三方管理,由事件觸發,存在于無狀態(Stateless)、暫存(可能只存在于一次調用的過程中)計算容器內。構建無服務器應用程序意味著開發者可以專注在產品代碼上,而無須管理和操作云端或本地的服務器或運行時。

國內外的各大云廠商 Amazon、微軟、Google、IBM、阿里云、騰訊云、華為云相繼推出Serverless產品,Serverless也從概念、愿景逐步走向落地,在各互聯網公司應用開來。

二、 理解Serverless技術---FaaS和BaaS

Serverless由開發者實現的服務端邏輯運行在無狀態的計算容器中,它由事件觸發, 完全被第三方管理,其業務層面的狀態則被開發者使用的數據庫和存儲資源所記錄。Serverless涵蓋了很多技術,分為兩類:FaaS和BaaS。

1.Faas

FaaS意在無須自行管理服務器系統或自己的服務器應用程序,即可直接運行后端代碼。其中所指的服務器應用程序,是該技術與容器和PaaS(平臺即服務)等其他現代化架構最大的差異。

FaaS可以取代一些服務處理服務器(可能是物理計算機,但絕對需要運行某種應用程序),這樣不僅不需要自行供應服務器,也不需要全時運行應用程序。

FaaS產品不要求必須使用特定框架或庫進行開發。在語言和環境方面,FaaS函數就是常規的應用程序。例如AWS Lambda的函數可以通過Javascript、Python以及任何JVM語言(Java、Clojure、Scala)等實現。然而Lambda函數也可以執行任何捆綁有所需部署構件的進程,因此可以使用任何語言,只要能編譯為Unix進程即可。FaaS函數在架構方面確實存在一定的局限,尤其是在狀態和執行時間方面。

在遷往FaaS的過程中,唯一需要修改的代碼是“主方法/啟動”代碼,其中可能需要刪除頂級消息處理程序的相關代碼(“消息監聽器接口”的實現),但這可能只需要更改方法簽名即可。在FaaS的世界中,代碼的其余所有部分(例如向數據庫執行寫入的代碼)無須任何變化。

相比傳統系統,部署方法會有較大變化 – 將代碼上傳至FaaS供應商,其他事情均可由供應商完成。目前這種方式通常意味著需要上傳代碼的全新定義(例如上傳zip或JAR文件),隨后調用一個專有API發起更新過程。

FaaS中的函數可以通過供應商定義的事件類型觸發。對于亞馬遜AWS,此類觸發事件可以包括S3(文件)更新、時間(計劃任務),以及加入消息總線的消息(例如Kinesis)。通常你的函數需要通過參數指定自己需要綁定到的事件源。

大部分供應商還允許函數作為對傳入Http請求的響應來觸發,通常這類請求來自某種該類型的API網關(例如AWS API網關、Webtask)。

2.Baas

BaaS(Backend as a Service,后端即服務)是指我們不再編寫或管理所有服務端組件,可以使用領域通用的遠程組件(而不是進程內的庫)來提供服務。理解BaaS,需要搞清楚它與PaaS的區別。

首先BaaS并非PaaS,它們的區別在于:PaaS需要參與應用的生命周期管理,BaaS則僅僅提供應用依賴的第三方服務。典型的PaaS平臺需要提供手段讓開發者部署和配置應用,例如自動將應用部署到Tomcat容器中,并管理應用的生命周期。BaaS不包含這些內容,BaaS只以API的方式提供應用依賴的后端服務,例如數據庫和對象存儲。BaaS可以是公共云服務商提供的,也可以是第三方廠商提供的。其次從功能上講,BaaS可以看作PaaS的一個子集,即提供第三方依賴組件的部分。

BaaS服務還允許我們依賴其他人已經實現的應用邏輯。對于這點,認證就是一個很好的例子。很多應用都要自己編寫實現注冊、登錄、密碼管理等邏輯的代碼,而對于不同的應用這些代碼往往大同小異。完全可以把這些重復性的工作提取出來,再做成外部服務,而這正是Auth0和Amazon Cognito等產品的目標。它們能實現全面的認證和用戶管理,開發團隊再也不用自己編寫或者管理實現這些功能的代碼。

三、 無服務器(Serverless)計算如何工作?

與使用虛擬機或一些底層的技術來部署和管理應用程序相比,無服務器計算提供了一種更高級別的抽象。因為它們有不同的抽象和“觸發器”的集合。

拿計算來講,這種抽象有一個特定函數和抽象的觸發器,它通常是一個事件。以數據庫為例,這種抽象也許是一個表,而觸發器相當于表的查詢或搜索,或者通過在表中做一些事情而生成的事件。

比如一款手機游戲,允許用戶在不同的平臺上為全球頂級玩家使用高分數表。當請求此信息時,請求從應用程序到API接口。API接口或許會觸發AWS的Lambda函數,或者無服務器函數,這些函數再從數據庫表中獲取到數據流,返回包含前五名分數的一定格式的數據。

一旦構建完成,應用程序的功能就可以在基于移動和基于 Web 的游戲版本中重用。

這跟設置服務器不同,不是必須要有Amazon EC2實例或服務器,然后等待請求。環境由事件觸發,而響應事件所需的邏輯只在響應時執行。這意味著,運行函數的資源只有在函數運行時被創建,產生一種非常高效的方法來構建應用程序。

四、 無服務器(Serverless)計算適用于哪些場景?

無服務器計算適合于任何事件驅動的各種不同的用例。這包括物聯網,移動應用,基于網絡的應用程序和聊天機器人等。這里說兩個場景,方便大家思考。

場景一:應用負載有顯著的波峰波谷

Serverless 應用成功與否的評判標準并不是公司規模的大小,而是其業務背后的具體技術問題,比如業務波峰波谷明顯,如何實現削峰填谷。一個公司的業務負載具有波峰波谷時,機器資源要按照峰值需求預估;而在波谷時期機器利用率則明顯下降,因為不能進行資源復用而導致浪費。

業界普遍共識是,當自有機器的利用率小于 30%,使用 Serverless 后會有顯著的效率提升。對于云服務廠商,在具備了足夠多的用戶之后,各種波峰波谷疊加后平穩化,聚合之后資源復用性更高。比如,外賣企業負載高峰是在用餐時期,安防行業的負載高峰則是夜間,這是受各個企業業務定位所限的;而對于一個云服務廠商,如果其平臺足夠大,用戶足夠多,是不應該有明顯的波峰波谷現象的。

場景二:典型用例 - 基于事件的數據處理

視頻處理的后端系統,常見功能需求如下:視頻轉碼、抽取數據、人臉識別等,這些均為通用計算任務,可由函數計算執行。

開發者需要自己寫出實現邏輯,再將任務按照控制流連接起來,每個任務的具體執行由云廠商來負責。如此,開發變得更便捷,并且構建的系統天然高可用、實時彈性伸縮,用戶不需要關心機器層面問題。

五、無服務器計算(Serverless)存在的問題

對于企業來說,支持Serverless計算的平臺可以節省大量時間和成本,同時可以釋放員工,讓開發者得以開展更有價值的工作,而不是管理基礎設施。另一方面可以提高敏捷度,更快速地推出新應用和新服務,進而提高客戶滿意度。但是Serverless不是完美的,它也存在一些問題,需要慎重應用在生產環境。

1、不適合長時間運行應用

Serverless 在請求到來時才運行。這意味著,當應用不運行的時候就會進入 “休眠狀態”,下次當請求來臨時,應用將會需要一個啟動時間,即冷啟動時間。如果你的應用需要一直長期不間斷的運行、處理大量的請求,那么你可能就不適合采用 Serverless 架構。如果你通過 CRON 的方式或者 CloudWatch 來定期喚醒應用,又會比較消耗資源。

2、完全依賴于第三方服務

當你所在的企業云環境已經有大量的基礎設施的時候,Serverless 對于你來說,并不是一個好東西。當我們采用 Serverless 架構的時候,我們就和該服務供應商綁定了,那么我們再將服務遷到別的云服務商上就沒有那么容易了。

我們需要修改一下系列的底層代碼,能采取的應對方案,便是建立隔離層。這意味著,在設計應用的時候,就需要隔離 API 網關、隔離數據庫層,考慮到市面上還沒有成熟的 ORM 工具,讓你既支持Firebase,又支持 DynamoDB等等。這些也將帶給我們一些額外的成本,可能帶來的問題會比解決的問題多。

3、缺乏調試和開發工具

當我使用 Serverless Framework 的時候,遇到了這樣的問題:缺乏調試和開發工具。后來,我發現了 serverless-offline、dynamodb-local 等一系列插件之后,問題有一些改善。然而,對于日志系統來說,這仍然是一個艱巨的挑戰。

每次調試的時候,你需要一遍又一遍地上傳代碼。而每次上傳的時候,你就好像是在部署服務器,我并不能總是快速地定位出問題在哪。后來,找了一個類似于 log4j 這樣的可以分級別記錄日志的 Node.js 庫 winston。它可以支持 error、warn、info、verbose、debug、silly 六個不同級別的日志,再結合大數據進行日志分析過濾,才能快速定位問題。

4、構建復雜

Serverless 很便宜,但是這并不意味著它很簡單。AWS Lambda的 CloudFormation配置是如此的復雜,并且難以閱讀及編寫(JSON 格式),雖然CloudFomation提供了Template模板,但想要使用它的話,需要創建一個Stack,在Stack中指定你要使用的Template,然后AWS才會按照Template中的定義來創建及初始化資源。

而Serverless Framework的配置更加簡單,采用的是 YAML 格式。在部署的時候,Serverless Framework 會根據我們的配置生成 CloudFormation 配置。然而這也并非是一個真正用于生產的配置,真實的應用場景遠遠比這復雜。

六、總結

云計算經過這么多年的發展,逐漸進化到用戶僅需關注業務和所需的資源。比如,通過Swarm、K8S這些編排工具,用戶只要關注自己的計算和需要的資源(CPU、內存等)就行了,不需要操心到機器這一層。

Serverless架構讓人們不再操心運行所需的資源,只需關注自己的業務邏輯,并且為實際消耗的資源付費。可以說,隨著Serverless架構的興起,真正的云計算時代才算到來了。

任何新概念新技術的落地,本質上都是要和具體業務去結合,去真正解決具體問題。雖然Serverless很多地方不成熟,亟待完善。不過Serverless自身的優越特性,對于開發者來說,吸引力是巨大的。相信隨著技術的飛速發展,Serverless在未來還有無限可能!

【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】

責任編輯:未麗燕 來源: 51CTO.com
相關推薦

2022-01-05 09:28:31

無服務器計算服務器應用程序

2019-04-30 10:27:46

無服務器云計算安全

2018-03-01 10:26:25

無服務器計算架構

2020-07-28 17:51:36

RiffKubernetes無服務器

2022-03-18 20:54:24

無服務器計算無服務器服務器

2017-07-27 16:05:40

2019-04-01 13:47:57

無服務器計算云服務

2017-11-27 10:45:48

無服務器計算容器

2019-03-08 10:26:29

無服務器云計算德勤

2018-02-28 11:19:41

服務器云計算公共云

2022-07-01 13:41:32

無服務器容器企業

2023-07-05 08:00:45

架構

2020-10-10 07:00:00

無服務器計算容器

2023-08-27 15:20:58

Serverless架構開發

2018-02-24 10:15:36

無服務器容器云計算

2017-08-08 14:33:36

無服務計算服務器

2018-10-10 19:39:37

云計算云服務Kubernetes

2024-01-19 11:57:42

2018-03-28 10:55:26

無服務器云計算操作數據

2018-11-20 10:44:10

開源無服務器 Serverless
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: av一区二区三区 | 亚洲人成人一区二区在线观看 | av一区二区三区四区 | 韩日精品视频 | 午夜影院毛片 | 国产伦精品一区二区三区照片91 | 国产精品久久久久久吹潮 | 久久四虎 | 久久久一区二区三区 | 一区二区视频在线 | 午夜精品一区 | 国产激情视频在线 | 亚洲一区国产 | 精品成人 | 国产精品视频导航 | 欧美九九 | 日韩和的一区二区 | 麻豆一区二区三区精品视频 | 午夜影视在线观看 | 久久亚| 国产精品视频一区二区三区 | 国产在线高清 | 成人一区二区电影 | 久久综合一区 | 日韩欧美在线播放 | 午夜专区 | 欧美伊人 | 国产探花在线观看视频 | 91极品视频| 在线欧美 | 日韩精品一区二区三区视频播放 | 欧美久操网 | 国产精品激情 | 国产精品资源在线 | 男女视频在线免费观看 | 日韩av成人| 九九热精品在线 | 欧美日韩在线视频观看 | 久久精品视频在线播放 | 九九在线视频 | 日本成人片在线观看 |