BAC - Giải quyết các vấn đề trong hệ thống có lượng truy cập lớn

  • 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