Bản Chất Của GRPC trong kiến trúc Microservice, Và Chia Sẽ về Phân Tích & Thiết Kế (SPK30101)

By Trần Đồng (Mr.Gold)🇻🇳

TechnologyBusinessStartup
Share:

Tóm tắt Video về gRPC, Phân Tích Thiết Kế Phần Mềm và Multi-Tenancy

Key Concepts:

  • gRPC: General Remote Procedure Call, một framework RPC mã nguồn mở được phát triển bởi Google.
  • Protocol Buffer (protobuf): Một cơ chế serialization dữ liệu được sử dụng mặc định bởi gRPC.
  • Microservices: Một kiến trúc phần mềm chia ứng dụng thành các dịch vụ nhỏ, độc lập.
  • API Gateway: Một thành phần trong kiến trúc microservices đóng vai trò là điểm vào duy nhất cho các yêu cầu từ client.
  • Backend for Frontend (BFF): Một pattern kiến trúc trong đó một backend được thiết kế riêng cho một frontend cụ thể.
  • Functional Decomposition: Phân rã chức năng, một kỹ thuật phân tích thiết kế phần mềm.
  • Use Case (UK): Một mô tả về cách người dùng tương tác với hệ thống để đạt được một mục tiêu cụ thể.
  • Software Requirement Specification (SRS): Tài liệu đặc tả yêu cầu phần mềm.
  • Multi-Tenancy: Một kiến trúc phần mềm trong đó một instance duy nhất của phần mềm phục vụ nhiều khách hàng (tenants).

1. gRPC: Tổng Quan và Ứng Dụng trong Microservices

  • Định nghĩa và Đặc điểm: gRPC là một framework RPC được Google tạo ra, sử dụng Protocol Buffer (protobuf) để serialization dữ liệu. Điều này giúp giảm băng thông và tăng hiệu quả so với các giao thức dựa trên text như JSON hoặc XML.
  • Ưu điểm của Protobuf: Dữ liệu trả về được chuyển thành kiểu protobuf, giúp giảm dung lượng và tăng tốc độ truyền tải.
  • Ứng dụng chính: gRPC đặc biệt hữu ích trong kiến trúc microservices, chủ yếu cho giao tiếp backend-to-backend (service-to-service).
  • Lưu ý quan trọng: gRPC không hỗ trợ trực tiếp trên trình duyệt (browser), do đó nó phù hợp cho các kịch bản giao tiếp giữa các dịch vụ backend.
  • Kiến trúc Microservices và gRPC:
    • Trong kiến trúc microservices, các dịch vụ thường được chia theo domain (ví dụ: catalog, shopping cart, discount, ordering).
    • gRPC được sử dụng để tối ưu hóa giao tiếp giữa API Gateway và các microservice.
    • API Gateway nhận yêu cầu HTTP từ client và sử dụng gRPC để gọi các microservice backend, giảm số lượng round-trip và tăng performance.
    • Các microservice không nhất thiết phải giao tiếp trực tiếp với nhau thông qua gRPC, mà chủ yếu thông qua API Gateway.
  • Mô hình triển khai:
    • Public Network: API Gateway được triển khai trên public network để tiếp nhận yêu cầu từ client.
    • Private Network: Các microservice được triển khai trên private network để bảo mật và tăng tốc độ giao tiếp nội bộ.
  • Ví dụ thực tế: Trong một hệ thống microservices, API Gateway nhận yêu cầu HTTP từ client, sau đó sử dụng gRPC để gọi các microservice như catalog, shopping cart, discount, ordering để lấy dữ liệu. Điều này giúp giảm độ trễ và tăng hiệu suất tổng thể của hệ thống.

2. Phân Tích Thiết Kế Phần Mềm

  • Tầm quan trọng: Kỹ năng phân tích thiết kế phần mềm rất quan trọng đối với các senior developer.
  • Phân rã chức năng (Functional Decomposition):
    • Cấp độ đầu tiên nên là "management" (quản lý).
    • Các cấp độ tiếp theo là các use case (UK).
    • Nên giới hạn ở 3 level phân cấp.
  • Ví dụ về phân rã chức năng:
    • Management
      • User Management
        • Đăng ký
        • Đăng nhập
        • Xem profile
        • Phân quyền
        • Thông báo
  • Use Case (UK):
    • Mô tả cách người dùng tương tác với hệ thống để đạt được một mục tiêu cụ thể.
    • Ví dụ: UK rút tiền tại ATM.
  • Các thành phần của UK:
    • Tên UK
    • Mô tả tóm tắt (Summary)
    • Điều kiện tiên quyết (Pre-condition)
    • Điều kiện sau (Post-condition)
    • Actor
    • Luồng sự kiện chính (Main scenario/Basic path)
    • Luồng sự kiện thay thế (Alternative path/Exception)
  • Ví dụ về UK rút tiền tại ATM:
    • Actor chính: Customer
    • Actor phụ: Banking System
    • Luồng sự kiện chính:
      1. Customer đưa thẻ vào ATM.
      2. ATM xác thực thẻ.
      3. ATM yêu cầu nhập PIN.
      4. Customer nhập PIN.
      5. ATM xác thực PIN.
      6. ATM hiển thị danh sách các tùy chọn.
      7. Customer chọn "Rút tiền".
      8. ATM hiển thị các tùy chọn số tiền.
      9. Customer chọn số tiền hoặc tự nhập.
      10. ATM kiểm tra số dư tài khoản và hạn mức rút tiền.
      11. ATM ghi nợ vào tài khoản.
      12. ATM trả thẻ.
      13. Customer lấy thẻ.
      14. ATM cung cấp tiền.
      15. Customer lấy tiền.
    • Luồng sự kiện thay thế:
      • Thẻ không hợp lệ.
      • PIN nhập sai.
      • Số tiền rút vượt quá số dư hoặc hạn mức.
      • ATM hết tiền.
  • Business Rules: Các quy tắc nghiệp vụ (ví dụ: định dạng PIN, số lần nhập sai PIN tối đa).
  • Non-Functional Requirements: Các yêu cầu phi chức năng (ví dụ: thời gian giao dịch, bảo mật PIN, hỗ trợ ngôn ngữ).
  • Lợi ích của việc phân tích thiết kế tốt: Giúp developer hiểu rõ yêu cầu, code chính xác và hiệu quả hơn.

3. Multi-Tenancy (Sẽ được đề cập trong video tiếp theo)

  • Chủ đề này sẽ được trình bày chi tiết trong video tiếp theo.

Kết luận

Video cung cấp một cái nhìn tổng quan về gRPC và ứng dụng của nó trong kiến trúc microservices, nhấn mạnh tầm quan trọng của việc sử dụng gRPC để tối ưu hóa giao tiếp backend-to-backend. Nó cũng giới thiệu các khái niệm cơ bản về phân tích thiết kế phần mềm, đặc biệt là phân rã chức năng và use case, và tầm quan trọng của việc hiểu rõ các yêu cầu nghiệp vụ và phi chức năng. Chủ đề multi-tenancy sẽ được đề cập trong video tiếp theo.

Chat with this Video

AI-Powered

Hi! I can answer questions about this video "Bản Chất Của GRPC trong kiến trúc Microservice, Và Chia Sẽ về Phân Tích & Thiết Kế (SPK30101)". What would you like to know?

Chat is based on the transcript of this video and may not be 100% accurate.

Related Videos

Ready to summarize another video?

Summarize YouTube Video