我們之前關(guān)于 AWS 無服務(wù)器平臺(tái)的文章討論了該平臺(tái)的基本原理和挑戰(zhàn)以及簡(jiǎn)單的應(yīng)用程序使用案例。在本文中,我們將介紹企業(yè)如何使用 AWS 云實(shí)施具有多層架構(gòu)的無服務(wù)器應(yīng)用程序。
多層體系結(jié)構(gòu)概述
多層體系結(jié)構(gòu)也稱為 n 層體系結(jié)構(gòu)。在這種體系結(jié)構(gòu)中,應(yīng)用程序在多個(gè)層中開發(fā)和分發(fā)。層數(shù)取決于業(yè)務(wù)需求,但三層體系結(jié)構(gòu)是首選且最常用的。
此三層體系結(jié)構(gòu)包括表示層、邏輯層和數(shù)據(jù)層。
用戶直接與表示層交互。邏輯層包含將用戶操作轉(zhuǎn)換為應(yīng)用程序行為的代碼。數(shù)據(jù)層由保存與應(yīng)用程序相關(guān)的數(shù)據(jù)的存儲(chǔ)組成
可以在整體式架構(gòu)中使用數(shù)千臺(tái)服務(wù)器來提高應(yīng)用程序的性能。這種無服務(wù)器多層體系結(jié)構(gòu)模式消除了服務(wù)器管理。
以下是使用由 AWS 管理的無服務(wù)器服務(wù)的幾個(gè)好處
無需選擇、修補(bǔ)或管理操作系統(tǒng)
無需監(jiān)控、橫向擴(kuò)展或保護(hù)服務(wù)器
過度配置不會(huì)給基礎(chǔ)架構(gòu)帶來風(fēng)險(xiǎn)
配置不足不會(huì)給應(yīng)用程序性能帶來風(fēng)險(xiǎn)
無服務(wù)器服務(wù)
上述所有服務(wù)都會(huì)自動(dòng)擴(kuò)展,以支持應(yīng)用程序的確切需求。
無服務(wù)器架構(gòu)
表示層
在上述架構(gòu)中,靜態(tài)內(nèi)容托管在 Amazon S3 上,并由 Amazon CloudFront 分發(fā)。在 Amazon S3 上托管靜態(tài)網(wǎng)站內(nèi)容是在基于服務(wù)器的基礎(chǔ)設(shè)施上托管內(nèi)容的經(jīng)濟(jì)替代方法。此外,大量數(shù)據(jù)可以存儲(chǔ)在 Amazon S3 中。Amazon CloudFront 是一個(gè)內(nèi)容交付網(wǎng)絡(luò),用于緩存靜態(tài)內(nèi)容并提供動(dòng)態(tài)和靜態(tài)內(nèi)容,以縮短網(wǎng)頁加載時(shí)間并降低網(wǎng)絡(luò)帶寬成本。
AWS CognitoUser 池是一個(gè)用戶目錄,為應(yīng)用程序用戶提供注冊(cè)和登錄選項(xiàng)。它還可以控制誰可以訪問Amazon API Gateway中的API
邏輯層
對(duì)于動(dòng)態(tài)內(nèi)容,route-53 通過 AWS WAF 將請(qǐng)求發(fā)送到 API 網(wǎng)關(guān),并從 API Gateway Lambda 函數(shù)觸發(fā)并將數(shù)據(jù)存儲(chǔ)在 Amazon S3 和 DynamoDB 或 AWS Aurora 中。
將 Amazon 的 API Gateway 與 AWS Lambda 集成,使代碼函數(shù)可以直接通過 HTTPS 請(qǐng)求觸發(fā)。無論所需的請(qǐng)求量如何,API 網(wǎng)關(guān)和 Lambda 都會(huì)自動(dòng)擴(kuò)展。這兩種服務(wù)允許專注于對(duì)應(yīng)用程序重要的代碼,而不是專注于實(shí)現(xiàn)多層體系結(jié)構(gòu)的其他各個(gè)方面。
對(duì)于網(wǎng)絡(luò)隱私,AWS 能夠在 Amazon VPC 中創(chuàng)建 lambda 函數(shù)
AWS WAF 是一種 Web 應(yīng)用程序防火墻,可以部署在 CloudFront 上,以保護(hù)應(yīng)用程序免受 DDoS 攻擊。WAF 通過定義安全規(guī)則來允許或阻止流量。Amazon Route 53 可以通過 AWS WAF 將用戶的請(qǐng)求連接到 CloudFront 分配。
AWS Glue 可以根據(jù)獲取新數(shù)據(jù)集等事件運(yùn)行 ETL(提取、轉(zhuǎn)換和加載)作業(yè)。在上述架構(gòu)中,一旦 Amazon S3 中有新數(shù)據(jù)(日志)可用,Glue 就會(huì)運(yùn)行 ETL 作業(yè),并且這些日志將被推送到 Amazon CloudWatch,并且可以從 Amazon CloudWatch 通過 Amazon SNS 發(fā)送通知。
數(shù)據(jù)層
根據(jù)應(yīng)用程序場(chǎng)景,AWS Lambda 會(huì)將數(shù)據(jù)存儲(chǔ)到 Amazon DynamoDB 或 AWS Aurora。
Amazon DynamoDB 能夠存儲(chǔ)可無限擴(kuò)展的 NoSQL 數(shù)據(jù)庫,還提供預(yù)置和按需容量模式,以便通過指定每個(gè)工作負(fù)載的容量來優(yōu)化成本。
AWS Aurora 是 MySQL 和 PostgreSQL 兼容的完全托管關(guān)系數(shù)據(jù)庫服務(wù),專為傳統(tǒng)企業(yè)數(shù)據(jù)庫構(gòu)建,該數(shù)據(jù)庫需要開源數(shù)據(jù)庫的性能和可用性以及成本效益。它能夠根據(jù)應(yīng)用程序的需求自動(dòng)啟動(dòng)、關(guān)閉和擴(kuò)展或縮減容量。對(duì)于不頻繁或不可預(yù)測(cè)的工作負(fù)載,這是一種經(jīng)濟(jì)高效的解決方案
Amazon Athena/Amazon Redshift Spectrum 使用 AWS Glue 作為存儲(chǔ)和檢索表元數(shù)據(jù)的中心位置。它具有分析非結(jié)構(gòu)化、半結(jié)構(gòu)化和結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的能力。Athena 還可以生成報(bào)告,Amazon QuickSight 可以與 Athena 集成,以便輕松實(shí)現(xiàn)數(shù)據(jù)可視化
根據(jù)最佳實(shí)踐,所有服務(wù)都與 AWS IAM 角色相關(guān)聯(lián)。在許多情況下,可以利用此 AWS 托管服務(wù),而不是管理典型的基于服務(wù)器的基礎(chǔ)設(shè)施。借助這種無服務(wù)器多層體系結(jié)構(gòu),可以輕松創(chuàng)建易于維護(hù)、解耦、安全、擴(kuò)展且高度可用的生產(chǎn)應(yīng)用程序組件。
審核編輯:郭婷
-
服務(wù)器
+關(guān)注
關(guān)注
13文章
9796瀏覽量
88013 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
7152瀏覽量
125623 -
AWS
+關(guān)注
關(guān)注
0文章
437瀏覽量
25291
發(fā)布評(píng)論請(qǐng)先 登錄


采用華為云 Flexus 云服務(wù)器 X 實(shí)例部署 MQTT 服務(wù)器完成設(shè)備上云

負(fù)載均衡服務(wù)器與服務(wù)器如何連接?
SSR與傳統(tǒng)服務(wù)器的對(duì)比分析
如何在Windows上設(shè)置SFTP服務(wù)器
美國(guó)多IP服務(wù)器和美國(guó)多服務(wù)器有什么區(qū)別
GPU服務(wù)器AI網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)

評(píng)論