Ưu đãi trong tuần: Nhập mã UD50 giảm 50k cho đơn từ 300k!
Trang chủ
Menu

Microservices with Node JS and React

Microservices với Node JS và React

Microservices với Node JS và React

Xây dựng, triển khai và mở rộng ứng dụng Thương mại Điện tử sử dụng Microservices được xây dựng bằng Node, React, Docker và Kubernetes

4.8
(19,955 đánh giá)
138,986 học viên
Giảng viên
Stephen Grider
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
79.000đ 399.000đ -80%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
54.5 giờ video
682 bài giảng
1 bài quiz
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 26/09/2026

Bạn sẽ học được gì

Thiết kế kiến trúc cho các ứng dụng lớn, có khả năng mở rộng bằng cách sử dụng một tập hợp các microservices
Triển khai ứng dụng đa dịch vụ lên cloud với Docker và Kubernetes
Giải quyết các vấn đề xử lý đồng thời trong môi trường hệ thống phân tán
Tận dụng kỹ năng Javascript của bạn để xây dựng một ứng dụng web phức tạp
Xây dựng ứng dụng React được Render phía Máy chủ để hiển thị dữ liệu từ các microservices của bạn
Hiểu cách các công ty doanh nghiệp thiết kế cơ sở hạ tầng của họ
Chia sẻ mã code có thể tái sử dụng giữa nhiều máy chủ Express bằng các gói NPM tùy chỉnh
Viết các bài kiểm tra toàn diện để đảm bảo mỗi dịch vụ hoạt động như thiết kế
Truyền dữ liệu giữa các dịch vụ bằng một event bus cực nhanh
Chỉ viết code chất lượng production. Không làm qua loa!

Yêu cầu

Yêu cầu kiến thức cơ bản về Javascript và Express
Biết React là một lợi thế, nhưng không bắt buộc
Bạn phải quen thuộc và thoải mái khi sử dụng dòng lệnh (command line)

Đối tượng phù hợp

Dành cho kỹ sư Javascript muốn xây dựng các ứng dụng lớn, có khả năng mở rộng
Khóa học này *không* được thiết kế cho các quản trị viên hệ thống chỉ tập trung vào việc triển khai hạ tầng

Nội dung khóa học

26 phần • 654 bài giảng
1 Cách Nhận Trợ Giúp
2 Tài Nguyên Khóa Học
3 Microservice là gì?
4 Dữ Liệu trong Microservices
5 Những Vấn Đề Lớn với Dữ Liệu
6 Giao Tiếp Đồng Bộ Giữa Các Dịch Vụ
7 Giao Tiếp Dựa Trên Sự Kiện
8 Một Cách Lưu Trữ Dữ Liệu Khác Thường
9 Ưu và Nhược Điểm của Giao Tiếp Bất Đồng Bộ
1 Quan trọng - Boilerplate Tùy chọn
2 Tổng Quan Ứng Dụng
3 Thiết Lập Dự Án
4 Tạo Dịch Vụ Bài Viết (Posts Service)
5 Kiểm Tra Dịch Vụ Bài Viết
6 Triển Khai Dịch Vụ Bình Luận (Comments Service)
7 Kiểm Tra Nhanh Dịch Vụ Bình Luận
8 Lưu ý về Ứng Dụng React
9 Xử Lý Cảnh Báo về Default Export và ReactDom.render
10 Thiết Lập Dự Án React
11 Xây Dựng Tính Năng Gửi Bài Viết
12 Xử Lý Lỗi CORS
13 Lấy và Hiển Thị Bài Viết
14 Tạo Bình Luận
15 Hiển Thị Bình Luận
16 Ứng Dụng React Hoàn Chỉnh
17 Chiến Lược Tối Thiểu Hóa Yêu Cầu
18 Một Giải Pháp Bất Đồng Bộ
19 Câu Hỏi Thường Gặp Về Sự Kiện Bất Đồng Bộ
20 Tổng Quan Về Event Bus
21 Lưu Ý Quan Trọng về Node và Unhandled Promise Rejections
22 Triển Khai Cơ Bản Event Bus
23 Phát Ra Sự Kiện (Emitting Events)
24 Phát Sự Kiện Tạo Bình Luận
25 Nhận Sự Kiện
26 Tạo Dịch Vụ Truy Vấn Dữ Liệu (Query Service)
27 Phân Tích Sự Kiện Đến
28 Sử Dụng Dịch Vụ Truy Vấn
29 Thêm Một Tính Năng Đơn Giản
30 Vấn Đề với Lọc Bình Luận
31 Cách Tiếp Cận Thứ Hai
32 Cách Xử Lý Cập Nhật Tài Nguyên
33 Tạo Dịch Vụ Kiểm Duyệt (Moderation Service)
34 Thêm Tính Năng Kiểm Duyệt Bình Luận
35 Nhắc Lại về Bắt Lỗi (Error Catching)
36 Xử Lý Kiểm Duyệt
37 Cập Nhật Nội Dung Bình Luận
38 Kiểm Tra Nhanh
39 Hiển Thị Bình Luận Theo Trạng Thái
40 Xử Lý Sự Kiện Bị Thiếu
41 Cập Nhật Xử Lý Lỗi Bắt Buộc cho Dịch Vụ Truy Vấn
42 Triển Khai Đồng Bộ Sự Kiện (Event Sync)
43 Đồng Bộ Sự Kiện Trong Thực Tế
1 Vấn Đề Triển Khai
2 Tại Sao Lại Dùng Docker?
3 Tại Sao Lại Dùng Kubernetes?
4 Chưa Biết Docker? Xem Phần Này.
5 Lưu Ý Về Docker Build Output và Buildkit
6 Docker Hóa Dịch Vụ Bài Viết
7 Ôn Lại Một Số Lệnh Cơ Bản
8 Docker Hóa Các Dịch Vụ Khác
1 Cài Đặt Kubernetes
2 LƯU Ý QUAN TRỌNG cho Người Dùng Minikube và MicroK8s
3 Tham Quan Kubernetes
4 Thuật Ngữ Kubernetes Quan Trọng
5 Lưu Ý về Tệp Cấu Hình
6 Tạo Một Pod
7 Lỗi ErrImagePull, ErrImageNeverPull và ImagePullBackoff
8 Hiểu Về Pod Spec
9 Các Lệnh Kubectl Thông Dụng
10 Bí Danh Tiết Kiệm Thời Gian
11 Giới Thiệu Deployments
12 Tạo Một Deployment
13 Các Lệnh Thông Dụng Liên Quan đến Deployments
14 Cập Nhật Deployments
15 Phương Pháp Ưa Thích để Cập Nhật Deployments
16 Mạng Với Các Dịch Vụ (Services)
17 Tạo Một Dịch Vụ NodePort
18 Truy Cập Dịch Vụ NodePort
19 Thiết Lập Các Dịch Vụ Cluster IP
20 Xây Dựng Deployment cho Event Bus
21 Thêm Các Dịch Vụ ClusterIP
22 Cách Giao Tiếp Giữa Các Dịch Vụ
23 Cập Nhật Địa Chỉ Dịch Vụ
24 Xác Minh Giao Tiếp
25 Thêm Query, Moderation và Comments
26 Kiểm Tra Giao Tiếp
27 Dịch Vụ Cân Bằng Tải (Load Balancer Services)
28 Load Balancers và Ingress
29 QUAN TRỌNG - KHÔNG ĐƯỢC BỎ QUA - Thông Tin Cài Đặt Ingress Nginx
30 Cài Đặt Ingress-Nginx
31 Cập Nhật Bắt Buộc Ingress v1 API + Cảnh Báo pathType
32 Viết Tệp Cấu Hình Ingress
33 Lưu Ý Quan Trọng Về Cổng 80
34 Điều Chỉnh Tệp Hosts
35 Lưu Ý Quan Trọng để Thêm Biến Môi Trường
36 Triển Khai Ứng Dụng React
37 Đường Dẫn Route Duy Nhất
38 Cấu Hình Route Cuối Cùng
39 Giới Thiệu Skaffold
40 Cập Nhật API version cho Skaffold
41 Thiết Lập Skaffold
42 Khởi Chạy Skaffold Lần Đầu
43 Một Số Lưu Ý về Skaffold
1 Các Vấn Đề Lớn Cần Giải Quyết
2 Tổng Quan Ứng Dụng
3 Các Loại Tài Nguyên (Resource Types)
4 Các Loại Dịch Vụ (Service Types)
5 Sự Kiện và Thiết Kế Kiến Trúc
6 Lưu ý về Typescript
7 Thiết Lập Dịch Vụ Xác Thực (Auth Service)
8 Thiết Lập Auth trên K8s
9 Thêm Skaffold
10 Lưu ý về Tải Lại Mã Code
11 Cập Nhật Bắt Buộc Ingress v1 API
12 Thiết Lập Ingress-Nginx
13 Tệp Hosts và Cảnh Báo Bảo Mật
1 Lưu ý về Phát Triển Từ Xa
2 Phát Triển Từ Xa với Skaffold
3 Dùng Thử Miễn Phí Google Cloud và Tín Dụng
4 Thiết Lập Ban Đầu Google Cloud
5 Tạo Cụm Kubernetes với Autopilot
6 Ngữ Cảnh Kubectl (Kubectl Contexts)
7 Khởi Tạo GCloud SDK
8 Cài Đặt Ngữ Cảnh GCloud
9 Cập Nhật Cấu Hình Skaffold
10 Thêm Các Cập Nhật Skaffold
11 Tạo Một Load Balancer
12 Cấu Hình Cuối Cùng và Kiểm Tra
1 Tạo Trình Xử Lý Route (Route Handlers)
2 Tạo Khung Các Route (Scaffolding Routes)
3 Thêm Xác Thực (Validation)
4 Xử Lý Lỗi Xác Thực
5 Vấn Đề HTTPS với Postman
6 Độ Phức Tạp Đáng Ngạc Nhiên Xung Quanh Lỗi
7 Các Nguồn Lỗi Khác
8 Giải Pháp Xử Lý Lỗi
9 Xây Dựng Middleware Xử Lý Lỗi
10 Truyền Thêm Thông Tin đến Trình Xử Lý Lỗi
11 Mã Hóa Thêm Thông Tin Trong Một Lỗi
12 Tạo Lớp Con cho Lỗi Tùy Chỉnh (Subclassing for Custom Errors)
13 Xác Định Loại Lỗi
14 Thuộc tính 'param' không tồn tại trên kiểu 'AlternativeValidationError'
15 Chuyển Đổi Lỗi Thành Phản Hồi
16 Chuyển Logic Vào Trong Lỗi
17 'serializeErrors' không thể gán cho thuộc tính cùng tên trong kiểu cơ sở 'CustomError'
18 Xác Minh Lỗi Tùy Chỉnh Của Chúng Ta
19 Mã Code Liên Quan Đến Lỗi Cuối Cùng
20 Cách Định Nghĩa Lỗi Tùy Chỉnh Mới
21 Ồ... Xử Lý Lỗi Bất Đồng Bộ
1 Tạo Cơ Sở Dữ Liệu trong Kubernetes
2 Kết Nối với MongoDB
3 Hiểu Luồng Đăng Ký (Signup Flow)
4 Làm Cho TypeScript và Mongoose Hợp Tác
5 Tạo Mô Hình Người Dùng (User Model)
6 Kiểm Tra Kiểu Cho Thuộc Tính Người Dùng
7 Thêm Thuộc Tính Tĩnh (Static Properties) vào Mô Hình
8 Định Nghĩa Thuộc Tính Tài Liệu Bổ Sung
9 Dấu Ngoặc Nhọn Kia Để Làm Gì?
10 Tạo Người Dùng
11 Xử Lý Lỗi Đúng Cách
12 Lưu ý về Băm Mật Khẩu (Password Hashing)
13 Nhắc Lại về Băm Mật Khẩu
14 Thêm Băm Mật Khẩu
15 So Sánh Mật Khẩu Đã Băm
16 Mongoose Pre-Save Hooks
1 Chiến Lược Xác Thực Cơ Bản
2 Vấn Đề Lớn với Các Chiến Lược Xác Thực
3 Vậy Chọn Lựa Chọn Nào?
4 Giải Quyết Vấn Đề với Lựa Chọn #2
5 Nhắc Lại về Cookies vs JWT's
6 Yêu Cầu Xác Thực cho Microservices
7 Vấn Đề với JWT's và Render Phía Máy Chủ
8 Cookies và Mã Hóa
9 Thêm Hỗ Trợ Phiên (Session Support)
10 Tạo JWT
11 Khóa ký JWT
12 Lưu trữ bí mật an toàn với Kubernetes
13 Tạo và truy cập Secrets
14 Truy cập biến môi trường trong Pod
15 Các thuộc tính phản hồi thông dụng
16 Định dạng thuộc tính JSON
17 Luồng Đăng nhập
18 Middleware xác thực yêu cầu thông dụng
19 Logic Đăng nhập
20 Kiểm tra Đăng nhập nhanh
21 Xử lý Người dùng hiện tại
22 Trả về Người dùng hiện tại
23 Đăng xuất
24 Tạo Middleware Người dùng hiện tại
25 Mở rộng định nghĩa kiểu dữ liệu
26 Yêu cầu xác thực để truy cập route
1 Phạm vi kiểm thử
2 Mục tiêu kiểm thử
3 Kiến trúc kiểm thử
4 Tái cấu trúc từ Index sang App
5 Thay thế cờ cài đặt --only=prod
6 Một vài phụ thuộc
7 Cập nhật cần thiết cho MongoMemoryServer
8 Thiết lập môi trường kiểm thử
9 Kiểm thử đầu tiên
10 Lưu ý quan trọng
11 Kiểm thử dữ liệu đầu vào không hợp lệ
12 Yêu cầu email duy nhất
13 Thay đổi Node Env trong khi kiểm thử
14 Kiểm thử chức năng Đăng nhập
15 Lỗi Cookie Request có thể không xác định
16 Kiểm thử Đăng xuất
17 Vấn đề với Cookies trong khi kiểm thử
18 Lỗi "No Overload Matches This Call" với Cookie
19 Giải pháp xác thực đơn giản
20 Lỗi TS "globalThis has no index signature"
21 Hàm hỗ trợ xác thực
22 Kiểm thử yêu cầu không xác thực
1 Khởi chạy ứng dụng React
2 Nhắc lại về Server Side Rendering
3 Gợi ý về cảnh báo Default Export
4 Cơ bản về Next JS
5 Xây dựng Next Image
6 Chạy Next trong Kubernetes
7 Cập nhật nhỏ cho cấu hình Webpack tùy chỉnh
8 Lưu ý về phát hiện thay đổi file
9 Thêm CSS toàn cục
10 Thêm biểu mẫu Đăng ký
11 Xử lý đầu vào Email và Mật khẩu
12 Đăng ký tài khoản thành công
13 Xử lý lỗi xác thực
14 Hook useRequest
15 Sử dụng hook useRequest
16 Callback onSuccess
17 Tổng quan về Server Side Rendering
18 Lưu ý về lỗi ECONNREFUSED
19 Tải dữ liệu trong quá trình SSR
20 Tại sao xảy ra lỗi?
21 Hai giải pháp khả thi
22 Giao tiếp dịch vụ qua Namespace
23 GetInitialProps được gọi khi nào?
24 Trên Server hay trên Browser
25 Namespace và Service Ingress-Nginx - Cập nhật quan trọng
26 Chỉ định Host
27 Truyền Cookies qua
28 API Client có thể tái sử dụng
29 Nội dung trên Trang chủ
30 Biểu mẫu Đăng nhập
31 Header có thể tái sử dụng
32 Di chuyển GetInitialProps
33 Vấn đề với GetInitialProps tùy chỉnh trong App
34 Xử lý nhiều GetInitialProps
35 Truyền Props qua
36 Lỗi: Invalid with child
37 Xây dựng Header
38 Hiển thị liên kết có điều kiện
39 Đăng xuất
40 Bắt kịp & Kiểm tra ứng dụng React
1 Logic chia sẻ giữa các services
2 Các lựa chọn chia sẻ mã
3 Tổ chức NPM
4 Xuất bản module NPM
5 Thiết lập dự án
6 Lỗi chính tả trong trường "files" của package.json - Không bỏ qua
7 Lệnh xuất bản đơn giản
8 Di chuyển mã chia sẻ
9 Cập nhật câu lệnh import
10 Lệnh cập nhật NPM
11 Cập nhật module chung
1 Tổng quan về Ticket Service
2 Thiết lập dự án
3 Chạy Ticket Service
4 Mongo Connection URI
5 Cập nhật xác thực nhanh
6 Phương pháp Kiểm thử trước
7 Tạo Router
8 Thêm bảo vệ xác thực
9 Giả lập xác thực trong khi kiểm thử
10 Sửa lỗi session cần thiết và nhắc nhở đăng nhập toàn cục
11 Xây dựng Session
12 Kiểm thử xác thực yêu cầu
13 Xác thực Title và Price
14 Nhắc lại về Mongoose với TypeScript
15 Định nghĩa Ticket Model
16 Tạo mới qua Route Handler
17 Kiểm thử route Show
18 Thất bại không ngờ!
19 Lỗi đó là gì?!
20 Ghi log lỗi tốt hơn
21 Hoàn thiện triển khai route Index
22 Cập nhật Ticket
23 Xử lý cập nhật
24 Kiểm tra quyền
25 Thay đổi cập nhật cuối cùng
26 Kiểm thử thủ công
1 Tiếp theo là gì?
2 Trạng thái NATS Server - LƯU Ý QUAN TRỌNG
3 Ba mục quan trọng
4 Tạo Deployment NATS Streaming
5 Lưu ý quan trọng về NATS Streaming
6 Xây dựng dự án kiểm thử NATS
7 Port-Forwarding với Kubectl
8 Xuất bản sự kiện
9 Thay đổi lệnh cần thiết nhỏ
10 Lắng nghe dữ liệu
11 Truy cập dữ liệu sự kiện
12 Tạo Client ID
13 Nhóm Queue
14 Chế độ Ack thủ công
15 Kiểm tra sức khỏe Client
16 Tắt Client an toàn
17 Vấn đề đồng thời cốt lõi
18 Câu hỏi thường gặp
19 [Tùy chọn] Các giải pháp đồng thời khả thi khác
20 Giải quyết vấn đề đồng thời
21 Kiểm soát đồng thời với ứng dụng Tickets
22 Chuyển phát lại sự kiện
23 Đăng ký bền vững
1 NATS Listeners có thể tái sử dụng
2 Lớp trừu tượng Listener
3 Mở rộng Listener
4 Tái cấu trúc nhanh
5 Tận dụng TypeScript để xác thực Listener
6 Enum Subjects
7 Giao diện sự kiện tùy chỉnh
8 Áp đặt Subjects cho Listener
9 Lưu ý nhanh: 'readonly' trong Typescript
10 Áp đặt kiểu dữ liệu
11 Được sử dụng ở đâu?
12 Publisher tùy chỉnh
13 Sử dụng Publisher tùy chỉnh
14 Chờ xuất bản sự kiện
15 Tóm tắt định nghĩa sự kiện chung
16 Cập nhật module chung
17 Khởi động lại NATS
1 Xuất bản tạo Ticket
2 Thêm về xuất bản
3 NATS Client Singleton
4 Cài đặt Node Nats Streaming
5 Còn nhớ Mongoose?
6 Lỗi TS - Bạn quên thêm 'void' trong đối số kiểu?
7 Triển khai Singleton
8 Truy cập NATS Client
9 Tắt an toàn
10 Lắng nghe thành công!
11 Xuất bản cập nhật Ticket
12 Xuất bản sự kiện thất bại
13 Xử lý lỗi xuất bản
14 Sửa một số kiểm thử
15 Chuyển hướng import
16 Cung cấp triển khai giả lập
17 Giả lập toàn bộ bộ kiểm thử
18 Đảm bảo gọi giả lập
19 Biến môi trường NATS
1 Orders Service
2 Tạo khung Orders Service
3 Thêm một chút thiết lập
4 Quy tắc định tuyến Ingress
5 Tạo khung một số Route Handlers
6 Liên kết dịch vụ tinh tế
7 Liên kết Orders và Tickets
8 Thiết lập Order Model
9 Nhu cầu về Enum
10 Tạo Enum Order Status
11 Thêm về Mongoose Refs
12 Định nghĩa Ticket Model
13 Logic tạo Order
14 Tìm Tickets đã đặt
15 Phương thức Document tiện lợi
16 Thời gian hết hạn Order
17 Lỗi TS "globalThis has no index signature"
18 Thiết lập Bộ Kiểm thử
19 Cập nhật nhỏ cho "Giá trị kiểu 'typeof ObjectId' không thể gọi được"
20 Xác nhận Vé tồn tại
21 Xác nhận Vé đã đặt
22 Kiểm thử Trường hợp Thành công
23 Lấy danh sách Đơn hàng của Người dùng
24 Bài kiểm thử Hơi Phức tạp
25 Lấy thông tin Đơn hàng riêng lẻ
26 Việc Lấy dữ liệu có hoạt động không?
27 Hủy Đơn hàng
28 Chúng ta có thể Hủy không?
1 Sự kiện Dịch vụ Đơn hàng
2 Tạo các Sự kiện
3 Triển khai Bộ Phát hành
4 Phát hành Sự kiện Tạo đơn hàng
5 Phát hành Sự kiện Hủy đơn hàng
6 Kiểm thử Việc Phát hành Sự kiện
1 Lưu ý về Một số Lỗi TS trong Mongoose
2 Đến lúc cho Bộ Lắng nghe!
3 Nhắc lại về Bộ Lắng nghe
4 Bản thiết kế cho Bộ Lắng nghe
5 Một vài Lưu ý thêm
6 Triển khai onMessage Đơn giản
7 Điều chỉnh ID
8 Triển khai Bộ lắng nghe Cập nhật vé
9 Khởi tạo các Bộ lắng nghe
10 Kiểm thử Thủ công Nhanh
11 Xóa Vấn đề Đồng thời
12 Nhắc lại về Phiên bản hóa Bản ghi
13 Kiểm soát Đồng thời Lạc quan (OCC)
14 Mongoose Update-If-Current
15 Triển khai OCC với Mongoose
16 Lỗi: Hàm kiểm thử không thể vừa dùng callback 'done' vừa trả về giá trị
17 Kiểm thử OCC
18 Một Bài kiểm thử nữa
19 Ai Cập nhật Phiên bản?
20 Bao gồm Phiên bản trong Sự kiện
21 Cập nhật Định nghĩa Sự kiện Vé
22 Lỗi TS: Thiếu thuộc tính 'version' sau khi chạy Skaffold
23 Áp dụng Truy vấn Phiên bản
24 Nó có hoạt động không?
25 Phương thức Truy vấn Trừu tượng
26 [Tùy chọn] Phiên bản hóa không dùng Update-If-Current
27 Kiểm thử Bộ lắng nghe
28 Bài kiểm thử Bộ lắng nghe Hoàn chỉnh
29 Kiểm thử Lệnh Gọi Ack
30 Kiểm thử Bộ lắng nghe Cập nhật vé
31 Kiểm thử Trường hợp Thành công
32 Sự kiện Không theo Thứ tự
33 Các Video tiếp theo
34 Sửa một số Bài kiểm thử
35 Bộ lắng nghe trong Dịch vụ Vé
36 Xây dựng Bộ lắng nghe
37 Chiến lược Khóa Vé
38 Đặt trước một Vé
39 Thiết lập để Kiểm thử Đặt trước
40 Triển khai Kiểm thử
41 Thiếu Sự kiện Cập nhật
42 Thuộc tính Private vs Protected
43 Phát hành trong khi Lắng nghe
44 Đối số Hàm Mock
45 Bộ lắng nghe Hủy đơn hàng
46 Bài kiểm thử Cực nhanh
47 Đừng quên Lắng nghe!
48 Từ chối Chỉnh sửa Vé đã đặt
1 Dịch vụ Hết hạn
2 Tùy chọn Hết hạn
3 Thiết lập Ban đầu
4 Lỗi Skaffold - Không thể tải Image Hết hạn
5 Một chút Thiết lập Kubernetes
6 Thiết lập Đồng bộ File
7 Tạo Bộ lắng nghe
8 Bull là gì?
9 Tạo Hàng đợi
10 Đưa Công việc vào Hàng đợi khi Sự kiện đến
11 Kiểm thử Xử lý Công việc
12 Trì hoãn Xử lý Công việc
13 Định nghĩa Sự kiện Hoàn thành Hết hạn
14 Phát hành Sự kiện khi Xử lý Công việc
15 Xử lý Sự kiện Hết hạn
16 Phát ra Sự kiện Hủy đơn hàng
17 Kiểm thử Bộ lắng nghe Hoàn thành Hết hạn
18 Kiểm thử thêm một chút
19 Lắng nghe Sự kiện Hết hạn
1 Dịch vụ Thanh toán
2 Lỗi TS: globalThis không có chữ ký chỉ mục
3 Thiết lập Ban đầu
4 Trường được Nhân bản
5 Một Mô hình Đơn hàng nữa!
6 Update-If-Current
7 Nhân bản Đơn hàng
8 Kiểm thử Tạo đơn hàng
9 Đánh dấu Đơn hàng đã Hủy
10 Kiểm thử Hủy
11 Bắt đầu các Bộ lắng nghe
12 Luồng Thanh toán với Stripe
13 Triển khai Xử lý Tạo Phí
14 Xác thực Thanh toán Đơn hàng
15 Kiểm thử Xác thực Đơn hàng trước Thanh toán
16 Kiểm thử Xác thực Cùng Người dùng
17 Thiết lập Stripe
18 Tạo Khóa bí mật Stripe
19 Tạo Phí với Stripe
20 Kiểm thử Thủ công Thanh toán
21 Kiểm thử Thanh toán Tự động
22 Mock Client Stripe
23 Thiết lập Kiểm thử Thực tế hơn
24 Triển khai Kiểm thử Thực tế
25 Liên kết Đơn hàng và Phí
26 Kiểm thử Tạo Thanh toán
27 Phát hành Sự kiện Tạo thanh toán
28 Thêm về Phát hành
29 Đánh dấu Đơn hàng là Hoàn thành
30 Thông tin Quan trọng về Bài giảng tiếp theo - Đừng Bỏ qua!
31 Đừng Hủy Đơn hàng Đã hoàn thành!
1 Một vài Trang nữa
2 Nhắc lại về Lấy dữ liệu với Next
3 Hai Sửa lỗi Nhanh
4 Tạo khung Form
5 Làm sạch Đầu vào Giá
6 Tạo Vé
7 Liệt kê Tất cả Vé
8 Nhắc lại về Lỗi Invalid với child
9 Liên kết đến Route Wildcard
10 Tạo Đơn hàng
11 Điều hướng Theo chương trình đến Route Wildcard
12 Bộ đếm Thời gian Hết hạn
13 Hiển thị Thời gian Hết hạn
14 Hiển thị Form Thanh toán Stripe
15 Lỗi: Không tìm thấy module 'prop-types'
16 Cấu hình Stripe
17 Số Thẻ tín dụng Kiểm thử
18 Thanh toán cho Đơn hàng
19 Lọc Vé đã đặt
20 Liên kết Header
21 Hiển thị Danh sách Đơn hàng
1 Quy trình Phát triển
2 Cách tiếp cận Kho lưu trữ Git
3 Tạo GitHub Action
4 Thêm Script Kiểm thử CI
5 Kiểm thử trong GitHub Actions treo - Jest không thoát
6 Chạy Kiểm thử khi tạo PR
7 Kết quả Kiểm thử Thất bại
8 Chạy Kiểm thử Song song
9 Xác minh Lần chạy Kiểm thử
10 Thực thi Kiểm thử Có chọn lọc
11 Tùy chọn Triển khai
12 Tạo Cluster được Lưu trữ
13 Nhắc lại về Ngữ cảnh Kubernetes
14 Nhắc lại về Việc Chuyển đổi Ngữ cảnh
15 Kế hoạch Triển khai
16 Xây dựng Image trong một Action
17 Kiểm thử Xây dựng Image
18 Khởi động lại Triển khai
19 Áp dụng Kubernetes Manifests
20 File Manifest Prod vs Dev
21 Tạo Secret Thủ công
22 Đừng quên Ingress-Nginx!
23 Kiểm thử Triển khai Tự động
24 File Triển khai Bổ sung
25 Triển khai Thành công!
26 Mua Tên miền
27 Ba Thay đổi Quan trọng Cần thiết để Triển khai - Đừng Bỏ qua!
28 Cấu hình Tên miền
29 Tôi thực sự hy vọng Điều này hoạt động
30 Bước tiếp theo
1 Mã hoàn chỉnh và Sơ đồ
2 Tại sao dùng Docker?
3 Docker là gì?
4 Docker cho Mac / Windows
5 Cài đặt Docker trên macOS
6 Cài đặt Docker với WSL2 trên Windows 10/11
7 Cài đặt Docker trên Linux
8 Sử dụng Docker Client
9 Nhưng thực sự... Container là gì?
10 Docker chạy trên Máy tính của bạn như thế nào?
11 Chi tiết Docker Run
12 Ghi đè Lệnh Mặc định
13 Liệt kê Container đang chạy
14 Vòng đời Container
15 Khởi động lại Container đã dừng
16 Xóa Container đã dừng
17 Lấy Nhật ký Đầu ra
18 Dừng Container
19 Container Đa lệnh
20 Thực thi Lệnh trong Container đang chạy
21 Mục đích của Cờ 'it'
22 Lấy Command Prompt trong Container
23 Bắt đầu với Shell
24 Cô lập Container
25 Tạo Docker Images
26 Buildkit cho Docker Desktop
27 Xây dựng Dockerfile
28 Phân tích Dockerfile
29 Base Image là gì?
30 Quy trình Build chi tiết
31 Tóm tắt nhanh
32 Rebuild với Cache
33 Gắn Tag cho Image
34 Lưu ý nhanh cho người dùng Windows
35 Tạo Image thủ công bằng Docker Commit
36 Tổng quan dự án
37 Thiết lập Node Server
38 Nhắc lại về Build Kit
39 Một số lỗi được tạo sẵn
40 Vấn đề với Base Image
41 Thiếu một số file
42 Sao chép file build
43 Chuyển tiếp cổng Container
44 Chỉ định thư mục làm việc
45 Rebuild không cần thiết
46 Tối thiểu hóa Cache Busting và Rebuild
1 Cách nhận trợ giúp
2 Tổng quan TypeScript
3 Thiết lập môi trường
4 Cập nhật quan trọng về ts-node và Axios
5 Ứng dụng đầu tiên
6 Thực thi mã TypeScript
7 Một thay đổi nhanh
8 Bắt lỗi với TypeScript
9 Bắt thêm nhiều lỗi!
10 Đừng bỏ qua - Tổng quan khóa học
11 Các kiểu dữ liệu
12 Thêm về kiểu dữ liệu
13 Ví dụ về kiểu dữ liệu
14 Sử dụng kiểu dữ liệu ở đâu?
15 Chú thích kiểu và Suy luận kiểu
16 Chú thích với Biến số
17 Chú thích Object Literal
18 Chú thích quanh Hàm
19 Hiểu về Suy luận kiểu
20 Kiểu Any
21 Sửa kiểu "Any"
22 Khởi tạo trễ
23 Khi Suy luận không hoạt động
24 Thêm về chú thích quanh Hàm
25 Suy luận quanh Hàm
26 Chú thích cho Hàm ẩn danh
27 Void và Never
28 Phân rã với Chú thích
29 Chú thích quanh Objects
30 Mảng trong TypeScript
31 Tại sao dùng Mảng có kiểu?
32 Nhiều kiểu trong Mảng
33 Khi nào dùng Mảng có kiểu
34 Tuple trong TypeScript
35 Tuple trong thực tế
36 Tại sao dùng Tuple?
37 Interface
38 Chú thích kiểu dài
39 Sửa chú thích với Interface
40 Cú pháp Interface
41 Hàm trong Interface
42 Tái sử dụng mã với Interface
43 Kế hoạch tổng quát với Interface
44 Classes
45 Kế thừa cơ bản
46 Bổ từ phương thức Class
47 Trường trong Classes
48 Trường với Kế thừa
49 Nơi sử dụng Classes
50 Tổng quan ứng dụng
51 Hướng dẫn Parcel cập nhật
52 Đóng gói với Parcel
53 Cấu trúc dự án
54 Thông tin QUAN TRỌNG về cài đặt Faker
55 Tạo dữ liệu ngẫu nhiên
56 File định nghĩa kiểu
57 Sử dụng file định nghĩa kiểu
58 Câu lệnh Export trong TypeScript
59 Định nghĩa Company
60 Lưu ý quan trọng về Google Maps Key
61 Thêm hỗ trợ Google Maps
62 Cập nhật bắt buộc cho thư viện @types mới
63 Tích hợp Google Maps với TypeScript
64 Khám phá file định nghĩa kiểu
65 Ẩn chức năng
66 Tại sao dùng Private Modifiers? Đây là lý do
67 Thêm Markers
68 Mã trùng lặp
69 Một giải pháp khả thi
70 Hạn chế truy cập với Interface
71 Kiểm tra kiểu ngầm định
72 Hiển thị cửa sổ popup
73 Cập nhật định nghĩa Interface
74 Mệnh đề Implements tùy chọn
75 Kết thúc ứng dụng
1 Phần thưởng!

Giới thiệu khóa học

Event-Based Architecture? Covered! Server side rendering with React? Yep.  Scalable, production-ready code? Its here!

This course requires you to download Docker Desktop from Docker. If you are a Udemy Business user, please check with your employer before downloading software.

Microservices are the number one solution for building and scaling out apps that are intended to grow.  Just one little issue: there are few resources online that delve into the most complex and nasty issues around them!  I built this course to fix that.  This course tackles every major issues around microservices head on. From challenges with data replication to confusing unordered event streams, every major challenge of building microservices is covered. 

Beyond focusing on the basics of microservices, this course is a perfect introduction to the world of full-stack development.  You will work all the way from the frontend, assembling a React app using Hooks, to the backend, including database design and deployment strategies.  Every step along the way is covered in tremendous detail, with ample diagrams to ensure every step is crystal clear.

Many other resources show only the easiest, simplest apps written with microservices.  This course does the opposite: we focus on the most challenging aspects of microservices, challenges that you will likely encounter every single day.  You will see these difficulties first hand, then solve them with easy-to-understand strategies.


How This Course Works

This course doesn't focus on using an off-the-shelf microservices framework. Many exist, but they hide the inner workings and challenges of microservices away from you. Instead, we will be using a minimal number of libraries, and write as much custom code as possible. This will expose you to challenging problems and clever solutions when handling subjects like async events!


What Technology You'll Use

Because we are building a full stack application, we will use a variety of technologies. On the frontend, we'll use React and Next JS to present content to users. Each service is created using Node and Express. Data for each service is held in either a Mongo database or Redis. The entire app is deployed and runs in Docker containers executed in a Kubernetes cluster. Finally, almost all of the code in this course is written with Typescript.

This is a scary list of technologies! Not familiar with some of these? No problem! The course is built assuming that you only know the basics of Javascript and Express. No other knowledge is needed - you will learn everything you need to know.


What You'll Be Able to Do

By the time you complete this course, you will be able to:

  • Architect a multi-service application

  • Determine whether your app is a good fit for a microservices approach

  • Understand and solve the challenges in async, event-based communication between services

  • Use Docker and Kubernetes to deploy a multi-service app to any cloud provider

  • Organize and enhance the reusability of code in large projects


What You'll Learn

An absolute incredible number of topics are covered in this course.  Here is a partial list of what you'll do:

  • Practice patterns to create scalable microservices for a variety of app domains

  • Build a Server-Side-Rendered React app using Hooks and Next JS

  • Write a custom implementation of an event bus

  • Optionally, run a development environment through a cloud provider

  • Guarantee consistently structured responses from your different API's

  • See best practices in communication between different services

  • Configure and scale your services using Kubernetes Deployments

  • Document and enforce structure constraints on events shared across microservices

  • Limit access to your APIs using JWT-based authentication

  • And much more!

This is the course I wish I had when I was learning microservices. A course that focuses on the hardest parts, gives clear explanations, and discusses the pros and cons of different design options. Sign up today and join me in mastering microservices!

Khóa học liên quan

Khám phá thêm các khoá học cùng chủ đề

Hiển thị tất cả khoá học Backend Development
Hiển thị tất cả khoá học Microservices
Hiển thị tất cả khoá học Node Js
Hiển thị tất cả khoá học React
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊