Khóa Học NestJS Microservices Thực Chiến: Từ Zero Đến Hero
Xây dựng hệ thống NestJS Microservices, TCP, gRPC, Kafka, Keycloak OIDC, SAGA, Docker, Nx monorepo, Testing, Monitoring
Xây dựng hệ thống NestJS Microservices, TCP, gRPC, Kafka, Keycloak OIDC, SAGA, Docker, Nx monorepo, Testing, Monitoring
Khóa học hướng dẫn bạn xây dựng hệ thống Hóa đơn điện tử (E-Invoice) chuẩn doanh nghiệp với NestJS Microservices. Bạn sẽ học kiến trúc microservices, giao tiếp qua TCP, gRPC, Kafka, tích hợp Keycloak, Docker, Redis, Stripe, và triển khai production-ready, đảm bảo hiệu năng và khả năng mở rộng cao.
Trong dự án thực tế, bạn sẽ phát triển các service: Invoice, Media, PDF Generator, Mail, Payment, Authorizer, và BFF. Hệ thống áp dụng các pattern hiện đại như API Gateway, Event-Driven Architecture, Saga Pattern, kèm theo logging & monitoring bằng Grafana, Loki, Promtail để đảm bảo tính ổn định.
Bạn sẽ học:
Tổ chức Nx Monorepo trong NestJS Microservices
Authentication & Authorization với Keycloak
Tích hợp Redis cache tối ưu hiệu năng
Thanh toán trực tuyến với Stripe
CI/CD với Docker & GitHub Actions
Async comunication với Apache Kafka
Sync comunication với TCP, gRPC, REST
Áp dụng Testing Strategy như Unit test, Integration test, E2E test
Xử lý Distributed Transaction với SAGA Pattern
Monitoring vs Observability hệ thống với Grafana, Loki, Promtail, Prometheus, Tempo, pentelemetry
Khóa học phù hợp cho backend developer muốn nâng cấp kỹ năng, Node.js developer muốn ứng dụng NestJS vào dự án thực tế, và bất kỳ ai quan tâm microservices production-ready. Hoàn thành khóa học, bạn sẽ đủ năng lực triển khai hệ thống doanh nghiệp thực thụ, sẵn sàng cho môi trường làm việc chuyên nghiệp.
Khu vực Câu hỏi thường gặp trống
Giới thiệu khoá học
Xem trướcMua khoá học với giá ưu đãi như nào ?
Xem trướcLời cảm ơn
Xem trướcAbout me
Xem trướcĐối tượng học viên & điều kiện cần để tham gia khoá học
Xem trướcTương tác với giảng viên như thế nào
Xem trướcTruy cập tài nguyên khoá học như thế nào ? (QUAN TRỌNG)
Xem trướcLưu ý cho các bạn học viên (QUAN TRỌNG)
Chuẩn bị môi trường phát triển dự án thực chiến
Monorepo trong Microservices: Ưu nhược điểm & So sánh với Multirepo
Nx Monorepo
Khởi tạo dự án với Nx CLI
Làm quen với Nx task - serve, build, test, lint...
Review cấu trúc dự án - app, libs, docker...
Tạo NestJS app với Nx console
Tạo NestJS libs với Nx console
Tổng quan về kiến trúc - Application & Infrastructure Layer
Tìm hiểu về kiến trúc Bff
Load Env file với NestJs Config
Cài đặt Lib Configuration
Validate config với NestJS Validation
Cấu hình Swagger - API Documentation cho dự án
Cấu hình Prettierrc format
Setup một số script cơ bản trong package.json
Cài đặt Lib Middlewares
Xây dựng hoàn chỉnh LoggerMiddleware
Xây dựng ResponseDto để Chuẩn Hóa API Response
Xây dựng ExceptionInterceptor: Chuẩn Hóa Error Response
Giao tiếp trong Microservices như thế nào ?
Service Communication Matrix: Các Cách Giao Tiếp Trong Microservices
TCP Transport trong Microservices: Communication Hiệu Năng Cao
NestJs Microservice với TCP Transporter
Tìm hiểu cách config TCP comunication
Giới thiệu RxJS - Reactive programming
Cấu hình kết nối TCP trong dự án
Khởi tạo TcpProvider - Chuẩn hoá TCP Config
Xây dựng TCP Logging Interceptor để ghi log request/response
Chuẩn hóa Request/Response Type trong giao tiếp TCP
Decorators trong NestJS: Cách hoạt động và ví dụ thực tế
Xây dựng Custom Decorator trong NestJS: ProcessId & Request Param
Thiết kế Database trong Microservice: SQL, NoSQL & Patterns
Review thiết kế database trong project - MongoDB, Postgres, Redis
Cài đặt MongoDB với Docker compose
Kết nối NestJS app tới MongoDB
Khởi tạo MongoProvider - Chuẩn hoá Mongo Config
Khởi tạo Invoice Schema
Đăng ký Schema với NestJs và khởi tạo Repository
Review Diagram - chi tiết từng Phase của Project
Thực hiện Phase 1 - Create Invoice API
Khởi tạo Product Service
Cài đặt Postgres & pgAdmin với Docker compose
Khởi tạo TypeORM provider - Connect Postgres DB
Đăng Ký Entity với NestJs và tạo Repository
Implement Product APIs - Create & GetAll
NestJs microservices exception handling
Recap: database trong microservice architecture
Section overview
Security trong Microservices
Khởi tạo User Access Service và build Role Module
Seeding Role Data: Importing JSON Files with Nx Task
Xây dựng User Management APIs
Thách thức về Authentication & Authorization trong Microservices
Giới thiệu Keycloak: Identity & Access Management cho Microservices
Cài đặt & Cấu hình Keycloak với Docker
Thực hành với Keycloak Admin Console: Tạo Realm, Client & User
Tổng quan các Authentication Standards: OAuth 2.0, OIDC và SAML 2.0
Authentication Flow trong Keycloak: Giải thích và demo trực quan
Thêm Google Identity Provider vào Keycloak (Login with Google)
Tìm hiểu Keycloak Admin REST API và tạo User bằng API
Integrate Keycloak Admin REST API vào Project để quản lý User
Build Api Login với Username và Password để lấy AccessToken
Giới thiệu về NestJS Guard cho Authentication & Authorization
Review về flow Authentication & Authorization của Project
Xây dựng User Guard trong project để kiểm tra Authentication
Cơ chế Verify JWT trong NestJS sử dụng JWKS từ Keycloak
Triển khai verify Token với Keycloak
Set User Info vào Request sau khi Verify Token
Xây dựng Permission Guard - Authorization
Giới thiệu Redis và ứng dụng trong hệ thống Microservice
Review Cache Flow Diagram trong hệ thống
Cài đặt Redis & Redis Insight với Docker
Caching trong NestJS với Redis – Cách hoạt động & cấu hình
Tích hợp Redis vào project – Cấu hình & Kết nối thực tế
Caching User Data trong Redis – Giúp hệ thống chạy nhanh hơn
Rate Limiting - Bảo vệ API trong hệ thống
Cấu hình Rate Limiting với NestJS Throttler + Redis
Review phase 2
Khởi tạo Pdf Generator TCP Microservice
Giới thiệu về Puppeteer & EJS (Embedded JavaScript templating)
Render HTML template với EJS
Tạo Invoice PDF với Puppeteer
Khởi tạo Media TCP Microservice
Upload file PDF với Cloudinary
Giới thiệu Stripe và các mô hình thanh toán phổ biến
Tạo link thanh toán Invoice với Stripe Checkout Session
Xử lý Stripe Webhook - Cập nhật Invoice khi thanh toán thành công
Review phase 3 - Email processing
Message Queue là gì và tại sao cần trong hệ thống Microservice
Apache Kafka là gì? Tại sao mọi hệ thống lớn đều sử dụng Kafka
Cài đặt Apache Kafka với Docker compose
NestJs Microservice với Kafka Transporter
Khởi tạo Mail service - Kafka Consumer
Cấu hình Invoice là Producer và Demo Emit Event
Tái sử dụng Kafka Producer Config với Dynamic Module
Gửi Email với Nodemailer qua Gmail SMTP
Tạo Invoice Email Template và gửi Email đính kèm file
Giới thiệu về Monitoring & Observability
Health Check trong Microservices - Phát hiện lỗi, tự phục hồi & ổn định cao
Thực hiện Health Check cho project (TCP, gRPC, Redis, Memory)
Centralize Logging trong Microservices - Ghi log tập trung
PLG Stack (Promtail, Loki, Grafana)
Cài đặt PLG Stack với Docker compose
NestJs Pino là gì? Vì sao nên log JSON format?
Cấu hình Pino logger và push log lên Loki server
Tạo Logs panel trên Grafana Dashboard
Monitoring Metrics Trong Microservices
Tạo Metrics dashboard với Prometheus trên Grafana
Distributed Tracing trong Microservices
Thiết kế hệ thống Tracing với Grafana Tempo & OpenTelemetry
Cài đặt và cấu hình Grafana Tempo
Setup OpenTelemetry và auto instrumentation
Context propagation traces data giữa các TCP Microservices
Kiến thức cơ bản về JavaScript hoặc TypeScript
Hiểu các khái niệm REST API và HTTP
Có kinh nghiệm với Node.js (Express.js hoặc NestJS cơ bản là một lợi thế)
Kiến thức cơ bản về MongoDB hoặc cơ sở dữ liệu bất kỳ
Biết sử dụng Docker ở mức cơ bản (pull, run container)
Môi trường phát triển đã cài đặt: Node.js, npm hoặc yarn, Docker Desktop
Tinh thần sẵn sàng học các công nghệ mới và thực hành trên dự án thực tế
Thiết kế và triển khai Microservices Architecture quy mô enterprise
Nắm vững cách thiết kế và implement API Gateway Pattern
Implement Event-Driven Architecture với Kafka
Xây dựng RESTful APIs và gRPC, TCP services với NestJS
Xử lý Distributed Transactions với Saga Pattern
Setup Observability Stack hoàn chỉnh (Logging, Metrics, Tracing)
Implement Authentication & Authorization với Keycloak
Áp dụng Testing Strategy như Unit test, Integration test, E2E test
Container hóa và triển khai hệ thống với Docker và Docker Compose
Setup CI/CD pipeline với GitHub Actions & Deploy lên VPS/Cloud
Thiết kế database với MongoDB và PostgreSQL
Tích hợp Stripe để xử lý thanh toán trực tuyến an toàn
Tổ chức mã nguồn theo kiến trúc monorepo với Nx
Áp dụng Rate limiting với Throttler
Áp dụng caching tối ưu performance với Redis
Chuẩn hóa commit và code style với Husky, Lint-Staged, Commitlint
Seeding Data: Importing JSON Files with Nx Task
1.0
0 Học viên
105 Khóa học
1252 Đánh giá
Xin chào các bạn, tôi là Nguyễn Đình Cường, một lập trình viên và giảng viên đam mê công nghệ với hơn 15 năm kinh nghiệm trong ngành công nghiệp phần mềm. Tôi tốt nghiệp từ Bưu Chính Viễn Thông và đã từng làm việc cho một số công ty công nghệ hàng đầu như FPT Software và VinGroup. Với chuyên môn chính là phát triển ứng dụng web, tôi đã làm việc với nhiều công nghệ như HTML, CSS, JavaScript, React cho front-end và Node.js, Express, MongoDB cho back-end. Không chỉ dừng lại ở việc viết mã, tôi còn yêu thích tìm hiểu sâu về thiết kế hệ thống và kiến trúc phần mềm. Tôi tin rằng quá trình học lập trình không chỉ đơn thuần là lý thuyết, mà còn là sự trải nghiệm thực tế và giải quyết vấn đề. Trong các khóa học của mình, tôi cố gắng cung cấp cho học viên những bài giảng thú vị và dễ hiểu, cùng với các bài tập thực hành giúp củng cố kiến thức. Tôi hy vọng rằng qua các khóa học của mình, bạn sẽ không chỉ học được cách viết mã, mà còn phát triển tư duy lập trình và kỹ năng giải quyết vấn đề. Hãy cùng nhau khám phá thế giới lập trình và biến ý tưởng của bạn thành hiện thực! Nếu bạn có bất kỳ câu hỏi nào, đừng ngần ngại liên hệ với tôi. Tôi rất vui được hỗ trợ bạn trong hành trình học tập của mình!
Xem chi tiết