Thiết kế một hệ thống cho 1, 2 người dùng, chạy trên máy local là vô cùng đơn giản. Tuy nhiên, một bài toán dễ đến mấy, khi scope lên đến tầm hàng triệu người dùng cũng sẽ trở thành một bài toán lớn và khó hơn rất nhiều lần.
Mặc dù quá tải hệ thống không gây cản trở quá nhiều đến việc thu hút khách hàng, nhưng chắc chắn sẽ tác động rất xấu đến trải nghiệm của họ. Hậu quả của việc mất đi những khách hàng tiềm năng sẽ khiến những chiến dịch thu hút trước đây trở nên vô nghĩa.
Thông qua khóa học, giảng viên sẽ nêu ra những khó khăn thường gặp của các hệ thống khi tải (lượng truy cập & dữ liệu) tăng cao, sau đó đưa ra các công cụ và ứng dụng của chúng trong các trường hợp cụ thể.
Tại sao lại nên chọn khóa học “Giải quyết các vấn đề trong hệ thống có lượng truy cập lớn” của Code BAC?
Bạn kiếm tiền từ trang web của bạn và có trung bình vài nghìn hoặc vài trăm nghìn lượt truy cập cùng lúc. Ngoài lý do về lợi nhuận, nếu không optimize web service, server có thể bị quá tải do requests của khách hàng → bottle neck → load-time kéo dài, thậm chí out of service.
Thay vì bỏ tiền mua server khủng hơn, hãy bỏ chút thời gian để sắp xếp và thiết kế lại service để đem lại performance ổn định với chi phí rẻ hơn
Mặt khác, không phải developer nào cũng có cơ hội để giải quyết bài toán scalability. Với các ứng dụng nhỏ,những dự án outsource, ít người đôi khi chỉ cần dùng một số giải pháp đơn giản là đã giải quyết được. Ở các công ty lớn như Facebook, Uber, Google, đây là bài toán bắt buốc phải giải.
Bạn sẽ nhận được gì sau khóa học “Giải quyết các vấn đề trong hệ thống có lượng truy cập lớn” của Code BAC?
Có kiến thức về các bài toán/vấn đề thường gặp của hệ thống lớn
Đưa ra được giải pháp để giải quyết các vấn đề trên
Đưa ra các giải pháp để làm cho quá trình phát triển hệ thống web trở nên dễ dàng hơn, thuận tiện hơn
Ai nên tham gia khóa học này?
Học viên có kinh nghiệm lập trình ít nhất 1 năm.
Những bạn chưa có điều kiện tham gia các dự án lớn
Những người định hướng trở thành Technical Architect
Nội dung khóa học.
Buổi 1:
Giới thiệu các vấn đề thường gặp:
Tải tăng cao đột biến
Truy vấn thông tin / trích xuất báo cáo quá chậm khi dữ liệu phình to
Truy vấn thông tin / trích xuất báo cáo quá chậm khi phải lồng nhiều tầng truy vấn giữa các model / đối tượng
Đảm bảo dữ liệu khi tương tác giữa các hệ thống.
Giới thiệu một số khái niệm hỗ trợ tuning & scaling:
Scale up / Scale out
Database Index / Database Partition
Embed Database
Caching
Load balancing / Content Delivery Network (CDN) / Edge API
Web API Model
Binary protocol
Thực hành:
Hướng dẫn sử dụng Apache Benchmark / Draw.io
Yêu cầu cài đặt MySQL / MongoDB
Yêu cầu cài đặt Go / Java
Yêu cầu cài đặt nginx
Buổi 2: Web API
Lý thuyết.
Web API
SPA
Giới thiệu về các công nghệ frontend hiện tại
Phương án thiết kế / cài đặt
Các trường hợp ứng dụng
Thực hành:
Dựng API service đơn giản
Dựng frontend mẫu đơn giản.
Buổi 3: Queue
Lý thuyết.
Queue là gì ?
Cách cài đặt
Ứng dụng
Thực hành.
Cài đặt queue với DB và RabbitMQ
Ứng dụng vào API
Bài tập.
API Callback update trạng thái của một đối tượng
Benchmark và so sánh với tình trạng ban đầu
Buổi 4: Queue (tt)
Lý thuyết.
Các vấn đề khi dùng Queue
Các phương án để tăng tốc
Phân luồng theo danh tính đối tượng
Ack
Last status
Thực hành.
Cài đặt mô hình theo giải pháp được học
Benchmark và so sánh với tình trạng ban đầu
Buổi 5: Database Index
Lý thuyết.
Phân loại Index
Cấu trúc index
Ứng dụng
Thực hành.
Cài đặt Index cho database
Benchmark và so sánh với tình trạng ban đầu
Buổi 6: Database Partition
Lý thuyết.
Các dạng partition thường gặp
- Cách cài đặt
Ứng dụng
Thực hành.
Cài đặt partition cho database
Benchmark và so sánh với tình trạng ban đầu
Buổi 7: Caching
Lý thuyết.
Giới thiệu: in-memory cache & centralized cache
Phương án cài đặt
Ứng dụng của từng loại
Thực hành.
Cài đặt Redis / Memcache
Cài đặt 2 loại cache
Benchmark API và so sánh với tình trạng ban đầu
Buổi 8: Load balance
Lý thuyết.
Giới thiệu: replicas / load balancer
Phương án cài đặt
Các trường hợp ứng dụng
Thực hành.
Cài đặt replica cho API service
Cài đặt load balance với nginx
Benchmark API và so sánh với tình trạng ban đầu
Buổi 9: CDN & Edge API
Lý thuyết.
Giới thiệu
Phương án thiết kế / cài đặt
Các trường hợp ứng dụng
Thực hành.
Dựng nhiều Endpoint và load balance với frontend
Buổi 10: Binary protocol
Lý thuyết.
Giới thiệu gRPC / Thrift
Phương án thiết kế / cài đặt
Các trường hợp ứng dụng
Thực hành.
Cài đặt gRPC hoặc Thrift service
Benchmark và so sánh
Buổi 11: Embed database
Lý thuyết.
Giới thiệu
Phương án thiết kế / cài đặt
Các trường hợp ứng dụng
Thực hành.
Cài đặt embed database
Benchmark và so sánh
Làm project lớn với yêu cầu áp dụng tất cả các kiến thức của khóa học
Buổi 12: : Review project, Q&A
Chấm bài tập
Đưa ra góp ý / đánh giá
Trả lời câu hỏi
6.000.000 VNĐ
6.000.000 VNĐ
Thời lượng khóa học: 1 tháng