Khóa học Backend Microservice với Encore
Khóa học Backend Microservice với Encore
Khóa học tập trung vào phát triển backend microservices với Encore - nền tảng phát triển backend hiện đại. Học viên sẽ được tìm hiểu về kiến trúc microservice, triển khai ứng dụng trên AWS/GCP, và các công cụ DevOps tự động hóa.
Tại sao chọn khóa học
- Chương trình được thiết kế theo chuẩn công nghiệp hiện đại
- Tập trung vào thực hành với các dự án thực tế
- Giảng viên có nhiều năm kinh nghiệm về microservices và cloud
- Được hỗ trợ 24/7 thông qua group chat riêng
- Tài liệu đầy đủ và cập nhật theo xu hướng mới nhất
- Thực hành trên các công nghệ đang được sử dụng rộng rãi
- Hỗ trợ định hướng nghề nghiệp sau khóa học
Mục tiêu khóa học
- Hiểu sâu về kiến trúc microservice và các pattern phổ biến
- Thành thạo việc phát triển backend với Encore và các công cụ DevOps
- Triển khai ứng dụng lên AWS/GCP một cách tự động và an toàn
- Xây dựng các service có khả năng mở rộng và bảo trì dễ dàng
- Áp dụng các best practice trong phát triển backend hiện đại
- Thực hành với các dự án thực tế theo chuẩn công nghiệp
Kết quả mong đợi
- Có khả năng thiết kế và phát triển hệ thống microservice hoàn chỉnh
- Thành thạo việc sử dụng Encore và các công cụ DevOps tự động
- Triển khai và vận hành ứng dụng trên môi trường cloud chuyên nghiệp
- Áp dụng được các pattern và best practice trong phát triển backend
- Xây dựng được các service có tính bảo mật và khả năng mở rộng cao
- Làm chủ quy trình CI/CD và monitoring trong môi trường production
Đối tượng hướng đến
- Backend developers muốn nâng cao kỹ năng với microservices
- DevOps engineers tìm hiểu về automation và cloud deployment
- Fullstack developers muốn chuyên sâu về backend development
- Tech leads và architects cần kiến thức về microservice architecture
- Developers muốn học cách xây dựng hệ thống có khả năng mở rộng cao
Nội dung chương trình học
Chương 1: Nền tảng Web Development
Giới thiệu về HTML5 và các thẻ semantic
Cấu trúc cơ bản của một trang web
CSS selectors và độ ưu tiên trong CSS
Box model và cách tính toán kích thước phần tử
Các đơn vị đo lường trong CSS (px, em, rem, %)
Bài tập thực hành: Xây dựng layout cơ bản (15 bài tập)
Flexbox và các thuộc tính căn chỉnh
Grid layout và cách chia lưới
Responsive design với media queries
Mobile first và desktop first approach
Các breakpoint phổ biến trong responsive
Bài tập thực hành: Layout responsive (10 bài tập)
CSS animations và transitions cơ bản
Keyframes và các thuộc tính animation
SASS/SCSS và cách cài đặt
Variables và nested rules trong SASS
Mixins và extends trong SASS
Bài tập thực hành: Animation và SASS (10 bài tập)
Biến, kiểu dữ liệu và phạm vi trong JavaScript
Toán tử và cấu trúc điều khiển
Functions và arrow functions
Object và Array trong JavaScript
ES6+ features (let/const, destructuring, spread)
Bài tập thực hành: JavaScript cơ bản (20 bài tập)
DOM và cấu trúc cây DOM
Selecting và manipulating DOM elements
Event handling và event bubbling
Event delegation và performance
Form validation với JavaScript
Bài tập thực hành: DOM và Events (15 bài tập)
Callbacks và callback hell
Promises và chuỗi promise
Async/await và error handling
Fetch API và XMLHttpRequest
Local storage và session storage
Bài tập thực hành: Async JavaScript (15 bài tập)
Chương 2: Phát triển ứng dụng với Next.js
Tổng quan về Next.js và các tính năng chính
Cài đặt Node.js và npm/yarn
Khởi tạo dự án Next.js đầu tiên
Cấu trúc thư mục và file trong Next.js
Các file cấu hình quan trọng (next.config.js, package.json)
Bài tập thực hành: Cài đặt và chạy dự án Next.js (5 bài tập)
File-system based routing trong Next.js
Dynamic routes và catch-all routes
Navigation với Link component
useRouter hook và điều hướng bằng code
Shallow routing và prefetching
Bài tập thực hành: Xây dựng hệ thống routing (10 bài tập)
getStaticProps và Static Site Generation (SSG)
getServerSideProps và Server-side Rendering (SSR)
Incremental Static Regeneration (ISR)
Client-side data fetching với SWR
Tối ưu hóa performance với caching
Bài tập thực hành: Các phương pháp lấy dữ liệu (8 bài tập)
CSS Modules và Styled Components
Tailwind CSS trong Next.js
Image Optimization với next/image
Font Optimization với next/font
Script Optimization với next/script
Bài tập thực hành: Styling và tối ưu (7 bài tập)
Xây dựng API routes trong Next.js
Middleware và API middleware
Authentication với NextAuth.js
Bảo mật API routes
Xử lý CORS và rate limiting
Bài tập thực hành: Xây dựng REST API (10 bài tập)
Chương 3: Docker và Container
Tổng quan về công nghệ Container và Docker
Kiến trúc và các thành phần cơ bản của Docker
So sánh Container với máy ảo truyền thống
Cài đặt Docker trên các hệ điều hành
Làm quen với Docker CLI và Docker Desktop
Bài tập thực hành: Cài đặt và cấu hình Docker (5 bài tập)
Khái niệm và cách sử dụng Docker Image
Tạo và quản lý Container từ Image
Các lệnh cơ bản để quản lý Container
Tương tác với Container đang chạy
Theo dõi logs và debugging Container
Bài tập thực hành: Quản lý Container (8 bài tập)
Cú pháp và cấu trúc của Dockerfile
Các lệnh phổ biến trong Dockerfile
Tối ưu hóa Docker Image size
Multi-stage builds trong Dockerfile
Push và pull Image với Docker Registry
Bài tập thực hành: Viết Dockerfile (7 bài tập)
Các loại network trong Docker
Kết nối các Container qua network
Quản lý volume và persistent data
Bind mounts và tmpfs mounts
Backup và restore dữ liệu Container
Bài tập thực hành: Network và Storage (6 bài tập)
Giới thiệu về Docker Compose
Cú pháp file docker-compose.yml
Quản lý multi-container applications
Scale và load balancing với Compose
Monitoring và logging trong Docker
Bài tập thực hành: Docker Compose (8 bài tập)
Chương 4: Phát triển với Encore Framework
Giới thiệu về Encore Framework và các tính năng chính
Cài đặt và cấu hình môi trường phát triển Encore
Kiến trúc và các thành phần cơ bản của Encore
So sánh Encore với các framework Backend khác
Bài tập thực hành: Cài đặt và khởi tạo dự án (5 bài tập)
Tổng quan về Encore CLI và các lệnh cơ bản
Quản lý dự án và môi trường phát triển
Tạo và quản lý services với CLI
Debug và testing thông qua CLI
Bài tập thực hành: Sử dụng Encore CLI (6 bài tập)
Cấu trúc và quy ước thiết kế API trong Encore
Định nghĩa endpoints và middleware
Xử lý request và response
Validation và error handling
Authentication và authorization trong API
Bài tập thực hành: Xây dựng REST API (8 bài tập)
Triển khai ứng dụng lên AWS/GCP với Encore
Quản lý cơ sở dữ liệu trên cloud
Cấu hình monitoring và logging
Bảo mật và quản lý secrets
Chiến lược deployment và rollback
Bài tập thực hành: Triển khai cloud (6 bài tập)
Viết unit tests và integration tests
Sử dụng công cụ debug của Encore
Theo dõi và phân tích hiệu năng
Xử lý lỗi và tối ưu hóa
Các best practices trong testing
Bài tập thực hành: Testing và debugging (7 bài tập)
Chương 5: Kiến Trúc Microservices
Giới thiệu về kiến trúc Microservices
So sánh Monolithic và Microservices
Các nguyên tắc thiết kế Microservices
Ưu nhược điểm của Microservices
Bài tập thực hành: Phân tích và thiết kế Microservices (5 bài tập)
Phương pháp phân tách domain và bounded context
Xác định ranh giới giữa các services
Thiết kế API cho từng service
Quản lý dữ liệu phân tán
Bài tập thực hành: Phân tách services (6 bài tập)
Các mô hình giao tiếp đồng bộ và bất đồng bộ
REST và gRPC trong Microservices
Event-driven communication
Xử lý lỗi và retry strategies
Bài tập thực hành: Triển khai giao tiếp services (5 bài tập)
Cơ chế Service Discovery
Load balancing strategies
Health checking và fault detection
Circuit breaker pattern
Fallback mechanisms
Bài tập thực hành: Cấu hình service discovery (4 bài tập)
Distributed tracing trong Microservices
Log aggregation và monitoring
Performance metrics và alerting
Debug và troubleshooting distributed systems
Bài tập thực hành: Monitoring microservices (5 bài tập)
Chương 6: Database Systems
Relational database design
MongoDB và document stores
Redis và caching
Database optimization
Data modeling
Transaction management
Chương 7: Hệ Thống Publish/Subscribe & Xử Lý Sự Kiện
Tổng quan về mô hình Publish/Subscribe
So sánh Pub/Sub với Message Queue truyền thống
Các thành phần chính trong hệ thống Pub/Sub
Cơ chế hoạt động và luồng dữ liệu
Thực hành: Xây dựng hệ thống Pub/Sub đơn giản (2 bài tập)
Giới thiệu về Google Cloud Pub/Sub
Cấu hình và triển khai Pub/Sub trên Google Cloud
AWS SNS (Simple Notification Service)
AWS SQS (Simple Queue Service)
So sánh và use cases cho từng dịch vụ
Thực hành: Triển khai ứng dụng với Cloud Pub/Sub (3 bài tập)
Các pattern xử lý sự kiện phổ biến
Retry policies và Dead Letter Queue
Monitoring và theo dõi hiệu suất
Xử lý lỗi và recovery strategies
Thực hành: Triển khai xử lý sự kiện (2 bài tập)
Chương 8: API Gateway & Service Mesh
Khái niệm và vai trò của API Gateway
Các mẫu thiết kế API Gateway phổ biến
So sánh các giải pháp API Gateway
Cấu trúc và thành phần của API Gateway
Thực hành: Triển khai API Gateway đơn giản (2 bài tập)
Chiến lược quản lý phiên bản API
Chính sách bảo mật và xác thực
Giới hạn tốc độ truy cập (Rate Limiting)
Monitoring và logging API
Tài liệu API với OpenAPI/Swagger
Thực hành: Triển khai bảo mật API Gateway (3 bài tập)
Kiến trúc Service Mesh
Istio và các công cụ Service Mesh phổ biến
Điều hướng và cân bằng tải
Circuit breaking và fault injection
Theo dõi và phân tích traffic
Thực hành: Triển khai Service Mesh (2 bài tập)
Chương 9: Giám sát và Quan sát hệ thống
Khái niệm cơ bản về giám sát hệ thống
Các thành phần chính của hệ thống giám sát
Phân biệt Monitoring và Observability
Các metrics quan trọng cần theo dõi
Thực hành: Thiết lập hệ thống giám sát cơ bản (2 bài tập)
Kiến trúc và thành phần của Prometheus
Cấu hình và triển khai Prometheus
Truy vấn metrics với PromQL
Xây dựng dashboard với Grafana
Cảnh báo và thông báo tự động
Thực hành: Triển khai Prometheus & Grafana (3 bài tập)
Giới thiệu về Distributed Tracing
Triển khai OpenTelemetry
Thu thập và phân tích logs tập trung
Elasticsearch và Kibana cho quản lý logs
Kỹ thuật debug và troubleshooting
Thực hành: Triển khai hệ thống logging (2 bài tập)
Chương 10: Bảo mật và Xác thực người dùng
Tổng quan về OAuth 2.0 và các thành phần
Các loại grant type trong OAuth 2.0
Quy trình xác thực với OpenID Connect
Triển khai OAuth 2.0 với Node.js
Bảo mật token và refresh token
Thực hành: Xây dựng hệ thống xác thực OAuth (2 bài tập)
Cấu trúc và thành phần của JWT
Mã hóa và xác thực JWT token
Quản lý session với JWT
Xác thực API endpoints
Xử lý lỗi và exception trong xác thực
Thực hành: Triển khai JWT Authentication (2 bài tập)
Giao thức HTTPS và SSL/TLS
Cài đặt và cấu hình chứng chỉ SSL
Các lỗ hổng bảo mật phổ biến (XSS, CSRF, SQL Injection)
Kỹ thuật mã hóa và hash password
Kiểm thử bảo mật (Penetration Testing)
Các best practices trong bảo mật ứng dụng web
Thực hành: Triển khai HTTPS và xử lý lỗ hổng bảo mật (3 bài tập)
Chương 11: CI/CD & DevOps
CI/CD pipelines
Infrastructure as Code
GitOps workflow
Automated testing
Deployment strategies
Release management
Chương 12: Tích hợp Trí tuệ nhân tạo & Học máy
Giới thiệu về OpenAI API và các mô hình ngôn ngữ lớn
Cài đặt và cấu hình OpenAI SDK cho Node.js
Xây dựng API wrapper cho OpenAI
Xử lý và tối ưu hóa prompt
Quản lý context và memory trong hội thoại
Thực hành: Tích hợp chatbot thông minh (2 bài tập)
Chuẩn bị dữ liệu cho fine-tuning
Quy trình fine-tuning mô hình GPT
Đánh giá và so sánh hiệu suất mô hình
Triển khai mô hình trên production
Tối ưu hóa chi phí và tài nguyên
Thực hành: Fine-tuning mô hình cho ứng dụng cụ thể (2 bài tập)
Kiến trúc của hệ thống RAG (Retrieval Augmented Generation)
Tích hợp và quản lý vector database
Xử lý và embedding tài liệu
Tìm kiếm ngữ nghĩa với vector similarity
Thực hành: Xây dựng hệ thống RAG đơn giản (1 bài tập)
Phương pháp đánh giá chất lượng phản hồi
Tối ưu hóa độ chính xác và tốc độ phản hồi
Xử lý lỗi và edge cases
Monitoring và logging cho hệ thống AI
Thực hành: Đánh giá và cải thiện hệ thống (1 bài tập)
Phần 13: Phát triển ứng dụng Cloud Native
Giới thiệu về kiến trúc Serverless và Function-as-a-Service
AWS Lambda và các dịch vụ Serverless phổ biến
Triển khai hàm Lambda với Node.js
Xử lý sự kiện và tích hợp với các dịch vụ AWS khác
Quản lý phiên bản và môi trường cho ứng dụng Serverless
Thực hành: Xây dựng API Serverless (2 bài tập)
Các giải pháp lưu trữ đám mây: S3, EBS, EFS
Thiết lập và quản lý bucket S3
Cấu hình Auto-scaling cho ứng dụng
Monitoring và cảnh báo tự động
Tối ưu chi phí lưu trữ và tính toán
Thực hành: Triển khai hệ thống lưu trữ tự động mở rộng (2 bài tập)
Các nguyên tắc bảo mật cho ứng dụng cloud
Identity và Access Management (IAM)
Mã hóa dữ liệu và quản lý khóa
Chiến lược triển khai multi-cloud
So sánh và tích hợp các nền tảng cloud khác nhau
Thực hành: Thiết lập bảo mật cho ứng dụng cloud (2 bài tập)
Phần 14: Tối ưu hiệu năng hệ thống
Các loại cache và use cases
Triển khai Redis cache trong Node.js
Cấu hình và quản lý Load Balancer
Sticky sessions và session management
Monitoring hiệu năng cache và load balancer
Thực hành: Tối ưu hệ thống với cache và load balancing (2 bài tập)
Index optimization trong MongoDB
Query optimization và execution plan
Tối ưu kết nối mạng và latency
Connection pooling và connection management
Monitoring và troubleshooting hiệu năng
Thực hành: Tối ưu hiệu năng database (2 bài tập)
Phần 15: Phát triển dự án thực tế
Phân tích yêu cầu dự án
Thiết kế kiến trúc hệ thống
Lựa chọn công nghệ và framework
Ước tính tài nguyên và ngân sách
Lập kế hoạch triển khai
Thực hành: Thiết kế và lập documentation cho dự án (1 bài tập)
Triển khai code theo thiết kế
Unit testing và integration testing
Performance testing và load testing
Monitoring và logging
CI/CD pipeline setup
Thực hành: Triển khai và kiểm thử dự án (2 bài tập)