Ghi chú về kiến trúc của Github Page
Architecture
9
github
19
White

Bùi Hồng Hà viết ngày 03/06/2015

alt text

Github vừa công khai kiến trúc của github pages. Một điểm mà cá nhân mình thấy thú vị là sự đơn giản trong kiến trúc của họ. Mình luôn nghĩ github page nói riêng và github nói chung phải phức tạp hơn và có số lượng máy chủ nhiều hơn nhiều.

Về cơ bản github cũng phục vụ page bằng nginx đặt sau HAProxy. Mình chưa dùng HAProxy bao giờ nên không hiểu lắm mặt hiệu năng của middleware này, tuy nhiên về mặt vận hành, đặt nginx sau Haproxy sẽ giúp rolling-update nginx dễ dàng hơn. Cụ thể mỗi nginx server khi cần update sẽ được cắt khỏi dịch vụ từ layer của haproxy để cập nhật và khởi động. Ngoài ra cá nhân mình phỏng đoán, haproxy còn làm nhiệm vụ L7 balancer đến các dịch vụ khác của github.

Một điểm thú vị thứ 2 mà lần đầu tiên mình biết đấy là dùng lua để truy vấn MySQL cho page động. Việc này biến nginx thành một load balancer level 2 (level 1 là haproxy). Có vẻ nắm được lua và tương tác giữa lua và nginx là một bước không thể thiếu trong tìm hiểu nginx.

Điều thú vị cuối cùng là Fileservers của github pages chỉ có 2 máy chạy ở Active-standby mode và đồng bộ file sử dụng DRBD. DRBD có vẻ là một middleware đứng giữa buffer cache của đĩa cứng và filesystem. Điều này giúp DRBD có thể chạy tốt với LVM! Mỗi cú flush dữ liệu sẽ đi đến 2 chỗ: buffer đĩa cứng và DRBD (rồi theo đó đến NIC và máy còn lại). DRBD có vẻ có điểm tương đồng với RAID-1. Tuy vậy một nhược điểm của DRBD theo mình nhận thấy là nó chỉ cho phép chia sẻ dữ liệu giữa 2 máy. Khi bạn cần chia dữ liệu cho nhiều máy hơn và không đòi hỏi hiệu năng quá cao: GlusterFS có vẻ là lựa chọn hợp lý hơn. Việc GithubPage sử dụng 2 máy chủ và DRBD chứng tỏ phần lớn dữ liệu đều được trả về từ cache (nginx, CDN) và rất hiếm khi page trả về từ FileServer.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Bùi Hồng Hà

59 bài viết.
327 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
93 8
Bài viết tổng hợp cơ chế hoạt động của https Chút ít về chữ ký điện tử Chữ ký điện tử là cơ chế bao gồm 3 thuật toán: Thuật toán chọn một khóa...
Bùi Hồng Hà viết 6 năm trước
93 8
White
50 7
Giới thiệu Gần đây thấy bản thân chém gió rất nhiều về MapReduce, Hadoop v.v nhưng chưa thấy có bài viết nào tổng hợp + giải thích cụ thể về MapRe...
Bùi Hồng Hà viết hơn 5 năm trước
50 7
White
40 0
Giới thiệu Google là một công ty dẫn đầu về phần mềm xử lý Big Data. Hầu hết các phần mềm xử lý dữ liệu như Hadoop đều có nguồn gốc ý tưởng từ Goo...
Bùi Hồng Hà viết hơn 5 năm trước
40 0
Bài viết liên quan
White
27 3
Những phương pháp thượng thừa để biến bạn trở thành bậc thầy bới lông tìm vết à bới hệ thống tìm bottleneck. Đây cũng là những phương pháp được cá...
Minh Monmen viết 5 tháng trước
27 3
White
10 4
Performance, scalability cùng câu chuyện nỗi ám ảnh và những ảo tưởng của một developer về cái gọi là hệ thống distributed. Đó... là một câu chuyệ...
Minh Monmen viết 5 tháng trước
10 4
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
59 bài viết.
327 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!