天天看點

亞馬遜AWS的Serverless架構亞馬遜AWS的Serverless架構

版權聲明:本文為部落客chszs的原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/chszs/article/details/60141447

亞馬遜AWS的Serverless架構

作者:chszs,未經部落客允許不得轉載。經許可的轉載需注明作者和部落格首頁: http://blog.csdn.net/chszs

Serverless平台允許運作應用程式,包括計算、存儲和網絡——無需啟動和管理單個(虛拟)機器。本文主要介紹AWS上的Serverless架構,包括Lambda、API Gateway、DynamoDB、S3等。Serverless架構模式也可以轉移到其他雲平台實施。

能夠專注于軟體開發而不是操作一組伺服器是Serverless的主要驅動力。或者正如Amazon.com首席技術官Werner Vogels所說:“沒有伺服器比不管理伺服器更容易管理。”Serverless基礎設施的另一個重要方面是細粒度的計費和極高的可擴充性。為了給你一個典型用例的印象,這裡列舉了一些Serverless應用程式:

  • 在高負載場景使用REST API從Web應用程式收集名額
  • 從傳入的包含訂單和狀态資訊的電子郵件中提取和存儲資料
  • 建立提供标準後端CRUD操作的REST API
  • 在大資料場景的ETL過程中收集和轉換資料
  • 分析來自實時資料流的日志消息
  • 建構一個在背景可以與多個API互動的聊天機器人chatbot

限制

在高可用性和高可擴充性的基礎設施上執行源代碼的能力是每個Serverless平台的核心。例如,AWS Lambda允許運作源代碼以響應事件。AWS提供了計算基礎設施和針對JavaScript(Node.js)、Java、Python或.NET Core(C#)等程式設計語言的運作時環境。典型的Serverless應用程式由多個函數組成。在AWS Lambda上,每個函數執行的逾時時間為5分鐘。但可以通過高度并行的方式執行相同或不同的函數。

遵循Serverless方法時,需要将應用程式劃分為多個小功能。利用微服務架構可以幫助實作這個功能劃分的目标。Serverless最适合事件驅動的架構。當編排多個Serverless函數來建構一個系統時,事件是觸發Serverless函數的源。

基于以下事件可以觸發一個AWS Lambda的函數:

  • 傳入HTTPS請求
  • 更改存儲在資料庫或對象存儲中的資料
  • 傳入郵件(例如電子郵件)
  • 将任務釋出到主題或實時資料流
  • 計劃事件(與cronjob相似)

繼續閱讀