Đề cương khóa học
Ngày 1: Nền tảng của Kiến trúc định hướng sự kiện trong Go
- Giới thiệu về EDA
- What is Event-Driven Architecture? (Kiến trúc định hướng sự kiện là gì?)
- So sánh Hệ thống Monolithic, Microservices và Định hướng Sự kiện
- Mô hình song song của Go và các goroutines nhẹ nhàng làm cho nó trở thành lựa chọn lý tưởng cho EDA
- Khái niệm cốt lõi & Lợi ích
- Tách rời, khả năng mở rộng và tính ổn định trong các hệ thống doanh nghiệp
- Định nghĩa Sự kiện, Nhà sản xuất, Người tiêu thụ và Máy chủ trung gian Sự kiện
- Các ví dụ thực tế và nghiên cứu trường hợp nơi Go hỗ trợ các hệ thống sự kiện hiệu suất cao
- Định lý CAP & Sự đánh đổi trong EDA
- Tổng quan về Tính nhất quán, Khả dụng và Khoan dung phân vùng
- Tác động của EDA đối với các thuộc tính này
- Các chiến lược để cân bằng tính nhất quán và khả dụng trong các hệ thống dựa trên Go
Ngày 2: Sự kiện, Thông điệp và Mẫu giao tiếp trong Go
- Hiểu các loại Sự kiện
- Sự kiện miền (Domain Events) so với Sự kiện tích hợp (Integration Events)
- Sự kiện đồng bộ so với Sự kiện bất đồng bộ trong các ứng dụng Go
- Các mẫu thông điệp trong thực tế
- Public-Subscribe (Pub/Sub) trong Go
- Cách thiết kế và cấu trúc các payload sự kiện sử dụng JSON, Protocol Buffers hoặc Avro trong Go
- Triển khai xử lý Sự kiện trong Go
- Tổng quan về các thư viện và framework Go phổ biến cho thông điệp
- Ví dụ mã: gửi và xử lý sự kiện sử dụng các mẫu Go chuẩn (idiomatic)
- Phiên thực hành: Xây dựng một dịch vụ định hướng sự kiện đơn giản trong Go
Ngày 3: Hệ thống thông điệp & Máy chủ trung gian Sự kiện với Go
- Lựa chọn và tích hợp Máy chủ trung gian Sự kiện
- Tổng quan về các máy chủ trung gian phổ biến: Apache Kafka, RabbitMQ và NATS
- So sánh các trường hợp sử dụng và các thực tiễn tốt nhất cho các hệ thống dựa trên Go
- Thiết lập hạ tầng thông điệp
- Cấu hình Docker Compose cho Kafka, RabbitMQ hoặc NATS
- Cấu hình các chủ đề (topics), trao đổi (exchanges), hàng đợi (queues) và kênh (channels)
- Tổng quan về các thư viện client Go
- Workshop thực hành
- Xây dựng một microservice Go mẫu tạo ra và tiêu thụ sự kiện
- Tích hợp dịch vụ với máy chủ trung gian sự kiện được chọn
- Chẩn đoán và kiểm tra luồng sự kiện
Ngày 4: Triển khai, Giám sát và các chủ đề nâng cao trong EDA Go
- Triển khai các ứng dụng Go định hướng sự kiện trên Kubernetes
- Container hóa các ứng dụng Go cho môi trường production
- Triển khai Kafka (hoặc các máy chủ trung gian khác) trên các cụm Kubernetes
- Giới thiệu về KEDA (Kubernetes Event-Driven Autoscaling) để mở rộng các người tiêu thụ sự kiện
- Xử lý lỗi và Giám sát
- Xử lý sự kiện thất bại với các chiến lược
- Triển khai khả năng quan sát (observability) trong các dịch vụ Go
- Các chủ đề nâng cao & Hỏi đáp
- Khám phá các Kiến trúc định hướng sự kiện Serverless với Go
- Choreography sự kiện so với Orchestration: Các trường hợp sử dụng và các cân nhắc thiết kế
- Các bẫy phổ biến, bài học kinh nghiệm và các thực tiễn tốt nhất
- Phiên hỏi đáp mở và gỡ lỗi tương tác
Yêu cầu
- Thành thạo Go (Golang), bao gồm việc sử dụng goroutines và channels
- Hiểu biết cơ bản về các mô hình kiến trúc phần mềm như monolith và microservices
- Làm quen với Docker và Docker Compose
- Kiến thức cơ bản về REST API và các khái niệm mạng
- Kinh nghiệm với các công cụ dòng lệnh và Git
- Tùy chọn nhưng hữu ích: Kinh nghiệm tiếp xúc trước đó với Kubernetes và các hệ thống thông điệp như Kafka, RabbitMQ hoặc NATS
Đối tượng tham gia
- Lập trình viên Go xây dựng các ứng dụng định hướng sự kiện có khả năng mở rộng
- Kỹ sư phần mềm chuyển đổi từ kiến trúc monolithic hoặc dựa trên REST sang các hệ thống bất đồng bộ
- Kỹ sư DevOps và cloud làm việc với microservices được container hóa hoặc phân tán
- Kiến trúc sư kỹ thuật và nhà thiết kế hệ thống khám phá các mẫu EDA bằng Go
Đánh giá (7)
Chúng tôi viết một số đoạn mã bằng Go và học thêm về EDA như các sự kiện, khi nào và làm thế nào để sử dụng chúng.
Alin
Khóa học - Event Driven Architecture Custom
Dịch thuật bằng máy
Đó là một khóa học tương tác, không có thời gian để ngủ :)). Cũng rất thú vị khi làm việc nhóm và sau đó tranh luận dựa trên mỗi kết quả.
Alina
Khóa học - Event Driven Architecture Custom
Dịch thuật bằng máy
Tôi rất thích các cuộc thảo luận và các ví dụ được cung cấp để chúng tôi có thể tự mình đưa ra những kết luận mà anh ấy muốn chia sẻ với chúng tôi. Tôi thích tốc độ, cách sử dụng tiếng Anh, sự kiên nhẫn, rằng ngay cả khi chúng tôi không đưa ra câu trả lời tốt nhất, anh ấy cũng không nói đó là sai, mà chỉ đưa ra các ví dụ về những gì có thể tốt hơn.
Simona
Khóa học - Event Driven Architecture Custom
Dịch thuật bằng máy
Các cuộc thảo luận mở và tiến từ việc hiểu các vấn đề/lý do (cái `tại sao`) đến `EDA`.
Constantin
Khóa học - Event Driven Architecture Custom
Dịch thuật bằng máy
phương pháp trình bày dựa chủ yếu vào tương tác và ví dụ
Virgil
Khóa học - Event Driven Architecture Custom
Dịch thuật bằng máy
Tính tương tác của khóa học Phương pháp học tự khám phá nơi bạn tìm ra câu trả lời cho chính mình Chú trọng thực hành với các ví dụ từ cuộc sống thực tế, giúp các khái niệm trở nên gần gũi hơn
Roxana Sandu
Khóa học - Event Driven Architecture Custom
Dịch thuật bằng máy
Rất tương tác. Người hướng dẫn rất knowledgeable và kiên nhẫn.
Robert
Khóa học - Event Driven Architecture Custom
Dịch thuật bằng máy