Sự phức tạp của một mạng lưới phân phối trên toàn cầu phân bố mang
về một bộ duy nhất của những thách thức trong kiến trúc, hoạt động và
quản lý, đặc biệt là trong một môi trường như không đồng nhất
và không thể đoán trước như Internet. Ví dụ, mạng lưới
quản lý và thu thập dữ liệu cần phải được mở rộng và nhanh chóng
qua hàng ngàn cụm máy chủ, nhiều trong số đó được đặt tại
trung tâm dữ liệu không người lái, bên thứ ba, và bất kỳ số nào trong số đó
có thể ẩn hoặc trải qua kết nối xấu tại bất kỳ định
thời gian . Thay đổi cấu hình và cập nhật phần mềm cần phải được
triển khai trên mạng một cách an toàn, nhanh chóng và nhất quán
theo cách thức, mà không làm gián đoạn dịch vụ. Các doanh nghiệp cũng phải có khả năng
để duy trì khả năng hiển thị và kiểm soát hạt mịn hơn nội dung của họ
trên nền tảng phân phối.
Hướng dẫn lựa chọn thiết kế của chúng tôi, chúng ta bắt đầu với giả định rằng một
số lượng đáng kể những thất bại (dù họ là tại máy,
rack, cụm, kết nối, mức mạng) dự kiến sẽ được
diễn ra tại mọi thời điểm trong mạng. Thật vậy, trong khi không đạt tiêu chuẩn
trong thiết kế hệ thống, giả thiết này có vẻ tự nhiên trong bối cảnh
Internet. Chúng ta đã thấy nhiều lý do mà thất bại Internet có thể
xảy ra tại mục 3, và đã quan sát nó là đúng theo kinh nghiệm
trong mạng của chúng ta.
Điều này có nghĩa là chúng tôi đã thiết kế mạng lưới phân phối của chúng tôi
với triết lý rằng thất bại là bình thường và việc phân phối
mạng phải hoạt động liên tục mặc dù họ. Nhiều nỗ lực được
đầu tư vào thiết kế phục hồi từ các dạng sự cố, bao gồm
cả. Nhiều lỗi đồng thời
triết lý này hướng dẫn mọi cấp độ của thiết kế quyết định xuống để
lựa chọn những loại máy chủ để mua: việc sử dụng mạnh mẽ
các máy chủ hàng hóa có ý nghĩa hơn trong này bối cảnh hơn nhiều
máy chủ đắt tiền với sự thừa phần cứng đáng kể. Trong khi nó
vẫn là quan trọng để có thể ngay lập tức xác định thất bại
phần cứng (ví dụ, thông qua ECC bộ nhớ và đĩa kiểm tra tính toàn vẹn đó
cho phép các máy chủ để tự động đưa mình ra khỏi dịch vụ),
có giảm dần trở lại từ việc xây dựng dư thừa vào
phần cứng (ví dụ, nguồn cung cấp năng lượng kép ) thay vì phần mềm. Sâu sắc hơn
ý nghĩa của triết lý này sẽ được thảo luận tại chiều dài trong [1].
Bây giờ chúng ta đề cập đến một vài nguyên tắc quan trọng mà hết ảnh hưởng đến nền tảng của chúng tôi
thiết kế hệ thống:
Thiết kế cho độ tin cậy. Bởi vì bản chất của kinh doanh của chúng tôi,
mục tiêu là để đạt được vô cùng gần 100% end-to-end
sẵn có. Điều này đòi hỏi nỗ lực rất lớn cho chúng tôi
giả định rằng các thành phần cơ bản sẽ không thường xuyên
và theo những cách không thể đoán trước. Chúng ta phải đảm bảo dự phòng đầy đủ
các thành phần (không có điểm duy nhất của thất bại), xây dựng ở nhiều
mức độ chịu đựng lỗi, và sử dụng các giao thức như Paxos
[26] và cuộc bầu cử lãnh đạo phân cấp để phù hợp với
khả năng của các thành phần hệ thống thất bại.
Thiết kế cho khả năng mở rộng. Với hơn 60.000 máy
(và phát triển) trên toàn cầu, tất cả các thành phần nền tảng
phải được đánh giá cao khả năng mở rộng. Ở mức độ cơ bản, nhân rộng các phương tiện
xử lý nhiều lưu lượng truy cập, nội dung, và khách hàng. Điều này cũng
được chuyển thành xử lý khối lượng ngày càng lớn các
kết quả dữ liệu phải được thu thập và phân tích, cũng như
xây dựng giao thông, kiểm soát, và các hệ thống bản đồ đó
phải hỗ trợ một số lượng ngày càng tăng của các phân phối
máy.
Hạn chế sự cần thiết để quản lý con người. Để một rất
mức độ lớn, chúng tôi thiết kế hệ thống được tự trị. Đây là một
hệ quả tất yếu với triết lý rằng thất bại là chuyện thường
và rằng hệ thống phải được thiết kế để hoạt động bất chấp
họ. Hơn nữa, nó là cần thiết để quy mô, khác các
chi phí hoạt động của con người trở nên quá cao. Như vậy,
hệ thống phải có khả năng đáp ứng với các đứt gãy, xử lý các thay đổi trong tải
và năng lực, tự điều chỉnh cho hiệu suất, an toàn và triển khai
phần mềm và cấu hình cập nhật với con người tối thiểu
can thiệp. (Để quản lý các máy 60.000 cộng với nó, là
trung tâm vận hành mạng Akamai hiện đang sử dụng khoảng
60 người, phân phối làm việc 24x7x365.)
Thiết kế cho hiệu suất. Có công việc liên tục được
thực hiện để cải thiện hiệu suất của quan trọng của hệ thống
đường dẫn, không chỉ từ quan điểm của người sử dụng cải thiện kết thúc
thời gian đáp ứng, nhưng đối với nhiều số liệu khác nhau trên
nền tảng, chẳng hạn như tỷ lệ hit cache và tài nguyên mạng
sử dụng. Một lợi ích thêm vào một số công việc này là năng lượng
hiệu quả; Ví dụ, hạt nhân và các phần mềm khác
tối ưu hóa cho phép công suất lớn hơn và nhiều hơn giao thông phục vụ
với máy ít hơn.
Chúng tôi sẽ tìm hiểu những nguyên tắc hơn nữa khi chúng tôi kiểm tra từng
mạng lưới giao Akamai chi tiết hơn trong các kế tiếp
phần. Trong phần 5, phần 6 chúng tôi phác thảo những thách thức cụ thể
và giải pháp trong việc thiết kế nội dung, phương tiện truyền thông, và
mạng lưới phân phối ứng dụng, và nhìn vào các đặc điểm của
các hệ thống giao thông, trong đó có sự khác biệt cho mỗi giao
networks.5 tại Mục 7, chúng tôi cung cấp thông tin chi tiết về hệ thống chung
các thành phần được chia sẻ giữa các mạng lưới phân phối Akamai,
chẳng hạn như các nền tảng cạnh máy chủ, hệ thống bản đồ, các
thông tin liên lạc và hệ thống điều khiển và thu thập dữ liệu và
phân tích hệ thống.
đang được dịch, vui lòng đợi..
