Ghi chú về kiến trúc của Github Page
Architecture
3
github
20
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.
287 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
75 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 3 năm trước
75 8
White
44 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 2 năm trước
44 7
White
35 1
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 2 năm trước
35 1
Bài viết liên quan
White
15 2
Trờ lại trong một bài viết mới, tạm gác lại những series để viết về những câu chuyện bên lề xoay quanh cuộc đời coding, hôm nay tôi sẽ chia sẻ với ...
Hoàng Nguyễn viết hơn 1 năm trước
15 2
White
61 9
(Ảnh) Khi thiết kế các ứng dụng web, đặc biệt là đối với các ứng dụng cần xử lý các tác vụ có thời gian thực thi dài như: resize ảnh, phân tích wo...
Huy Nguyen viết 5 tháng trước
61 9
{{like_count}}

kipalog

{{ comment_count }}

bình luận

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


White
{{userFollowed ? 'Following' : 'Follow'}}
59 bài viết.
287 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á!