Xin chào các bạn. Lâu lắm rồi mình mới viết bài tiếp. Và chủ đề hôm nay mình muốn chia sẻ là 6 nguyên tắc của AWS Well-Architectured Framework(6 pillars).
AWS Well-Architectured Framework là gì?
Trong quá trình thiết kế và xây dựng hệ thống AWS, để 1 hệ thống chạy hiệu quả thì có nhiều yếu tố. (Ở đây có thể thấy rõ nhất là hệ thống phải chạy được nhưng mà giá cả tốn ít nhất có thể). Giả sử có được 1 hệ thống như thế xong thì không phải nó cứ chạy được mãi mãi như thế. Hệ thống càng phát triển sẽ phát sinh các vấn đề mới. Và càng ngày thì chúng ta càng cần có 1 quy chuẩn nào đó để support chúng ta xây dựng 1 hệ thống.
AWS Well-Architected Framework sẽ giúp bạn có cái nhìn về ưu và nhược điểm của các quyết định bạn đưa ra khi xây dựng hệ thống trên AWS. Bằng cách sử dụng Framework, bạn sẽ biết về các best practice về kiến trúc để thiết kế và vận hành các hệ thống đáng tin cậy, an toàn, hiệu quả và tiết kiệm chi phí trên cloud. Đây sẽ là cách để bạn đối chiếu kiến trúc của mình với các best practice, từ đó đưa ra cải thiện cho hệ thống. Đây là 1 quá trình liên quan đến việc cải thiện hệ thống liên tục theo thời gian chứ không phải là 1 phương pháp để giám sát hệ thống.
6 nguyên tắc của AWS Well-Architectured Framework
Với tư cách là 1 framework gồm các quy tắc để phát triển hệ thống AWS tốt nhất, bản thân chính AWS Well-Architectured Framework cũng phát triển và tự hoàn thiện chính nó. Các bạn có thể tự tra thêm trên mạng để thấy là có rất nhiều tài liệu nói về 5 pillars. Còn hiện tại thời điểm của bài viết, con số ấy là 6: Operational excellence, Security, Reliability, Performance efficiency, Cost optimization và Sustainability.
Operational excellence
Nguyên tắc đầu tiên của Framework, nó bao gồm khả năng hỗ trợ phát triển và chạy khối lượng công việc một cách hiệu quả, đồng thời hiểu rõ hơn về hoạt động và liên tục cải tiến các quy trình và thủ tục để mang lại giá trị kinh doanh.
Triết lý thiết kế:
- Điều hành các tác vụ với code : Hạn chế lỗi do con người và tăng tính ổn định cho phản hồi tới event hệ thống.
- Tạo các thay đổi nhỏ, thường xuyên và có thể đảo ngược lại: Trong trường hợp thay đổi thất bại thì ảnh hưởng hệ thống không lớn và quá trình đảo ngược không gặp nhiều vấn đề.
- Thường xuyên cải tiến quy trình: Khi workload của hệ thống tăng lên thì quy trình cũng phải thay đổi.
- Phòng chống lỗi hệ thống: Kiểm thử hệ thống trong trường hợp lỗi, từ đó phát hiện ra các thành phần gây lỗi tiềm tàng.
- Nghiên cứu lại các tình huống lỗi: Nghiên cứu lại tình huống lỗi của hệ thống để rút kinh nghiệm và chia sẻ lại cho team.
Security
Hệ thống nào thì cũng cần quan tâm security thôi. Và AWS Well-Architectured có các triết lý design sau cho Security:
- Thực hiện giới hạn quyền thực thi: Người dùng quyền hạn tới đâu chỉ cung cấp tới đó, không cung cấp thừa.
- Cho phép truy vết: Giám sát, cảnh báo và kiểm tra các thao tác.
- Áp dụng bảo mật ở tất cả các lớp: Sử dụng nhiều biện pháp kiểm soát bảo mật.
- Tự động hóa các biện pháp bảo mật tốt nhất: Cơ chế bảo mật tự động để cải thiện tính bảo mật và mở rộng quy mô nhanh hơn và tiết kiệm chi phí hơn.
- Bảo vệ dữ liệu trong quá trình truyền và khi lưu trữ: Phân tách dữ liệu thành các mức độ nhạy cảm và sử dụng mã hóa, mã thông báo và kiểm soát truy cập để bảo vệ dữ liệu.
- Hạn chế quyền truy cập dữ liệu: Loại bỏ nhu cầu truy cập trực tiếp hoặc xử lý dữ liệu thủ công.
- Chuẩn bị cho các sự kiện bảo mật: Tạo chính sách điều tra và quản lý sự cố.
Reliability
Thế hiện tính tin cậy của hệ thống, ít gặp sự cố trong quá trình hoạt động. Việc này bao gồm cả quá trình kiểm thử và vận hành.
Các triết lý design của nguyên tắc này:
- Tự động khôi phục sau tự cố: Dùng key performance indicators (KPIs) để tự động kích hoạt các xử lý khi hệ thống gặp vấn đề.
- Thủ tục test recovery: Tự động hóa tối đa để mô phỏng các kịch bản sự cố và thủ tục test recovery.
- Scale ngang để tăng tính sẵn có cho workload: Chia request ra các phần nhỏ để giảm thiểu sự cố (ví dụ như dùng Elastic Load Balancer).
- Ngừng cố gắng đoán dung lượng: Dùng Auto Scaling để thêm hay loại bỏ tài nguyên.
- Thay đổi trên hệ thống bằng automation: Thay đổi trong hệ thống nên được sử dụng bằng automation.
Performance efficiency
Bao gồm khả năng sử dụng tài nguyên điện toán một cách hiệu quả trong khi vẫn duy trì hiệu suất với khối lượng công việc thay đổi. Nó yêu cầu giám sát liên tục để đảm bảo rằng bạn biết khối lượng công việc thay đổi như thế nào. Những sự đánh đổi nào phải được thực hiện trong khi kiến trúc để cải thiện hiệu quả hoạt động?
Triết lý design:
- Cởi mở trong các vấn đề công nghệ phức tạp: Để các thao tác khó cho nhà cung cấp dịch vụ cloud.
- Go global trong vài phút: Deploy ở nhiều AWS Regions.
- Dùng các kiến trúc serverless: loại bỏ việc maintain các server truyền thống và các công việc tính toán trên server.
- Thử nghiệm thường xuyên: Thường xuyên làm các tác vụ so sánh với các instance, storage hay cài đặt khác nhau.
- Tính tương thích công nghệ: Dùng loại công nghệ tương thích gần nhất với hệ thống của bạn.
Cost optimization
Tất nhiên như nói ở đầu rồi: Ai cũng muốn hàng tốt nhưng giá rẻ. Chúng ta sẽ cần 1 hệ thống đảm bảo chạy tốt công việc của chúng ta nhưng giá rẻ nhất có thể.
Triết lý design:
- Dùng cloud financial management: Dùng Cloud Financial Management /Cost Optimization để có 1 tổ chức hệ thống được tối ưu hóa về giá hơn.
- Thiết lập mô hình ngân sách: Chỉ trả tiền cho dịch vụ mà bạn dùng, tăng giảm tài nguyên tùy theo nhu cầu kinh doanh của bạn.
- Đo đạc hiệu quả chi phí tổng: Đo đạc để nắm được lợi ích của việc output tăng lên và cost giảm đi.
- Ngừng chi tiêu cho các hoạt động hạ tầng phức tạp: AWS quản lý các hoạt động data center như racking, stacking, và powering server.
- Phân tích và phân bổ chi tiêu: Xác định chính xác việc sử dụng và chi phí của các hệ thống. Điều này cung cấp sự phân bổ rõ ràng về chi phí IT cho từng chủ sở hữu khối lượng công việc.
Sustainability
Và cuối cùng là yếu tố ít tính kỹ thuật nhất: Tính bền vững. Yếu tố này là thể hiện tác động của doanh nghiệp đối với môi trường, kinh tế và xã hội, gồm:
Nhận ra tầm ảnh hưởng- của bạn
- Đặt mục tiêu cho sự bền vững lâu dài.
- Tăng cường sử dụng
- Mong đợi và triển khai các dịch vụ phần cứng và phần mềm mới, hiệu quả hơn.
- Sử dụng các dịch vụ được quản lý.
- Giảm hậu quả của khối lượng công việc trên đám mây của bạn.
Kết
Well, mình đã cố gắng tóm tắt gọn cho các bạn để các bạn có cái nhìn tổng quan. Còn chi tiết của Framework là 1 bộ tài liệu dài 573 trang mà mình đính kèm ở bên dưới. Nếu các bạn cần hiểu thêm phần nào thì hãy dùng các phương tiện