GitHub

Công ty Dành cho thành viên
Bài đọc thử: 3/3 (đây là bài miễn phí cuối của bạn) · Xem gói thành viên

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

Tất cả bài viết của blog (202 bài)

Blog này có 202 bài – thành viên xem đầy đủ danh sách, nhóm theo năm, có link về bài gốc.

Xem gói thành viên