- Từ 10/2010 đến 11/2011, trong khoảng 1 năm, đã tăng từ 0 lên 14 triệu người dùng. Chỉ có đúng 3 kỹ sư
- Họ tuân theo 3 nguyên tắc
- Giữ mọi thứ thật đơn giản (Keep things very simple.)
- Đừng phát minh lại bánh xe (Don’t re-invent the wheel.)
- Khi có thể, hãy dùng các công nghệ đã được kiểm chứng và vững chắc (Use proven, solid technologies when possible.)
Nhìn nhanh vào stack theo góc nhìn người dùng
- Hạ tầng ban đầu chạy Ubuntu Linux trên AWS EC2
- Ứng dụng Instagram ban đầu chỉ có trên iOS, và vì ra mắt trước khi Swift được công bố nên nhiều khả năng dùng Objective-C + UIKit
- Để cân bằng tải, họ dùng Elastic Load Balancer của Amazon và 3 instance NGINX
- Backend
- Máy chủ ứng dụng được phát triển bằng Python, dùng Django và Gunicorn làm máy chủ WSGI
- Dùng Fabric để chạy đồng thời cùng một lệnh trên nhiều instance. Nhờ đó có thể triển khai mã trong vài giây
- Vận hành 25 máy CPU hiệu năng cao loại Extra-Large. Tất cả đều stateless nên khi cần có thể dễ dàng bổ sung thêm
- Kho lưu trữ dữ liệu chung
- ID ảnh liên quan, ảnh thực tế tương ứng với ID đó, và dữ liệu người dùng về ảnh
- Máy chủ ứng dụng lấy dữ liệu từ PostgreSQL
- Dùng pgbouncer để pooling giữa Django và PostgreSQL
- Instagram dùng ID có thể sắp xếp theo thời gian: 41 bit mili giây + 13 bit shard ID + 10 bit chuỗi tự tăng
- Lưu trữ ảnh: S3 và CloudFront
- Caching: Redis và Memcached
- Nhờ hashing thông minh, họ lưu ánh xạ 300 triệu khóa trong chưa đến 5GB dung lượng
- Và 2 năm sau, Facebook công bố một bài báo về cách scale Memcached để mở rộng lên hàng tỷ request mỗi giây
- Cả Postgres và Redis đều chạy ở chế độ master-replica. Liên tục sao lưu bằng snapshot Amazon EBS
- Push notification và tác vụ bất đồng bộ: thông báo dùng pyapns. Hàng đợi tác vụ dùng Gearman
- Để giám sát lỗi theo thời gian thực, họ dùng Sentry, một ứng dụng Django mã nguồn mở; dùng Munin cho các metric toàn hệ thống; và dùng Pingdom cùng PagerDuty để giám sát dịch vụ bên ngoài
3 bình luận
Hồi đầu Instagram chỉ mang cảm giác như một ứng dụng filter ảnh kiểu màu mè thôi (nhất là thời còn cố chấp chỉ hỗ trợ iPhone). Vậy mà lại có thể thành công bùng nổ đến thế thì tôi hoàn toàn không tưởng tượng nổi. (Trí tưởng tượng của tôi chỉ đến mức đó thôi;;; )
Tôi nhớ là khi so sánh các sản phẩm từng có exit, Instagram nổi bật với mức giá trị exit trên mỗi nhân sự rất cao. Tôi nghĩ có rất nhiều điều để học hỏi từ đó.
Ý kiến trên Hacker News