AWS 提供豐富的無伺服器服務與工具,協助開發者建構高擴充套件性、高用性的應用程式。從基礎設施到應用程式開發,AWS 提供了計算、儲存、資料函式庫、分析、機器學習等全方位服務。開發者可以利用 AWS CloudFormation、CDK 和 SAM 等工具簡化佈署流程,並透過 CI/CD 服務實作自動化。Amazon EventBridge、SNS 和 SQS 則支援事件驅動架構,搭配 Lambda 函式實作高效的實時處理。此外,Well-Architected Framework 提供了設計和評估雲端架構的最佳實務,涵蓋安全性、成本最佳化、效能等導向,確保應用程式符合最佳標準。

AWS是一個全面雲端平臺

AWS是一個全面雲端平臺,提供超過200種服務,用於建構和營運無伺服器和非無伺服器工作負載。表1-3列出了部分最常用的受管理無伺服器服務。我們將在整本文中討論許多這些服務。

表1-3:熱門的AWS無伺服器服務

類別服務
分析Amazon Kinesis, Amazon Athena, AWS Glue, Amazon QuickSight
應用程式建構AWS Amplify
API建構Amazon API Gateway, AWS AppSync
應用程式整合Amazon EventBridge, AWS Step Functions, Amazon Simple Notification Service (SNS), Amazon Simple Queue Service (SQS), Amazon API Gateway, AWS AppSync
計算AWS Lambda
內容傳遞Amazon CloudFront
資料函式庫Amazon DynamoDB, Amazon Aurora Serverless

內容解密:

上述內容強調了AWS作為無伺服器應用程式平臺的重要性。透過瞭解AWS的歷史、其服務的命名規則以及提供的各種無伺服器服務,您可以更好地評估如何利用AWS來建構和營運您的無伺服器應用程式。

圖表翻譯:

  graph LR
    A[需求提出] --> B[設計和建構]
    B --> C[營運和維護]
    C --> D[監控和最佳化]
    D --> A

此圖表展示了無伺服器應用程式的生命週期,從需求提出到設計和建構,再到營運和維護,最後到監控和最佳化。這個迴圈反映了無伺服器應用程式所需的持續迭代和改進。

瞭解 AWS 服務與架構設計

AWS 提供了一系列的服務和工具,幫助開發者和企業設計、建置、營運安全、可擴充套件、可用且高效的應用程式。這些服務涵蓋了從基礎設施到應用程式開發的各個層面,包括計算、儲存、資料函式庫、分析、機器學習、安全性和身份識別等。

開發工具

AWS CloudFormation、AWS Cloud Development Kit (CDK) 和 AWS Serverless Application Model (SAM) 是用於建置和佈署雲端應用程式的重要工具。這些工具允許開發者使用根據文字的範本定義雲端資源和應用程式,從而簡化了佈署和管理過程。另外,AWS CodeBuild、AWS CodeCommit、AWS CodeDeploy 和 AWS CodePipeline 等服務提供了完整的持續整合和持續交付 (CI/CD) 解決方案,幫助開發者自動化測試、建置、佈署和交付應用程式。

郵件服務

Amazon Simple Email Service (SES) 是一種完全託管的郵件服務,允許開發者從自己的應用程式中傳送和接收郵件。這項服務提供了高用性和可擴充套件性,同時也支援多種身份驗證和加密方法,以確保郵件傳輸的安全性。

事件驅動架構

Amazon EventBridge、Amazon Simple Notification Service (SNS) 和 Amazon Simple Queue Service (SQS) 是構建事件驅動架構的關鍵服務。這些服務允許開發者建立可擴充套件和可靠的事件驅動系統,從而實作應用程式之間的解耦和更好的可維護性。AWS Lambda 是一種無伺服器計算服務,允許開發者執行程式碼而無需組態或管理伺服器,非常適合事件驅動架構中的實時處理任務。

治理和合規

AWS Well-Architected Tool、AWS Trusted Advisor 和 AWS Systems Manager 等服務提供了全面的治理和合規解決方案,幫助企業評估和改進其雲端架構的安全性、成本最佳化和效能等方面。AWS Organizations 是一種管理服務,允許企業集中管理多個 AWS 賬戶和資源,從而簡化了治理和合規工作。

高容量事件流

Amazon Kinesis Data Streams 和 Amazon Kinesis Data Firehose 是用於處理高容量事件流的服務。這些服務允許開發者捕捉、處理和分析大規模的資料流,從而實作實時的資料處理和分析。

身份識別、身份驗證和安全

AWS Identity and Access Management (IAM)、Amazon Cognito 和 AWS Secrets Manager 等服務提供了全面的身份識別、身份驗證和安全解決方案。這些服務允許開發者管理使用者身份、控制資源存取和保護敏感資料,從而確保雲端應用程式的安全性。

機器學習

Amazon SageMaker、Amazon Translate 和 Amazon Comprehend 等服務提供了全面的機器學習解決方案,允許開發者快速地構建、訓練和佈署機器學習模型。這些服務支援多種機器學習框架和演算法,從而簡化了機器學習的開發過程。

網路和物聯網

Amazon Route 53 是一種高用性和可擴充套件性的 DNS 服務,允許開發者管理網域名稱和路由流量。物聯網 (IoT) 的相關服務,如 AWS IoT Core 和 FreeRTOS,提供了全面的物聯網解決方案,允許開發者連線、管理和分析 IoT 裝置。

物件儲存

Amazon Simple Storage Service (S3) 是一種高用性和可擴充套件性的物件儲存服務,允許開發者儲存和檢索大量的資料。

可觀察性

Amazon CloudWatch、AWS X-Ray 和 AWS CloudTrail 等服務提供了全面的可觀察性解決方案,允許開發者監控、記錄和分析應用程式的效能和安全性。

工作流程

AWS Step Functions 是一種工作流程服務,允許開發者定義和執行複雜的工作流程,從而簡化了應用程式的邏輯控制和錯誤處理。

安全

AWS Identity and Access Management (IAM)、Amazon Cognito 和 AWS Secrets Manager 等服務提供了全面的安全解決方案,允許開發者管理使用者身份、控制資源存取和保護敏感資料。

Well-Architected Framework

Well-Architected Framework 是一種架構設計框架,提供了六個支柱來評估雲端架構的安全性、成本最佳化、效能等方面。這六個支柱分別是營運卓越、安全、可靠性、效能效率、成本最佳化和可持續性。透過遵循這個框架,企業可以設計和建置安全、可擴充套件、高效且成本最佳化的雲端應用程式。

營運卓越

營運卓越支柱提供了設計原則和最佳實踐,以便在雲端中識別、準備、營運、觀察和改進工作負載。這包括預測和緩解故障、以小但頻繁的增量演進應用程式以及不斷評估和改進營運程式等核心原則。

安全

安全支柱關注於身份識別和存取管理、保護應用程式的所有層次、確保資料隱私和控制以及追蹤和稽核所有操作。它在所有開發階段灌輸安全思維,並且是所有相關人員的責任。

可靠性

可靠性支柱關注於設計和營運高度可靠且容錯的系統,以便在故障發生時能夠快速還原。它包括選擇合適的計算資源、設計無伺服器架構以及實作自動擴充套件等策略,以確保系統的高用性和容錯能力。

瞭解雲端運算的五大支柱:可靠性、效能效率、成本最佳化、可持續性和營運最佳化

雲端運算的世界中,應用程式的可靠性和效能效率至關重要。為了達到這些目標,AWS 提出了五大支柱:可靠性、效能效率、成本最佳化、可持續性和營運最佳化。這些支柱為我們提供了一個框架,來設計和營運雲端應用程式,以確保它們能夠滿足使用者的需求。

可靠性:設計應用程式以工作於服務配額和限制之內

可靠性是指應用程式能夠在各種情況下正常運作的能力。為了達到可靠性,我們需要設計應用程式以工作於服務配額和限制之內。這包括預防和減輕故障、識別和還原故障等。透過這些措施,我們可以確保應用程式能夠在各種情況下正常運作。

效能效率:選擇合適的技術和資源以建構和營運高效系統

效能效率是指系統能夠以最少的資源完成任務的能力。為了達到效能效率,我們需要選擇合適的技術和資源以建構和營運系統。這包括監控和分析資料,以便在任何時候都能夠維持系統的效率。

成本最佳化:營運商業應用程式以提供價值和降低成本

成本最佳化是指營運商業應用程式以提供價值和降低成本的能力。為了達到成本最佳化,我們需要關注財務管理、建立雲端成本意識、使用成本有效的資源和技術等。透過這些措施,我們可以確保商業應用程式能夠在雲端中營運得更好。

可持續性:設計和營運應用程式以減少環境影響

可持續性是指設計和營運應用程式以減少環境影響的能力。為了達到可持續性,我們需要關注應用程式的能源消耗、儲存空間使用和網路傳輸等。透過使用按需資源和最佳化系統,我們可以減少環境影響。

營運最佳化:持續分析和最佳化系統以滿足商業需求

營運最佳化是指持續分析和最佳化系統以滿足商業需求的能力。為了達到營運最佳化,我們需要持續監控和分析系統的效能,以便在任何時候都能夠維持系統的效率。

AWS 提供的超過 200 種雲端服務,建構了一個完整的無伺服器應用程式生態系統。深入剖析 AWS 的核心服務,如 Lambda、API Gateway、DynamoDB 等,可以發現它們彼此之間緊密整合,形成一個高效能、高擴充套件性的應用程式開發平臺。然而,如此豐富的服務也帶來了技術選型的複雜性,開發者需要根據實際業務需求,謹慎選擇合適的服務組合,避免不必要的成本支出和技術債務。

AWS Well-Architected Framework 的六大支柱,特別是營運卓越、安全、可靠性和成本最佳化,為開發者提供了設計和營運無伺服器應用程式的最佳實務。技術團隊應著重於理解和應用這些原則,才能充分發揮 AWS 雲端平臺的優勢,構建高品質的無伺服器應用程式。同時,也需考量服務配額和限制,並持續監控和最佳化系統效能,以確保應用程式長期穩定執行。

展望未來,隨著無伺服器技術的持續發展,AWS 生態系統也將不斷演進。預計未來會有更多針對特定應用場景的無伺服器服務出現,進一步降低開發門檻,並提升應用程式開發效率。密切關注 AWS 的新服務和功能更新,將有助於開發者保持技術領先,並在競爭激烈的市場中保持優勢。玄貓認為,深入理解 AWS Well-Architected Framework 並結合實際業務需求進行技術選型,是企業成功運用 AWS 雲端平臺的關鍵。