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
Bài 1: Làm quen với HTML5 và CSS3

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)

Bài 2: Layout với Flexbox và Grid

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)

Bài 3: CSS nâng cao và SASS

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)

Bài 4: JavaScript cơ bản

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)

Bài 5: DOM và Events

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)

Bài 6: Asynchronous JavaScript

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
Bài 7: Giới thiệu Next.js và cài đặt môi trường

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)

Bài 8: Routing và Navigation trong Next.js

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)

Bài 9: Data Fetching và Rendering

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)

Bài 10: Styling và Tối ưu hóa

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)

Bài 11: API Routes và Authentication

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
Bài 12: Giới thiệu về Docker và Kiến trúc 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)

Bài 13: Làm việc với Docker Image và Container

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)

Bài 14: Dockerfile và Image Building

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)

Bài 15: Docker Network và Storage

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)

Bài 16: Docker Compose và Orchestration

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
Bài 17: Tổng quan về 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)

Bài 18: Làm việc với Encore CLI

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)

Bài 19: Thiết kế API với Encore

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)

Bài 20: Tích hợp Cloud Infrastructure

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)

Bài 21: Testing và Debugging trong Encore

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
Bài 22: Nền tảng 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)

Bài 23: Phân tách và Thiết kế Services

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)

Bài 24: Giao tiếp giữa các Services

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)

Bài 25: Service Discovery và Load Balancing

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)

Bài 26: Monitoring và Troubleshooting

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
SQL và NoSQL

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
Bài 27: Kiến trúc Publish/Subscribe

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)

Bài 28: Google Cloud Pub/Sub và AWS SNS/SQS

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)

Bài 29: Xử lý sự kiện và Monitoring

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
Bài 30: Tổng quan về API Gateway

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)

Bài 31: Quản lý và Bảo mật API

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)

Bài 32: Service Mesh và Quản lý Traffic

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
Bài 33: Tổng quan về Monitoring và Observability

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)

Bài 34: Prometheus và Grafana

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)

Bài 35: Distributed Tracing và Log Management

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
Bài 36: Cơ bản về OAuth 2.0 và OpenID Connect

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)

Bài 37: JWT và Xác thực API

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)

Bài 38: HTTPS, TLS và Bảo mật ứng dụng

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
DevOps Practices

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
Bài 39: Tích hợp OpenAI API và Xử lý ngôn ngữ tự nhiên

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)

Bài 40: Fine-tuning và Triển khai mô hình

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)

Bài 41: Hệ thống RAG và Vector Database

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)

Bài 42: Tối ưu hóa và Đánh giá hệ thống AI

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
Bài 43: Kiến trúc Serverless và FaaS

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)

Bài 44: Lưu trữ đám mây và Auto-scaling

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)

Bài 45: Bảo mật và Chiến lược Multi-cloud

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
Bài 46: Chiến lược Cache và Cân bằng tải

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)

Bài 47: Tối ưu Database và Network

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ế
Bài 48: Lập kế hoạch và thiết kế hệ thống

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)

Bài 49: Triển khai và kiểm thử

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)