- Threads ra mắt vào tháng 7 năm 2023 đã đạt 100 triệu lượt đăng ký chỉ trong 5 ngày đầu tiên
- Một nhóm kỹ sư nhỏ, linh hoạt đã xây dựng Threads chỉ với 5 tháng làm việc kỹ thuật
- Việc mở rộng mượt mà khi có rất nhiều người đăng ký là kết quả của hơn 10 năm nỗ lực phát triển hạ tầng và sản phẩm
- Đây không phải là hạ tầng được xây dựng riêng cho Threads, mà tận dụng hạ tầng đã được Meta xây dựng sẵn cho rất nhiều sản phẩm
- Trên thực tế có một lượng hạ tầng khổng lồ được sử dụng, nhưng bài viết giới thiệu hai thành phần quan trọng nhất là kho khóa-giá trị phân tán ZippyDB và nền tảng hàm serverless bất đồng bộ Async
ZippyDB: Mở rộng keyspace cho Threads
- ZippyDB là cơ sở dữ liệu key/value phân tán được xây dựng từ đầu bằng cách tận dụng hạ tầng của Meta, đồng thời là một dịch vụ được quản lý hoàn toàn để các kỹ sư có thể xây dựng dựa trên đó
- Các keyspace được lưu trữ trên ZippyDB có thể mở rộng và thu hẹp tương đối dễ dàng, đồng thời có thể được triển khai linh hoạt trên nhiều trung tâm dữ liệu
- Đối với kho lưu trữ social graph, Meta sử dụng TAO (The Associations and Objects) dựa trên MySQL
- ZippyDB là cơ sở dữ liệu key/value tương ứng với MySQL, được dùng cho bộ đếm, thứ hạng/trạng thái feed, tìm kiếm và nhiều tác vụ khác
Tối ưu hóa ZippyDB và ra mắt sản phẩm
- Giao thức resharding của ZippyDB cho phép nhanh chóng tăng yếu tố sharding của các trường hợp sử dụng ZippyDB mà không ảnh hưởng tới client, đồng thời vẫn duy trì tính nhất quán và độ chính xác hoàn toàn
- Việc resharding được thực hiện không có downtime bằng cách cấp phát một tập shard vật lý mới và cài đặt ánh xạ shard logic-vật lý mới cho client thông qua thay đổi cấu hình trực tiếp
- Công việc resharding được thiết kế để có thể mở rộng theo chiều ngang, nhờ đó có thể tăng tốc độ resharding khi cần, như trong đợt ra mắt Threads
- Meta cũng phát triển một loạt công cụ vận hành khẩn cấp để dễ dàng xử lý sự tăng trưởng đột ngột của các trường hợp sử dụng
Async: Mở rộng thực thi workload cho Threads
- Async (hay XFaaS) là một nền tảng hàm serverless giúp kỹ sư rút ngắn thời gian từ ý tưởng giải pháp đến triển khai production
- Async hiện xử lý hàng nghìn tỷ lượt gọi hàm mỗi ngày và hỗ trợ nhiều ngôn ngữ lập trình như HackLang, Python, Haskell, Erlang
- Nền tảng này trừu tượng hóa các chi tiết về triển khai, queueing, scheduling, scaling, khôi phục sau thảm họa và khả năng sẵn sàng, giúp lập trình viên tập trung vào logic nghiệp vụ cốt lõi
- Async chủ yếu được dùng cho các tác vụ có thể thực hiện sau vài giây đến vài giờ mà không làm gián đoạn trải nghiệm người dùng
- Trong Threads, Async đóng vai trò quan trọng trong việc nhanh chóng hỗ trợ xây dựng cộng đồng bằng cách cho phép người dùng theo dõi trên Threads những người họ đã theo dõi trên Instagram
- Để phục vụ 100 triệu người dùng trong 5 ngày cần năng lực xử lý rất lớn, và Async đã hấp thụ tải tăng thêm một cách mượt mà đồng thời đưa vào hàng đợi để thực thi có kiểm soát
Nơi hạ tầng gặp gỡ văn hóa
- Việc phát triển nhanh chóng Threads chỉ trong 5 tháng làm việc kỹ thuật cho thấy rõ sức mạnh của hạ tầng và văn hóa kỹ thuật tại Meta
- Các sản phẩm của Meta tận dụng hạ tầng dùng chung đã được kiểm chứng qua thời gian, giúp các nhóm sản phẩm di chuyển nhanh và mở rộng các sản phẩm thành công một cách nhanh chóng
- Hạ tầng này có mức độ tự động hóa cao, nên ngoài nỗ lực bảo đảm năng lực trong thời gian ngắn, việc tái phân phối workload tự động, cân bằng tải và mở rộng đều diễn ra mượt mà và minh bạch
- Meta theo đuổi văn hóa kỹ thuật di chuyển nhanh, trong đó các kỹ sư hợp tác với tinh thần sở hữu mạnh mẽ để đạt được hiệu quả các mục tiêu chung ở quy mô lớn
3 bình luận
Quá ngầu
Nhận biết rồi~