The 6 Pillars of the AWS Well-Architected Framework
9th Feb 2023Creating a software system is a lot like constructing a building. If the foundation is not solid, structural problems can undermine the integrity and function of the building.
When building technology solutions on Amazon Web Services (AWS), if you neglect the six pillars of operational excellence, security, reliability, performance efficiency, cost optimization, and sustainability, it can become challenging to build a system that delivers on your expectations and requirements.
Incorporating these pillars into your architecture helps produce stable and efficient systems. This allows you to focus on the other aspects of design, such as functional requirements.
The AWS Well-Architected Framework helps cloud architects build the most secure, high-performing, resilient, and efficient infrastructure possible for their applications. The framework provides a consistent approach for customers and AWS Partners to evaluate architectures, and provides guidance to implement designs that scale with your application needs over time.
In this post, we provide an overview of the Well-Architected Framework’s six pillars and explore design principles and best practices. You can find more details—including definitions, FAQs, and resources—in each pillar’s whitepaper we link to below.
1. Operational Excellence
The Operational Excellence pillar includes the ability to support development and run workloads effectively, gain insight into their operation, and continuously improve supporting processes and procedures to delivery business value. You can find prescriptive guidance on implementation in the Operational Excellence Pillar whitepaper.
Design Principles
There are five design principles for operational excellence in the cloud:
- Perform operations as code
- Make frequent, small, reversible changes
- Refine operations procedures frequently
- Anticipate failure
- Learn from all operational failures
Best Practices
Operations teams need to understand their business and customer needs so they can support business outcomes. Ops creates and uses procedures to respond to operational events, and validates their effectiveness to support business needs. Ops also collects metrics that are used to measure the achievement of desired business outcomes.
Everything continues to change—your business context, business priorities, and customer needs. It’s important to design operations to support evolution over time in response to change, and to incorporate lessons learned through their performance.
2. Security
The Security pillar includes the ability to protect data, systems, and assets to take advantage of cloud technologies to improve your security. You can find prescriptive guidance on implementation in the Security Pillar whitepaper.
Design Principles
There are seven design principles for security in the cloud:
- Implement a strong identity foundation
- Enable traceability
- Apply security at all layers
- Automate security best practices
- Protect data in transit and at rest
- Keep people away from data
- Prepare for security events
Best Practices
Before you architect any workload, you need to put in place practices that influence security. You’ll want to control who can do what. In addition, you want to be able to identify security incidents, protect your systems and services, and maintain the confidentiality and integrity of data through data protection.
You should have a well-defined and practiced process for responding to security incidents. These tools and techniques are important because they support objectives such as preventing financial loss or complying with regulatory obligations.
The AWS Shared Responsibility Model enables organizations that adopt the cloud to achieve their security and compliance goals. Because AWS physically secures the infrastructure that supports our cloud services, as an AWS customer you can focus on using services to accomplish your goals. The AWS Cloud also provides greater access to security data and an automated approach to responding to security events.
3. Reliability
The Reliability pillar encompasses the ability of a workload to perform its intended function correctly and consistently when it’s expected to. This includes the ability to operate and test the workload through its total lifecycle. You can find prescriptive guidance on implementation in the Reliability Pillar whitepaper.
Design Principles
There are five design principles for reliability in the cloud:
- Automatically recover from failure
- Test recovery procedures
- Scale horizontally to increase aggregate workload availability
- Stop guessing capacity
- Manage change in automation
Best Practices
Before building any system, foundational requirements that influence reliability should be in place. For example, you must have sufficient network bandwidth to your data center. These requirements are sometimes neglected (because they are beyond a single project’s scope). With AWS, however, most of the foundational requirements are already incorporated or can be addressed as needed.
The cloud is designed to be nearly limitless, so it’s the responsibility of AWS to satisfy the requirement for sufficient networking and compute capacity, leaving you free to change resource size and allocations on demand.
A reliable workload starts with upfront design decisions for both software and infrastructure. Your architecture choices will impact your workload behavior across all six AWS Well-Architected pillars. For reliability, there are specific patterns you must follow, such as loosely coupled dependencies, graceful degradation, and limiting retries.
Changes to your workload or its environment must be anticipated and accommodated to achieve reliable operation of the workload. Changes include those imposed on your workload, like a spikes in demand, as well as those from within such as feature deployments and security patches.
Low-level hardware component failures are something to be dealt with every day in an on-premises data center. In the cloud, however, these are often abstracted away. Regardless of your cloud provider, there is the potential for failures to impact your workload. You must therefore take steps to implement resiliency in your workload, such as fault isolation, automated failover to healthy resources, and a disaster recovery strategy.
4. Performance Efficiency
The Performance Efficiency pillar includes the ability to use computing resources efficiently to meet system requirements, and to maintain that efficiency as demand changes and technologies evolve. You can find prescriptive guidance on implementation in the Performance Efficiency Pillar whitepaper.
Design Principles
There are five design principles for performance efficiency in the cloud:
- Democratize advanced technologies
- Go global in minutes
- Use serverless architectures
- Experiment more often
- Consider mechanical sympathy
Best Practices
Take a data-driven approach to building a high-performance architecture. Gather data on all aspects of the architecture, from the high-level design to the selection and configuration of resource types.
Reviewing your choices on a regular basis ensures you are taking advantage of the continually evolving AWS Cloud. Monitoring ensures you are aware of any deviance from expected performance. Make trade-offs in your architecture to improve performance, such as using compression or caching, or relaxing consistency requirements
The optimal solution for a particular workload varies, and solutions often combine multiple approaches. AWS Well-Architected workloads use multiple solutions and enable different features to improve performance
5. Cost Optimization
The Cost Optimization pillar includes the ability to run systems to deliver business value at the lowest price point. You can find prescriptive guidance on implementation in the Cost Optimization Pillar whitepaper.
Design Principles
There are five design principles for cost optimization in the cloud:
- Implement cloud financial management
- Adopt a consumption model
- Measure overall efficiency
- Stop spending money on undifferentiated heavy lifting
- Analyze and attribute expenditure
Best Practices
As with the other pillars, there are trade-offs to consider. For example, do you want to optimize for speed to market or for cost? In some cases, it’s best to optimize for speed—going to market quickly, shipping new features, or simply meeting a deadline—rather than investing in up-front cost optimization.
Design decisions are sometimes directed by haste rather than data, and as the temptation always exists to overcompensate rather than spend time benchmarking for the most cost-optimal deployment. This might lead to over-provisioned and under-optimized deployments.
Using the appropriate services, resources, and configurations for your workloads is key to cost savings
6. Sustainability
The discipline of sustainability addresses the long-term environmental, economic, and societal impact of your business activities. You can find prescriptive guidance on implementation in the Sustainability Pillar whitepaper.
Design Principles
There are six design principles for sustainability in the cloud:
- Understand your impact
- Establish sustainability goals
- Maximize utilization
- Anticipate and adopt new, more efficient hardware and software offerings
- Use managed services
- Reduce the downstream impact of your cloud workloads
Best Practices
Choose AWS Regions where you will implement workloads based on your business requirements and sustainability goals.
User behavior patterns can help you identify improvements to meet sustainability goals. For example, scale infrastructure down when not needed, position resources to limit the network required for users to consume them, and remove unused assets.
>> Tập tành SET UP CLUSTER K8S KUBESPRAY
>> Cloud Vs On Premise: Cái nào tốt nhất cho doanh nghiệp của bạn?
Implement software and architecture patterns to perform load smoothing and maintain consistent high utilization of deployed resources. Understand the performance of your workload components, and optimize the components that consume the most resources.
Analyze data patterns to implement data management practices that reduce the provisioned storage required to support your workload. Use lifecycle capabilities to move data to more efficient, less performant storage when requirements decrease, and delete data that’s no longer required.
Analyze hardware patterns to identify opportunities that reduce workload sustainability impacts by minimizing the amount of hardware needed to provision and deploy. Select the most efficient hardware for your individual workload.
In your development and deployment process, identify opportunities to reduce your sustainability impact by making changes, such as updating systems to gain performance efficiencies and manage sustainability impacts. Use automation to manage the lifecycle of your development and test environments, and use managed device farms for testing.
- Tạo dựng một hệ thống phần mềm rất giống với việc xây dựng một tòa nhà. Nếu nền tảng không vững chắc, các vấn đề cấu trúc có thể làm suy yếu tính toàn vẹn và chức năng của tòa nhà đó.
- Khi xây dựng các giải pháp công nghệ trên Amazon Web Services (AWS), bạn không nên bỏ qua 5 pillars (“trụ cột”) chính trong khung kiến trúc của AWS (AWS Well-Architected), đó là:
- Operational excellence (hoạt động xuất sắc)
- Security (tính bảo mật)
- Reliability (tính ổn định)
- Performance efficiency (tính hiệu quả)
- Cost optimization (tối ưu hóa chi phí).
- Việc xây dựng một hệ thống đáp ứng mong đợi và yêu cầu của từng cá nhân, công ty hay tổ chức đều là một thách thức. Nếu biết kết hợp những “trụ cột” này vào kiến trúc của bạn, sẽ tạo ra các hệ thống ổn định và hiệu quả. Điều này cho phép bạn tập trung vào các khía cạnh khác của thiết kế, chẳng hạn như các yêu cầu chức năng.
- AWS Well-Architected Framework giúp các kiến trúc sư cloud xây dựng cơ sở hạ tầng an toàn, hiệu suất cao, linh hoạt và hiệu quả nhất có thể cho các ứng dụng của họ. Framework này cũng cung cấp cách hướng dẫn để triển khai các thiết kế mở rộng tùy vào nhu cầu ứng dụng của bạn theo thời gian.
Operational Excellence
Cột trụ vận hành xuất sắc tập trung vào việc chạy và theo dõi các hệ thống để mang lại giá trị cho doanh nghiệp và liên tục cải tiến các quy trình và thủ tục. Các chủ đề chính bao gồm quản lý và tự động hóa những thay đổi, phản hồi sự kiện và xác định tiêu chuẩn để quản lý thành công các hoạt động hàng ngày.
Design Principles
Có 6 nguyên tắc để mọi hoạt động trong cloud có thể vận hành xuất sắc:
- 1. Perform operations as code:
Trong Cloud, chúng ta có thể áp dụng cùng một khung kỹ thuật sử dụng cho application code lên toàn bộ môi trường của mình. Bạn có thể xác định toàn bộ khối lượng công việc của mình (bao gồm ứng dụng, cơ sở hạ tầng, v.v.) dưới dạng code và cập nhật nó bằng code. Nhờ đó các quy trình hoạt động được kịch bản hóa, đồng thời quá trình đó cũng được tự động hóa bằng cách kích hoạt chúng để đáp ứng các sự kiện (events). Lợi ích đem lại từ việc thực hiện các hoạt động dưới dạng code là hạn chế lỗi của con người và cho phép phản hồi nhất quán cho các sự kiện
- 2. Annotate documentation
Trong môi trường on-premises, tài liệu thường được tạo thủ công bằng tay, được mọi người sử dụng và khó có thể đồng bộ được với tốc độ thay đổi. Trong Cloud, bạn có thể tự động hóa việc tạo tài liệu có chú thích sau mỗi lần xây dựng (hoặc tự động chú thích tài liệu thủ công). Annotate documentation có thể được sử dụng bởi cả con người và các hệ thống.
- 3. Make frequent, small, reversible changes
Thiết kế khối lượng công việc để cho phép từng thành phần đều được cập nhật thường xuyên. Thực hiện thay đổi theo từng bước nhỏ có thể quay ngược lại các bước nếu gặp thất bại (mà giảm thiểu ảnh hưởng đến khách hàng nhất có thể).
- 4. Refine operations procedures frequently
Khi bạn sử dụng các quy trình hoạt động, hãy luôn nghĩ cách để cải thiện chúng. Khi khối lượng công việc gia tăng, quy trình hoạt động cũng cần phát triển một cách thích hợp.
- 5. Anticipate failure
Thực hiện“pre-mortem” exercises nhằm xác định các thất bại tiềm tàng để có thể loại bỏ hoặc giảm thiểu. Kiểm tra các kịch bản thất bại và xác nhận bạn đã hiểu hết các tác động của chúng; kiểm tra cả các quy trình phản hồi để đảm bảo rằng chúng có hiệu quả.
- 6. Learn from all operational failures
Khi thất bại xảy ra, cần rút ra bài học kinh nghiệm và cải thiện hoạt động
Security
Cột trụ bảo mật tập trung vào việc bảo vệ thông tin và hệ thống. Các chủ đề chính bao gồm tính bảo mật và toàn vẹn của dữ liệu, xác định và quản lý ai có thể làm gì nhờ quản lý đặc quyền, bảo vệ hệ thống và thiết lập hoạt động kiểm soát để phát hiện sự kiện bảo mật.
Design Principles
Có 7 nguyên tắc để trong cột trụ bảo mật :
- 1. Implement a strong identity foundation:
Thực hiện nguyên tắc cấp ít đặc quyền nhất và thực thi chia nhỏ nhiệm vụ với ủy quyền phù hợp cho mỗi tương tác tới tài nguyên AWS. Tập trung quản lý đặc quyền và giảm hoặc thậm chí loại bỏ hẳn sự phụ thuộc vào các xác thực dài hạn.
- 2. Enable traceability:
Giám sát, cảnh báo và kiểm tra mọi hành động và thay đổi trong môi trường của bạn trong thời gian thực. Tích hợp nhật ký (logs) và số liệu (metrics) với các hệ thống để tự động phản hồi và đưa ra hành động.
- 3. Apply security at all layers:
Thay vì chỉ tập trung vào bảo vệ một lớp bên ngoài duy nhất, hãy áp dụng phương pháp bảo vệ chuyên sâu. Áp dụng bảo mật cho tất cả các lớp (ví dụ: mạng biên, VPC, mạng con, bộ cân bằng tải, các instance, hệ điều hành và ứng dụng,....).
- 4. Automate security best practices:
Các cơ chế bảo mật dựa trên phần mềm tự động cho phép bạn mở rộng quy mô một cách an toàn, nhanh hơn và tiết kiệm chi phí hơn.
- 5. Protect data in transit and at rest:
Phân loại dữ liệu của bạn thành các mức độ nhạy cảm khác nhau; sử dụng các cơ chế, chẳng hạn như mã hóa, token và kiểm soát truy cập khi thích hợp.
- 6. Keep people away from data:
Tạo các cơ chế và công cụ để giảm hoặc loại bỏ nhu cầu truy cập trực tiếp hoặc xử lý dữ liệu thủ công. Điều này giúp giảm nguy cơ mất mát hoặc bị sửa đổi khi xử lý dữ liệu nhạy cảm.
- 7. Prepare for security events:
Thực hiện mô phỏng phản ứng sự cố; sử dụng các công cụ tự động hóa để tăng tốc độ phát hiện, điều tra và phục hồi hệ thống.
Reliability
Cột trụ độ tin cậy cập trung vào khả năng ngăn chặn và nhanh chóng phục hồi sau sự cố để đáp ứng nhu cầu của doanh nghiệp và khách hàng. Các chủ đề chính bao gồm các yếu tố nền tảng xung quanh vấn đề cài đặt, các yêu cầu xuyên suốt dự án, lập kế hoạch phục hồi và cách chúng tôi xử lý thay đổi.>
Design Principles
Có 5 nguyên tắc để đảm bảo tính tin cậy trong cloud:
- 1. Test recovery procedures:
Trong môi trường on-premises, việc kiểm tra thường được tiến hành để chứng minh hệ thống hoạt động theo một kịch bản cụ thể. Trong cloud, bạn có thể kiểm tra hệ thống của mình bị lỗi như thế nào đồng thời xác thực các quy trình khôi phục của mình. Bạn có thể sử dụng tự động hóa để mô phỏng các thất bại khác nhau hoặc để tạo lại các tình huống dẫn đến thất bại trước đó. Tính năng này cho phép bạn có thể kiểm tra và khắc phục trước một kịch bản thất bại thực tế.
- 2. Automatically recover from failure:
Bằng cách tạo một hệ thống giám sát các chỉ số đánh giá thực hiện công việc (KPI), bạn có thể kích hoạt tự động hóa khi ngưỡng đặt ra bị vi phạm. Các KPI này phải là thước đo giá trị kinh doanh, không phải là khía cạnh kỹ thuật trong hoạt động của dịch vụ. Điều này cho phép tự động thông báo và theo dõi các lỗi xảy ra.
- 3. Scale horizontally to increase aggregate system availability:
Thay thế một tài nguyên lớn bằng nhiều tài nguyên nhỏ để giảm tác động của một lỗi duy nhất lên toàn bộ hệ thống.
- 4. Stop guessing capacity:
Một nguyên nhân phổ biến dẫn đến sập hệ thống là sự bão hòa tài nguyên, xảy ra khi các yêu cầu gửi đến một hệ thống vượt quá khả năng của hệ thống đó (đây thường là mục tiêu của các cuộc tấn công từ chối dịch vụ). Cloud cung cấp tính năng cho phép bạn theo dõi nhu cầu và việc sử dụng hệ thống, Chúng có thể tự động hóa việc thêm hoặc xóa tài nguyên để duy trì mức tối ưu nhằm đáp ứng nhu cầu mà không cần cung cấp quá mức hoặc dưới mức cung cấp.
- 5. Manage change in automation:
Nên thay đổi cơ sở hạ tầng thông qua tự động hóa.
Performance Efficiency
Cột trụ hiệu suất thực hiện tập trung vào việc sử dụng tài nguyên CNTT và điện toán một cách hiệu quả. Các chủ đề chính bao gồm chọn đúng loại và quy mô tài nguyên dựa vào yêu cầu khối lượng công việc, theo dõi hiệu suất và đưa ra quyết định sáng suốt để duy trì hiệu suất khi nhu cầu kinh doanh tăng lên.
Design Principles
Có 5 nguyên tắc để đảm bảo hiệu suất thực thi trong cloud:
- 1. Democratize advanced technologies:
Các công nghệ khó thực hiện có thể trở nên dễ ứng dụng khi sử dụng cloud. Thay vì cần phải học từ đầu một công nghệ mới, bạn có thể đơn giản sử dụng nó như một dịch vụ.
- 2. Go global in minutes:
Dễ dàng triển khai hệ thống của bạn trên nhiều AWS Regions với quy mô toàn thế giới chỉ bằng vài cú nhấp chuột. Điều này cho phép bạn cung cấp độ trễ thấp hơn và trải nghiệm tốt hơn cho khách hàng với chi phí tối thiểu.
- 3. Use serverless architectures:
Trong cloud, các kiến trúc serverless giúp bạn loại bỏ gánh nặng của việc quản lý, bảo trì các máy chủ và cũng có thể giảm chi phí giao dịch vì các dịch vụ được quản lý này hoạt động ở quy mô đám mây.
- 4. Experiment more often:
Với tài nguyên ảo và tự động hóa, bạn có thể nhanh chóng thực hiện kiểm tra so sánh bằng cách sử dụng các loại instance, các hình thức lưu trữ hoặc cấu hình khác nhau.
- 5. Mechanical sympathy:
Sử dụng phương pháp công nghệ phù hợp nhất với nhu cầu và mục đích của bạn.
Cost Optimization
Tối ưu hóa chi phí tập trung vào việc tránh những chi phí không cần thiết. Các chủ đề chính bao gồm hiểu và kiểm soát tiền đang được chi tiêu vào đâu, chọn số loại tài nguyên đúng đắn và phù hợp nhất, phân tích chi tiêu theo thời gian và thay đổi quy mô để đáp ứng nhu cầu kinh doanh mà không chi tiêu quá mức.
Design Principles
Có 5 nguyên tắc để tối ưu hóa chi phí trong cloud:
- 1. Adopt a consumption model:
Chỉ trả tiền cho các tài nguyên mà bạn tiêu thụ; tăng hoặc giảm mức sử dụng tùy thuộc vào yêu cầu kinh doanh.
- 2. Measure overall efficiency:
Tính toán lượng kinh doanh của hệ thống và các chi phí liên quan đến việc cung cấp nó. Sử dụng biện pháp này để nắm rõ lợi nhuận bạn kiếm được từ việc tăng sản lượng và giảm chi phí.
- 3. Stop spending money on data center operations:
AWS thực hiện rất nhiều công việc như hỗ trợ, sắp xếp và cung cấp năng lượng cho các máy chủ, vì vậy bạn có thể tập trung vào khách hàng và các dự án kinh doanh hơn là vào cơ sở hạ tầng CNTT.
- 4. Analyze and attribute expenditure:
Cloud giúp dễ dàng xác định chính xác nhu cầu sử dụng và chi phí phải trả của các hệ thống, từ đó cho phép phân bổ minh bạch chi phí CNTT cho từng luồng doanh thu, cung cấp cho chủ sở hữu hệ thống cơ hội để tối ưu hóa tài nguyên của họ và giảm chi phí.
- 5. Use managed services to reduce cost of ownership:
Vì các dịch vụ được quản lý hoạt động ở quy mô cloud, chúng có thể cung cấp chi phí thấp hơn cho mỗi giao dịch hoặc dịch vụ.
- 9 views
Add new comment