Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • EDA – Vì Sao Đây Là Kiến Trúc Được Ưa Chuộng Trong Kỷ Nguyên Cloud, Microservices và Automation?

    Event-Driven Architecture (EDA) – Vì Sao Đây Là Kiến Trúc Được Ưa Chuộng Trong Kỷ Nguyên Cloud, Microservices và Automation?


    Trong nhiều năm, phần lớn ứng dụng được xây dựng theo mô hình Request-Response: một thành phần gửi yêu cầu, thành phần khác trả lời. Mô hình này đơn giản nhưng khi hệ thống phát triển lớn hơn, phân tán hơn và cần khả năng mở rộng linh hoạt, nó bắt đầu bộc lộ nhiều hạn chế.

    Đó là lý do vì sao Event-Driven Architecture (EDA) trở thành một trong những kiến trúc nền tảng của Cloud Native, Microservices, DevOps và Automation hiện đại.

    Event là gì?


    Event (sự kiện) là một thay đổi trạng thái có ý nghĩa xảy ra bên trong hệ thống.

    Ví dụ:
    • Người dùng đăng nhập thành công
    • Người dùng tạo tài khoản mới
    • Thanh toán đơn hàng hoàn tất
    • Máy ảo mới được tạo
    • Thiết bị mạng gửi cảnh báo
    • Hệ thống phát hiện truy cập trái phép

    Bản thân event không "đi ra ngoài" hệ thống. Thứ được truyền đi là thông báo về event (event notification hoặc message).

    Ví dụ khi một tài khoản mới được tạo:
    • Hệ thống IAM ghi nhận user mới
    • Hệ thống Email gửi thư kích hoạt
    • Hệ thống CRM tạo hồ sơ khách hàng
    • Hệ thống SIEM ghi log audit

    Tất cả có thể xảy ra đồng thời mà không cần hệ thống tạo user phải biết ai đang xử lý phía sau.
    Ba loại Event phổ biến

    Atomic Event


    Đây là sự kiện đơn lẻ, mô tả một sự việc cụ thể.

    Ví dụ:
    • User Created
    • Order Paid
    • VM Created

    Atomic event chỉ trả lời câu hỏi:

    "Điều gì đã xảy ra?" Related Event


    Là chuỗi các event liên quan đến cùng một ngữ cảnh.

    Ví dụ:
    • Thêm sản phẩm vào giỏ hàng
    • Xóa sản phẩm khỏi giỏ hàng
    • Thêm lại sản phẩm

    Related event giúp trả lời:

    "Sự việc xảy ra khi nào và theo trình tự nào?" Behavioral Event


    Là tập hợp nhiều related event để mô tả hành vi.

    Ví dụ:
    • Người dùng thường bỏ giỏ hàng sau khi xem phí vận chuyển
    • Người dùng luôn đăng nhập trước khi mua hàng

    Behavioral event giúp suy luận:

    "Tại sao sự việc xảy ra?"
    Kiến trúc EDA hoạt động như thế nào?


    Một hệ thống EDA thường gồm 3 thành phần chính:

    Event Emitter


    Là nơi phát sinh sự kiện.

    Ví dụ:
    • Application
    • Network Controller
    • Kubernetes Cluster
    • Monitoring System
    Event Channel


    Là nơi vận chuyển event.

    Thường sử dụng:
    • Kafka
    • RabbitMQ
    • ActiveMQ
    • Azure Service Bus
    • AWS SQS/SNS

    Nhiệm vụ của Event Channel là phân phối thông điệp tới các consumer phù hợp.

    Event Consumer


    Là thành phần xử lý event.

    Ví dụ:
    • Gửi email
    • Triển khai hạ tầng
    • Cập nhật CMDB
    • Tạo ticket ITSM
    • Kích hoạt workflow bảo mật

    Vì sao EDA phù hợp với Cloud và Automation?


    Điểm mạnh nhất của EDA là Loose Coupling.

    Event emitter không cần biết:
    • Ai sẽ xử lý event
    • Có bao nhiêu consumer
    • Event đã được xử lý hay chưa

    Nó chỉ cần phát event và tiếp tục công việc của mình.

    Điều này giúp:
    • Giảm phụ thuộc giữa các dịch vụ
    • Dễ mở rộng
    • Dễ bảo trì
    • Triển khai độc lập từng thành phần

    EDA giúp tăng hiệu năng như thế nào?


    EDA hoạt động theo cơ chế bất đồng bộ (Asynchronous).

    Ví dụ khi khách hàng nhấn nút mua hàng:

    Trong mô hình truyền thống:
    • Kiểm tra tồn kho
    • Gửi email
    • Tạo vận đơn
    • Cập nhật CRM

    Người dùng phải chờ tất cả hoàn thành.

    Trong EDA:
    • Event "Order Paid" được phát sinh
    • Người dùng nhận phản hồi ngay lập tức
    • Các tác vụ còn lại xử lý nền

    Kết quả:
    • Trải nghiệm người dùng tốt hơn
    • Hệ thống phản hồi nhanh hơn
    • Dễ mở rộng theo chiều ngang

    Hai mô hình triển khai EDA phổ biến

    Broker Topology


    Đây là mô hình đơn giản nhất.

    Thành phần trung tâm là Message Broker.

    Ví dụ:
    • Kafka
    • RabbitMQ

    Event được gửi vào broker và các consumer sẽ subscribe để nhận những sự kiện mà chúng quan tâm.

    Phù hợp với:
    • Microservices
    • Log Processing
    • Monitoring
    • Automation Workflow
    Mediator Topology


    Bổ sung thêm một thành phần gọi là Mediator.

    Mediator có nhiệm vụ:
    • Nhận event
    • Phân tích event
    • Quyết định luồng xử lý tiếp theo
    • Điều phối workflow

    Phù hợp với:
    • Business Process Automation
    • ITSM Workflow
    • CI/CD Pipeline Orchestration
    • Complex Enterprise Applications

    Những thách thức lớn nhất của EDA


    Mặc dù rất mạnh, EDA cũng có những vấn đề cần giải quyết.

    Event bị xử lý nhiều lần


    Ví dụ:

    Một sự kiện "Payment Completed" bị gửi lặp.

    Hậu quả:
    • Gửi hàng nhiều lần
    • Trừ tiền nhiều lần
    • Sinh dữ liệu không nhất quán

    Do đó hệ thống cần cơ chế:
    • At Most Once
    • At Least Once
    • Exactly Once
    Sai thứ tự Event


    Ví dụ:
    • User Updated
    • User Created

    Nếu event đến sai thứ tự sẽ gây lỗi logic.

    Việc đảm bảo thứ tự xử lý event là một trong những bài toán quan trọng của các hệ thống phân tán.
    Góc nhìn DevOps và Automation


    Nếu nhìn kỹ, rất nhiều nền tảng hiện đại đang vận hành theo EDA:
    • Kubernetes Events
    • GitHub Webhooks
    • GitLab CI/CD Triggers
    • Kafka Streaming
    • ServiceNow Event Management
    • Splunk Alerts
    • Cisco Catalyst Center Event Notifications
    • SIEM và SOAR Platforms

    Mỗi khi một sự kiện xảy ra, hệ thống sẽ tự động kích hoạt một chuỗi hành động tiếp theo mà không cần con người can thiệp.

    Đó chính là nền tảng của Automation hiện đại.

    EDA không đơn thuần là một kiến trúc phần mềm. Nó là tư duy thiết kế hệ thống xoay quanh sự kiện, nơi mọi thay đổi trong hạ tầng, ứng dụng và dữ liệu đều có thể trở thành điểm khởi đầu cho một workflow tự động. Trong thế giới Cloud, Microservices, DevOps, AIOps và Agentic AI, Event-Driven Architecture đang dần trở thành "hệ thần kinh" kết nối mọi thành phần của hệ thống số.
    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X