GitHub
Mạch tiến hoá
Rails + một MySQL; sau đó tách vài tính năng, thêm replica, ProxySQL; nhưng lõi vẫn là cluster mysql1 được scale dọc liên tục. Từ 2019 họ tách ảo bằng schema domain + linter rồi dời vật lý bằng Vitess hoặc write-cutover tự viết; tải mỗi host giảm một nửa GitHub 2021. Song song, số developer gấp đôi làm quy trình deploy qua chatops vỡ, nên họ chuyển sang deploy tự động nhiều tầng canary GitHub 2021. Hai bài cho thấy hai trục scale: dữ liệu và tổ chức. Năm 2026, bản tự host GitHub Enterprise Server bỏ cụm Elasticsearch trải qua primary và replica (gây khoá khi bảo trì) để dùng Cross Cluster Replication GitHub 2026. Cuối 2026, GitHub bắt đầu làm lại chính hạ tầng Git (Spokes) vì tải từ agent: tách lớp bền khỏi lớp phục vụ đọc để ghi và đọc scale độc lập GitHub 2026. Ở quy mô nhỏ hơn, năm 2023 search của GitHub Docs rời index trong bộ nhớ tiến trình sang Elasticsearch khi nhân 8 ngôn ngữ × 5 phiên bản GitHub 2023. Năm 2024, data residency được làm như một target deploy thêm của cùng code, chỉ merge khi mọi target thành công GitHub 2024. Ở khâu ship, cách gom PR thành "train" từ 2016 được thay bằng merge queue trong 2021–2023, tính năng sau đó bán cho khách GitHub 2024. Năm 2024, chuẩn availability/security được áp qua scorecard đọc metadata tier và ownership nằm trong repo mỗi service GitHub 2024. Phía client, SDK JavaScript chính thức được tách từ một package cộng đồng nguyên khối thành core + plugin, định nghĩa endpoint sinh tự động từ tài liệu API (2017–2020) GitHub 2020.
Timeline
Năm = năm sự kiện theo bài (có thể sớm hơn năm đăng bài).
| Năm | Giai đoạn | Thay đổi | Nguồn |
|---|---|---|---|
| trước 2011 ("hơn 10 năm trước") | 1. Khởi đầu | Ruby on Rails + một MySQL chứa phần lớn dữ liệu. | GitHub 2021 |
| 2016 | 3. Quy mô lớn | Deploy trước merge bằng "train" gom tới 15 PR, hay trật bánh, có lần chờ hơn 8 giờ (bài 2024). | GitHub 2024 |
| 2017 | 4. Điều chỉnh | SDK @octokit/rest: định nghĩa endpoint sinh từ tài liệu mỗi đêm, tách core + plugin, v17 còn 10 dòng (2017–2020, bài 4/2020). | GitHub 2020 |
| 2019 | 3. Quy mô lớn | mysql1 950K query/giây; bắt đầu schema domain, query/transaction linter. |
GitHub 2021 |
| 2020 | 3. Quy mô lớn | Developer gấp đôi làm chatops vỡ; deploy dạng máy trạng thái: canary 2% → 20% → 100%, gate 5 phút. | GitHub 2021 |
| 2021 | 3. Quy mô lớn | Dời 130 bảng bận nhất sang cluster riêng (write-cutover vài chục ms); tải mỗi host giảm 50%. | GitHub 2021 |
| 2021 | 3. Quy mô lớn | Merge queue: gom nhóm động, tự loại PR xung đột; chuyển dần 2021–2023; 2.500 PR/tháng, thời gian chờ −33% (bài 2024). | GitHub 2024 |
| 2023 | 2. Tăng trưởng | Search của GitHub Docs: từ index trong bộ nhớ Node.js sang Elasticsearch; một query với ma trận boost và độ phổ biến. | GitHub 2023 |
| 2024 | 3. Quy mô lớn | Data residency (EU): mở rộng Enterprise Cloud trên Azure, thêm target vào pipeline deploy then merge, pipeline sinh tự động cho hơn 100 service. | GitHub 2024 |
| 2024 | 3. Quy mô lớn | Chương trình Fundamentals: tier và chủ sở hữu trong YAML của service, scorecard tự áp yêu cầu theo tier và mở issue có SLA. | GitHub 2024 |
| 2026 | 4. Điều chỉnh | Search HA cho GitHub Enterprise Server: bỏ cụm Elasticsearch trải hai node, dùng cụm một node + Cross Cluster Replication. | GitHub 2026 |
| 2026 | 4. Điều chỉnh | Làm lại hạ tầng Git cho tải agent: tách độ bền (Azure Blob) khỏi năng lực đọc (worker có cache), thu nhỏ đường găng của push; ghi tới 35 lần (benchmark nội bộ). | GitHub 2026 |
Concept liên quan
- Chọn database theo workload
- CI và build ở quy mô lớn
- Deploy và release an toàn
- Độ tin cậy và multi-region
- Failover, replica và dự phòng dữ liệu
- Hạ tầng tìm kiếm
- Hot partition và thundering herd
- Kiến trúc frontend
- Migration không downtime
- Mô hình tổ chức SRE
- Nền tảng nội bộ cho service (đường ray chung)
- Scale dọc trước khi scale ngang
- Sharding và tách database
- Tách compute khỏi storage