English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

khách
1 / ?
trở lại bài học

Mỗi PoP Cái này là một tế bào của mặt phẳng

Tế bào Voronoi

Đặt N điểm (PoPs: Điểm có mặt) trên một mặt phẳng. Vẽ ranh giới vùng sao cho mọi điểm trên mặt phẳng được gán cho PoP nhỏ nhất. Kết quả là một hình Voronoi: mặt phẳng phân chia thành N tế bào, một cho mỗi PoP, mỗi tế bào chứa tất cả các điểm gần PoP của nó hơn bất kỳ cái nào khác.

Hình học CDN: mỗi yêu cầu người dùng của bạn được định tuyến đến PoP gần nhất. Mỗi PoP chiếm một tế bào của mặt phẳng địa lý. Các ranh giới tế bào là các đường trung bình chéo của các đường giữa PoP láng giềng kế cận.

Đọc hình học:

- Thêm một PoP làm giảm kích thước tế bào của những người hàng xóm (& tạo ra một tế bào mới)

- Xóa một PoP khiến tế bào của nó phân phối lại cho hàng xóm (sóng tải tăng tại hàng xóm)

- Một người dùng gần ranh giới tế bào có thể lật từ PoP này sang PoP khác khi cân bằng tải dịch chuyển

- Một sự cố của một PoP làm tăng kích thước của mọi tế bào hàng xóm trong thời gian ngừng hoạt động

Quả quyết hoạt động: khi một PoP bị phá huỷ, tải của nó không biến mất; nó di chuyển đến các PoP hàng xóm. Nếu hàng xóm được thiết kế chỉ cho tế bào bình thường, sự tăng sóng phá hủy chúng tiếp theo (sự thất bại PoP dồn dập). Các nhà cung cấp CDN trưởng thành thiết kế mỗi PoP với sự tăng sóng hàng xóm trong tâm trí.

! Các tế bào Voronoi quanh PoPs; một PoP sự cố làm tăng kích thước tế bào hàng xóm

Một CDN chạy 4 PoP phục vụ lục địa Mỹ: Bờ Tây, Bờ núi, Trung tâm, Bờ Đông. Mỗi cái được thiết kế cho ~25% tổng lưu lượng giao thông của Mỹ. PoP Bờ núi bị phá huỷ. Dự đoán: (1) những PoP láng giềng nào hấp thụ lượng tải phân bố lại, và với tỷ lệ khoảng bao nhiêu, & (2) điều gì sẽ xảy ra nếu những láng giềng đó được thiết kế chính xác cho 25% mỗi cái với không có không gian đầu

Bạn không thể lừa đảo Luật tam giác không cân xứng

Vật lý đặt sàn nhà

Ánh sáng di chuyển với tốc độ ~300.000 km/s trong chân không. Trong sợi quang, khoảng 200.000 km/s do chỉ số tán sắc. Điều này có nghĩa:

- ~1.000 km sợi quang = ~5 ms một chiều = ~10 ms vòng lặp

- Coast-to-coast US (~5,000 km) = ~50 ms RTT tối thiểu

- Mỹ đến châu Âu (~8,000 km) = ~80 ms RTT tối thiểu

- Điểm đối lập (bán vòng quanh thế giới) = ~200 ms RTT tối thiểu

Đây là một giới hạn. RTT thực tế luôn lớn hơn (các bước đường dẫn, chuyển đổi, xếp hàng, nghẽn mạng). Không có ứng dụng có thể nhanh hơn giới hạn của vật lý.

Định lý Tam giác

Đối với ba nút A, B, C, định lý tam giác nói rằng d(A,C) <= d(A,B) + d(B,C): một đường thẳng là ngắn hơn (hoặc bằng) so với bất kỳ đường cong nào.

Đọc mạng: nếu dịch vụ của bạn định tuyến A -> B -> C thay vì A -> C trực tiếp, thì độ trễ là ít nhất bằng tổng hai độ trễ của đoạn đường. Thường sẽ lâu hơn do xử lý ở B.

Đọc kiến trúc: mỗi bước chuyển đổi (proxy, load balancer, CDN hop) đều tăng ít nhất một bước vòng tròn cho độ trễ mà người dùng cảm nhận. Lợi ích của CDN đến từ việc làm cho bước đường của người dùng ngắn hơn (PoP gần hơn so với nguồn gốc), ngay cả khi tổng số bước qua lại tăng.

Lưu lượng đa khu vực: một dịch vụ đọc từ khu vực A nhưng ghi vào khu vực B sẽ chịu chi phí độ trễ A-to-B trên mỗi lần ghi. Nếu A & B cách nhau 100 ms, mỗi lần ghi sẽ mất >= 100 ms tối thiểu. Các cơ sở dữ liệu kéo dài phải trả phí này mỗi lần.

Tam giác độ trễ: A-B-C được đặt bởi khoảng cách vật lý

Đóng Góp Phí

Một dịch vụ chạy ở hai khu vực: US-East (us-east-1) & EU-West (eu-west-1). Hai khu vực cách nhau khoảng 5.500 km. Dịch vụ có một cơ sở dữ liệu chính ở US-East. Người dùng EU có yêu cầu của họ được phục vụ bởi backend EU-West, nhưng mỗi lần ghi cần gọi lại đến cơ sở dữ liệu chính US-East.

Tính độ trễ tối thiểu cho một lần ghi từ người dùng EU (một chiều từ trình duyệt của họ đến backend EU-West đến backend chính US-East & quay lại). So sánh với một lần đọc EU được phục vụ hoàn toàn từ trạng thái cached EU-West. Sau đó, đề xuất một thay đổi kiến trúc giảm độ trễ tối thiểu cho lần ghi của người dùng EU.

Thiết kế Phân bố PoP

Tích hợp

Bạn có thể đọc các tế bào Voronoi là vùng thu thập của PoP, tính giới hạn trễ tốc độ ánh sáng, và áp dụng đường cong hàng đợi ở tầng proxy.

Áp dụng cả ba.

Một đội ngũ lên kế hoạch bao phủ CDN cho một dịch vụ có người dùng trên ba châu lục: Bắc Mỹ (60% người dùng), Âu (30%), Á (10%). Họ có ngân sách cho 6 PoP. Mỗi PoP có thể phục vụ một tế bào ổn định ở 70% sử dụng không vượt qua gối đầu của đường cong hàng đợi.

Phân bổ PoP: (1) làm thế nào bạn sẽ phân phối 6 PoP trên ba châu lục, (2) cho phần chia sẻ người dùng nhỏ nhất (Á Âu chiếm 10%), độ trễ tối thiểu cho một người dùng Á Âu được phục vụ từ một PoP châu Âu nếu không có PoP Á Âu tồn tại (giả sử khoảng cách ~9000 km), & (3) lượng dư khả năng chứa (headroom) bạn cần thiết lập cho mỗi PoP để sống sót sau một sự cố PoP đơn lẻ mà không dẫn đến sự cố lan truyền?

Đóng Companion Course

Đóng Companion Course

Bạn đã hoàn thành tất cả năm bài học về hình học-* phụ trợ:

- Proxies & Origins: đồ thị có hướng, bước nhảy, fan-in / fan-out, gián tiếp hóa

- Stateless Horizontal Scaling: Luật Little như diện tích, đường cong hàng đợi & gối đầu của nó

- Ingress & Egress Separation: cấu trúc hai phần, loại bỏ nút cắt, chịu đựng được phân chia

- Failure Modes & Blast Radius: giữa tính trọng tâm, min-cut, đường kính

- Observability & Capacity (bài học này): tế bào PoP Voronoi, giới hạn tam giác trễ, thiết kế khả năng địa lý

Sự liên tục: hệ thống phân tán có cấu trúc hình học. Mỗi kiến ​​trúc là một đồ thị. Mỗi giới hạn trễ là một bất đẳng thức tam giác. Mỗi quyết định khả năng là một đường cong và một gối đầu. Khi bạn nhìn thấy hình học, các quyết định vận hành sẽ tuân theo nó.

Khi kết hợp với năm bài học chính (cs_distsys_*), bạn có một mô hình tâm lý làm việc về hệ thống phân tán web và kỷ luật hình học để lý luận về nó.

Làm tốt vậy.