8 ngày học AWS AppMesh

Ngày 1: Khởi động với App Mesh và các khái niệm nền tảng

  • Sáng:

    • Giới thiệu về AWS App Mesh: Tại sao cần App Mesh, lợi ích, và kiến trúc tổng quan.

    • Làm quen với các khái niệm chính: Meshes, Virtual Services, Virtual Nodes, Virtual Routers.

    • Thực hành: Tạo một mesh đơn giản trên AWS Console và khám phá các tùy chọn cấu hình.

  • Chiều:

    • Tìm hiểu về Virtual Gateways và Gateway Routes: Cách chúng điều hướng traffic từ bên ngoài vào mesh.

    • Khám phá Envoy Proxy: Vai trò của Envoy trong App Mesh và cách cấu hình cơ bản.

    • Thực hành: Thêm một virtual gateway vào mesh của bạn và định tuyến traffic đến một virtual service.

  • Bài tập:

    1. Tạo một virtual service mới và định tuyến traffic đến một virtual node khác.

    2. Cấu hình Envoy để thêm một header tùy chỉnh vào các request.

    3. Sử dụng AWS CLI để liệt kê tất cả các resources trong mesh của bạn.

Ngày 2: Triển khai App Mesh với các nền tảng khác nhau

  • Sáng:

    • App Mesh và Amazon ECS: Tích hợp App Mesh vào các ứng dụng container chạy trên ECS.

    • App Mesh và Kubernetes: Sử dụng App Mesh Controller để quản lý các resources trong Kubernetes.

    • Thực hành: Triển khai một ứng dụng mẫu trên ECS và tích hợp nó với App Mesh.

  • Chiều:

    • App Mesh và Amazon EC2: Sử dụng Envoy làm sidecar proxy cho các ứng dụng chạy trên EC2.

    • Tìm hiểu về App Mesh Roadmap: Các tính năng mới và hướng phát triển của App Mesh.

    • Thực hành: Cài đặt Envoy trên một instance EC2 và cấu hình nó để giao tiếp với App Mesh.

  • Bài tập:

    1. Triển khai một ứng dụng mẫu trên Kubernetes và tích hợp nó với App Mesh.

    2. Tạo một canary deployment cho ứng dụng trên ECS sử dụng App Mesh.

    3. Sử dụng AWS CloudFormation để triển khai một mesh hoàn chỉnh với các resources.

Ngày 3: Giám sát và khắc phục sự cố

  • Sáng:

    • Giám sát với Logging: Cách cấu hình logging cho Envoy và App Mesh.

    • Sử dụng Envoy metrics: Hiểu các metrics quan trọng để đánh giá hiệu năng.

    • Thực hành: Xem logs của Envoy và App Mesh trên AWS Console.

  • Chiều:

    • Tracing với X-Ray: Theo dõi các request qua các services trong mesh.

    • Sử dụng AWS CloudWatch để thu thập và phân tích metrics.

    • Thực hành: Cấu hình X-Ray để theo dõi các request trong ứng dụng của bạn.

  • Bài tập:

    1. Tạo một dashboard trên CloudWatch để hiển thị các metrics quan trọng của ứng dụng.

    2. Thiết lập một alert để thông báo khi có lỗi xảy ra trong ứng dụng.

    3. Sử dụng logs và metrics để phân tích và giải quyết một vấn đề về hiệu năng.

Ngày 4: Bảo mật ứng dụng với App Mesh

  • Sáng:

    • TLS (Transport Layer Security): Mã hóa giao tiếp giữa các services trong mesh.

    • Mutual TLS (mTLS): Xác thực hai chiều giữa các services.

    • Thực hành: Cấu hình TLS cho một virtual gateway.

  • Chiều:

    • IAM (Identity and Access Management): Kiểm soát truy cập vào các resources của App Mesh.

    • Envoy Proxy authorization: Sử dụng các chính sách để kiểm soát truy cập đến các services.

    • Thực hành: Tạo một IAM policy để giới hạn truy cập vào một virtual node.

  • Bài tập:

    1. Cấu hình mTLS cho giao tiếp giữa hai virtual nodes.

    2. Sử dụng Envoy Proxy authorization để yêu cầu xác thực cho một virtual service.

    3. Thiết lập một cảnh báo khi có truy cập trái phép vào một resource của App Mesh.

Ngày 5: Nâng cao kiến thức về App Mesh

  • Sáng:

    • Các best practices khi sử dụng App Mesh: Thiết kế mesh hiệu quả, tối ưu hóa cấu hình, và xử lý các vấn đề thường gặp.

    • Làm việc với shared meshes: Chia sẻ resources giữa các accounts và ứng dụng.

    • Thực hành: Áp dụng các best practices vào một ứng dụng mẫu.

  • Chiều:

    • Tích hợp với các dịch vụ AWS khác: Sử dụng App Mesh cùng với AWS CloudFormation, AWS Outposts, và các dịch vụ khác.

    • Tìm hiểu về App Mesh on AWS Outposts: Triển khai và quản lý App Mesh trên môi trường hybrid.

    • Thực hành: Tạo một template CloudFormation để triển khai một ứng dụng với App Mesh.

  • Bài tập:

    1. Thiết kế một kiến trúc mesh phức tạp với nhiều virtual services và virtual nodes.

    2. Chia sẻ một mesh giữa hai accounts AWS khác nhau.

    3. Triển khai một ứng dụng mẫu trên AWS Outposts và tích hợp nó với App Mesh.

Ngày 6: App Mesh và Kubernetes chuyên sâu

  • Sáng:

    • App Mesh Controller cho Kubernetes: Cài đặt và cấu hình controller.

    • Quản lý vòng đời của các resources App Mesh trong Kubernetes.

    • Thực hành: Cài đặt App Mesh Controller trên một cluster Kubernetes.

  • Chiều:

    • Sử dụng CRDs (Custom Resource Definitions) để định nghĩa các resources App Mesh.

    • Tích hợp App Mesh với các ingress controller phổ biến như NGINX Ingress Controller.

    • Thực hành: Tạo một CRD cho một virtual node và triển khai nó trên Kubernetes.

  • Bài tập:

    1. Tạo một canary deployment cho một ứng dụng Kubernetes sử dụng App Mesh.

    2. Tích hợp App Mesh với NGINX Ingress Controller để điều hướng traffic từ bên ngoài vào cluster.

    3. Sử dụng Helm để triển khai một ứng dụng mẫu với App Mesh trên Kubernetes.

Ngày 7: Đảm bảo tính sẵn sàng và khả năng phục hồi

  • Sáng:

    • Interface VPC endpoints (AWS PrivateLink): Truy cập App Mesh một cách an toàn và riêng tư.

    • Resilience: Thiết kế ứng dụng và mesh để chịu được lỗi và đảm bảo tính sẵn sàng cao.

    • Thực hành: Tạo một VPC endpoint cho App Mesh.

  • Chiều:

    • Phân tích cấu hình và lỗ hổng bảo mật: Sử dụng các công cụ để kiểm tra và đánh giá tính bảo mật của ứng dụng và mesh.

    • Thực hiện các bài kiểm tra xâm nhập để phát hiện các lỗ hổng tiềm ẩn.

    • Thực hành: Sử dụng một công cụ phân tích cấu hình để kiểm tra một ứng dụng mẫu.

  • Bài tập:

    1. Thiết kế một chiến lược resilience cho một ứng dụng quan trọng sử dụng App Mesh.

    2. Thực hiện một bài kiểm tra xâm nhập đơn giản trên một ứng dụng mẫu.

    3. Đề xuất các biện pháp khắc phục cho các lỗ hổng bảo mật được phát hiện.

Ngày 8: Xây dựng hệ thống thương mại điện tử với App Mesh

Dự án: Xây dựng một hệ thống thương mại điện tử đơn giản gồm các microservices sau:

  • Product Catalog Service: Quản lý thông tin sản phẩm (tên, mô tả, giá, hình ảnh).

  • Inventory Service: Quản lý số lượng sản phẩm trong kho.

  • Order Service: Xử lý đơn đặt hàng.

  • Payment Service: Xử lý thanh toán.

  • Recommendation Service: Đề xuất sản phẩm liên quan.

Sáng:

  • Task 1: Thiết kế kiến trúc hệ thống:

    • Xác định các microservices và chức năng của chúng.

    • Thiết kế mô hình dữ liệu cho mỗi microservice.

    • Xác định các giao tiếp giữa các microservices.

    • Vẽ sơ đồ kiến trúc hệ thống.

  • Task 2: Triển khai các microservices:

    • Sử dụng ngôn ngữ lập trình và framework bạn quen thuộc (ví dụ: Node.js, Python, Spring Boot).

    • Tạo các endpoint REST API cho mỗi microservice.

    • Kết nối các microservices với cơ sở dữ liệu (ví dụ: MongoDB, PostgreSQL).

Chiều:

  • Task 3: Tích hợp App Mesh:

    • Tạo một mesh trên AWS App Mesh.

    • Tạo các virtual node cho mỗi microservice.

    • Định tuyến traffic giữa các microservices sử dụng virtual router và route.

    • Cấu hình Envoy proxy cho mỗi microservice.

  • Task 4: Kiểm thử và tối ưu hóa:

    • Thực hiện các bài kiểm tra để đảm bảo hệ thống hoạt động đúng.

    • Giám sát hiệu năng của hệ thống sử dụng CloudWatch.

    • Tối ưu hóa cấu hình App Mesh để cải thiện hiệu năng và độ tin cậy.

  • Task 5 (Không bắt buộc):

    • Cấu hình TLS để bảo mật giao tiếp giữa các microservices.

    • Thêm các tính năng như xác thực, phân quyền, logging, và tracing.

Trình bày kết quả:

  • Chuẩn bị một bài thuyết trình ngắn để giới thiệu về dự án của bạn.

  • Trình bày kiến trúc hệ thống, cách bạn đã tích hợp App Mesh, và các kết quả kiểm thử.

  • Giải thích các quyết định thiết kế và lựa chọn công nghệ của bạn.