什么是AWS最佳架構和六大支柱
AWS Well-Architected Framework 描述了用于在云中設計和運行工作負載的關鍵概念、設計原則和架構最佳實踐。通過回答一組基本問題,您將了解您的架構如何與云最佳實踐保持一致,并提供改進指導。
The AWS Well-Architected Framework is based on six pillars:
- Operational Excellence
- Security
- Reliability
- Performance Efficiency
- Cost Optimization
- Sustainability
卓越運營支柱 Operational excellence - Operational Excellence Pillar (amazon.com)
卓越運營支柱側重于運行和監測系統,并不斷改進流程和程序。關鍵主題包括:自動化變更、響應事件以及定義標準以管理日常運營。
以下是在云中實現卓越運營的設計原則:
- 執行運營即代碼: 在云中,您可以將用于應用程序代碼的工程規范應用于整個環境。您可以將整個工作負載(應用程序、基礎設施等)定義為代碼,并使用該代碼進行更新。您可以為運營流程編寫腳本,并通過啟動這些腳本來自動執行流程,以響應事件。通過執行運營即代碼,您可以減少人為錯誤并實現對事件的一致響應。
- 頻繁進行可逆的小規模更改: 將工作負載設計為可擴展且松耦合,以允許定期更新組件。自動部署技術加上小型增量變更可縮小影響范圍,并能夠在發生故障時更快地進行回滾。這將增強您的信心,在保持質量和快速適應市場條件變化的同時,為您的工作負載提供有益的變化。
- 經常優化運營流程: 在改進工作負載的同時,您也要適當改進一下運營。在使用運營程序時,要尋找機會改進它們。定期審查并驗證所有流程是否有效,以及團隊是否熟悉這些流程。在發現差距時,相應地更新程序。向所有利益相關者和團隊傳達程序更新。將運營游戲化,以分享最佳實踐并向團隊傳授知識。
- 預測故障: 執行“故障演練”,找出潛在的問題,以便消除和緩解問題。測試您的故障場景,并確認您了解相應影響。測試您的響應程序,以確保它們的有效性,以及團隊熟練他們的流程。設置定期的實際演練,以測試工作負載和團隊對模擬事件的響應。
- 從所有運營故障中吸取經驗教訓: 從所有運營事件和故障中吸取的經驗教訓,推動改進。在多個團隊乃至組織范圍中分享經驗教訓。
- 使用托管服務: 盡可能使用 AWS 托管服務,減少運營負擔。圍繞與這些服務的交互制定操作程序。
- 實施可觀測性以獲得切實可行的見解: 全面了解工作負載行為、性能、可靠性、成本和運行狀況。建立關鍵績效指標(KPI),利用可觀測性遙測來作出明智的決策,并在業務結果面臨風險時迅速采取行動。基于可操作的可觀測性數據,主動提高性能和可靠性,降低成本。
AWS 提供了很多服務可以幫助客戶來達到這一目標,會經常涉及到的幾個服務:
- Amzon CloudWatch - 提供了一個高可靠,可伸縮以及靈活的監控服務。你可以在短短幾分鐘之內將其啟用,用來實時監控你部署在 AWS 上的資源和應用。
- AWS Config - 用來記錄所有對資源配置進行的修改,并且可以對配置的合規性進行校驗。
- AWS CloudTrail - 用來記錄所有訪問你的賬戶 AWS API 調用,包括通過 AWS 管理控制臺,AWS SDKs,命令行工具等進行的 API 調用。還可以識別是哪些用戶和賬戶進行了這些調用,以及觸發調用的源 IP 地址。你還可以通過 API 將 CloudTrail 集成到應用程序中,自動化創建記錄,檢查記錄的狀態并且控制 CloudTrail 日志的開關。
- AWS CloudFormation - 使用 CloudFormation,可以將 AWS 資源的創建、配置和刪除操作,以腳本的形式實現,從而實現自動部署。而且可以輕易實現多個相同環境的快速部署。
- AWS Trusted Advisor - 將你的 AWS 環境與最佳實踐庫對比,并針對成本,系統可靠性,性能,或者安全性方面提出改進建議。
- AWS Health - 提供可能會影響你 AWS 基礎設施的事件的信息,并進行相應的指導來減輕影響。
- AWS Control Tower - 能夠在你的組織和賬戶中管理并強制執行與安全,運行和合規性像個的管控規則。
安全性支柱 Security foundations - Security Pillar (amazon.com)
安全性支柱側重于保護信息和系統。關鍵主題包括:數據保密和完整性、管理用戶權限以及建立檢測安全事件的控制措施。
在云領域,有很多原則可幫助您提高工作負載的安全性:
- 健壯的身份驗證體系: 實施最小權限原則,并通過對每一次與 AWS 資源之間的交互進行適當授權來強制執行職責分離。集中進行身份管理,并努力消除對長期靜態憑證的依賴。
- 保持可追溯性: 實時監控和審計對環境執行的操作和更改并發送警報。為系統集成日志和指標收集功能,以自動調查并采取措施。
- 在所有層面應用安全措施: 利用多種安全控制措施實現深度防御。應用到所有層面(例如網絡邊緣、VPC、負載均衡、每個實例和計算服務、操作系統、應用程序和代碼)。
- 自動實施安全最佳實踐: 借助基于軟件的自動化安全機制,您能夠以更為快速且更具成本效益的方式實現安全擴展。創建安全架構,包括實施可在版本控制模板中以代碼形式定義和管理的控制措施。
- 保護動態數據和靜態數據:將您的數據按敏感程度進行分類,并采用加密、令牌和訪問控制等機制(如適用)。
- 限制對數據的訪問: 使用相關機制和工具來減少和消除直接訪問或人工處理數據的需求。這樣可以降低處理敏感數據時數據處理不當、被修改以及人為錯誤的風險。
- 做好應對安全性事件的準備: 制定符合您組織要求的事件管理和調查策略和流程,做好應對事件的準備工作。開展事件響應模擬演練并使用具有自動化功能的工具來提高檢測、調查和恢復的速度。
可靠性支柱 設計原則 - 可靠性支柱 (amazon.com)
可靠性支柱側重于執行預期職能的工作負載,以及如何從故障快速恢復以滿足需求。關鍵主題包括:分布式系統設計、恢復計劃以及適應變化的要求。
在云中,有許多原則可幫助您提高可靠性。在討論最佳實踐時,請記住以下幾點:
- 自動從故障中恢復:通過監控工作負載的關鍵性能指標(KPI),您可以在指標超過閾值時觸發自動化響應機制。這些 KPI 應該是對業務價值(而不是服務運營的技術方面)的一種度量。這包括自動發送故障通知和跟蹤故障,以及啟動解決或修復故障的自動恢復流程。借助更高級的自動化功能,您可以在故障發生之前預測和修復故障。
- 測試恢復過程:在本地環境中,經常會通過執行測試來證明工作負載能夠在特定場景中正常運作。通常不會利用測試來驗證恢復策略。在云中,您可以測試工作負載的故障情況,并驗證您的恢復程序。您可以采用自動化方式來模擬不同的故障,也可以重新建立之前導致故障的場景。此方式可以在實際的故障發生以前揭示您可以測試與修復的故障路徑,從而降低風險。
- 橫向擴展以提高聚合工作負載的可用性:使用多個小型資源取代一個大型資源,以降低單個故障對整個工作負載的影響。跨多個較小的資源分配請求,以確保它們不共用常見故障點。
- 無需預估容量:本地工作負載出現故障的常見原因是資源飽和,即對工作負載的需求超過該工作負載的容量(這通常是拒絕服務攻擊的目標)。在云中,您可以監控需求和工作負載利用率,并自動添加或刪除資源,以保持最佳水平來滿足需求,而不會出現超額預置或預置不足的問題。雖然還有很多限制,但有些限額是可控的,其他限額也可以管理(請參閱“ 管理服務限額和限制)。
- 通過自動化來管理變更:使用自動化方式對基礎設施進行變更。需要管理的變更包括,對自動化的變更,可對其進行跟蹤與審查。
性能效率支柱 Design principles - Performance Efficiency Pillar (amazon.com)
性能效率支柱側重于有序流暢分配 IT 和計算資源。關鍵主題包括:選擇根據工作負載要求優化的資源類型和大小、監測性能以及隨著業務需求發展維持效率。
以下這些設計原則可幫助您在云中實現并維護高效工作負載。
- 普及先進技術: 通過將復雜的任務委派給云供應商,降低您的團隊實施高級技術的難度。與要求您的 IT 團隊學習有關托管和運行新技術的知識相比,考慮將新技術作為服務使用是一種更好的選擇。例如,NoSQL 數據庫、媒體轉碼和機器學習都是需要專業知識才能使用的技術。在云中,這些技術會轉變為團隊可以使用的服務,讓團隊能夠專注于產品開發,而不是資源預置和管理。
- 數分鐘內實現全球化部署: 您可以在全球多個 AWS 區域中部署工作負載,從而以最低的成本為客戶提供更低的延遲和更好的體驗。
- 使用無服務器架構: 借助無服務器架構,您無需運行和維護物理服務器即可執行傳統計算活動。例如,無服務器存儲服務可以充當靜態網站(從而無需再使用 Web 服務器),事件服務則可以實現代碼托管。這不僅能夠消除管理物理服務器產生的運行負擔,還可以借由以云規模運行的托管服務來降低業務成本。
- 提升試驗頻率: 利用虛擬和可自動化的資源,您可以快速利用各種類型的實例、存儲或配置執行對比測試。
- 考慮軟硬件協同編程: 使用最符合您目標的技術方法。例如,在為工作負載選擇數據庫或存儲時考慮數據訪問模式。
成本優化支柱 Design principles - Cost Optimization Pillar (amazon.com)
成本優化支柱側重于避免不必要的成本。關鍵主題包括:了解長時間支出和控制資金分配,選擇合適類型和數量的資源,縮放以滿足業務需求而不過度開支。
請考慮以下成本優化設計原則:
踐行云財務管理 為獲得財務上的成功并加速在云中實現商業價值,必須投資云財務管理。您的組織必須投入必要的時間和資源增強自身在這個新的技術和使用管理領域中的能力。與安全或運營能力類似,您的組織需要通過知識積累、計劃、資源和流程來增強自身能力,從而成為一家具有成本效益的組織。
采用消費模型: 僅為所用的計算資源付費,并可根據業務需求增加或減少使用量。例如,開發和測試環境通常只需要在每個工作日運行八個小時。您可以在不需要的時候停用這些資源,這樣有可能節省 75% 的成本(40 小時對比 168 小時)。
衡量整體效率: 衡量工作負載的業務產出及其交付成本。使用此數據了解您通過提高產出、增加功能和降低成本獲得的收益。
不再將資金投入到無差別的繁重任務上:AWS 會負責繁重的數據中心運維任務,例如安裝、布置和運行服務器。它還消除了使用托管服務管理操作系統和應用程序的運營負擔。因此,您可以集中精力處理客戶和業務項目而非 IT 基礎設施。
分析并劃分支出屬性: 使用云,您可以更輕松地準確了解工作負載的成本和使用量,從而將 IT 成本透明地歸屬到收入來源和各個工作負載擁有者。這有助于衡量投資回報率 (ROI),并讓工作負載擁有者能夠據此優化資源和降低成本。
可持續性支柱 Design principles for sustainability in the cloud - Sustainability Pillar (amazon.com)
可持續性支柱側重于減少運行的云工作負載對環境的影響。關鍵主題包括:可持續性責任共擔模式,了解影響,最大化利用率以減少所需的資源并減少下游的影響。
在構建云工作負載時應用這些設計原則,可以最大限度地提高可持續性,并將影響降至最低。
- 了解您的影響: 衡量您的云工作負載的影響并為您的工作負載的未來影響建模。包括所有影響來源,例如客戶使用您的產品所產生的影響,以及產品最終淘汰和停用所產生的影響。通過查看每個工作單元所需的資源和排放量,將生產性輸出與云工作負載的總體影響進行比較。使用這些數據來建立關鍵績效指標(KPI),評估在降低影響的同時提高生產力的方法,并估計提議的更改隨時間的推移所產生的影響。
- 設定可持續性目標: 對于每個云工作負載,建立長期可持續性目標,例如減少每個事務所需的計算和存儲資源。針對現有工作負載的可持續性改進的投資回報進行建模,并為負責人提供投資于可持續性目標所需的資源。規劃增長并構建您的工作負載,以便增長可降低影響強度(以適當的單位衡量,例如每用戶或每事務)。目標可幫助您支持您的企業或組織更廣泛的可持續發展目標、識別回歸并確定潛在改進領域的優先級。
- 實現利用率最大化: 適當調整工作負載規模并實施高效設計,以確保高利用率并最大限度地提高底層硬件的能源效率。由于每臺主機的基準功耗,兩臺以 30% 利用率運行的主機的效率低于一臺以 60% 利用率運行的主機。同時,消除或盡可能減少空閑資源、處理和存儲,以減少支持工作負載所需的總能源。
- 預測并采用更高效的新硬件和軟件產品/服務: 支持您的合作伙伴和供應商進行上游改進,以幫助您減少云工作負載的影響。持續監控和評估更高效的新硬件和軟件產品。設計靈活性以允許快速采用高效的新技術。
- 使用托管服務: 在龐大的客戶群中共享服務有助于更充分地利用資源,從而減少支持云工作負載所需的基礎設施數量。例如,客戶可以通過將工作負載遷移到 AWS Cloud 并采用托管服務(例如,用于無服務器容器的 AWS Fargate,AWS 在其中大規模運行并負責其高效運行)來分散電力和網絡等常見數據中心組件的影響。使用有助于將影響降至最低的托管服務,例如使用 Amazon S3 生命周期配置將不經常訪問的數據自動移動到冷存儲,或使用 Amazon EC2 Auto Scaling 來調整容量以滿足需求。
- 減少云工作負載的下游影響: 減少使用您的服務所需的能源或資源量。減少或消除客戶為了使用您的服務而升級其設備的需求。使用設備場進行測試以了解預期影響,并對客戶進行測試以了解使用您服務的實際影響