Xây dựng và vận hành S3
- S3 là viết tắt của Amazon Simple Storage Service, chỉ một hệ thống lưu trữ quy mô lớn.
- Andy Warfield làm việc tại S3 và đã có được hiểu biết sâu rộng về hệ thống này.
- S3 là một dịch vụ bao trùm nhiều lĩnh vực, từ trải nghiệm hiệu năng của khách hàng đến cơ chế hoạt động của ổ cứng.
17 năm trước, tại một khuôn viên đại học xa xôi...
- S3 được ra mắt vào ngày 14 tháng 3 năm 2006 và năm nay kỷ niệm 17 năm thành lập.
- Warfield hoàn thành bằng tiến sĩ tại Đại học Cambridge, tham gia dự án Xen, sau đó đồng sáng lập startup XenSource.
- XenSource phát triển lớn mạnh và được Citrix mua lại, giúp Warfield học được nhiều điều về tăng trưởng kinh doanh và quản lý đội ngũ.
Cách S3 hoạt động
- Sau khi gia nhập Amazon, Warfield đã học cách S3 vận hành từ Seth Markle, một trong những kỹ sư đời đầu của S3.
- S3 là một dịch vụ object storage có HTTP REST API, gồm frontend, dịch vụ namespace, đội máy lưu trữ với các ổ cứng, và đội máy thực hiện các tác vụ nền.
- S3 được cấu thành từ hàng trăm microservice, và sự tương tác giữa các nhóm được xác định bằng các cam kết ở cấp độ API.
Những quan sát ban đầu
- S3 là một hệ sinh thái liên tục tiến hóa, vượt ra ngoài phần mềm để bao gồm cả phần cứng và con người.
- Quy mô của S3 được tạo nên từ tập hợp các dịch vụ scale-out ở từng thành phần, nên cần thời gian để thực sự hiểu được độ lớn của hệ thống.
Quy mô kỹ thuật: vật lý của lưu trữ
- S3 là một hệ thống rất lớn sử dụng hàng triệu ổ cứng.
- Ổ cứng là một kỳ quan của công nghệ và đổi mới, đồng thời có hiệu quả chi phí rất cao.
Quản lý nhiệt: phân bố dữ liệu và hiệu năng
- Trong S3, để giải quyết vấn đề gọi là 'quản lý nhiệt', hệ thống thực hiện các tối ưu để phân tán đồng đều các yêu cầu I/O lên nhiều ổ cứng.
Sao chép: phân bố dữ liệu và độ bền
- S3 sử dụng các cơ chế dư thừa như replication và erasure coding để đảm bảo độ bền dữ liệu và quản lý nhiệt.
Tác động của quy mô: chiến lược phân bố dữ liệu
- Bằng cách trải dữ liệu rộng nhất có thể trên thật nhiều ổ đĩa, dữ liệu của khách hàng chỉ chiếm một phần rất nhỏ trên mỗi ổ, từ đó đạt được sự cô lập workload.
Yếu tố con người
- Độ phức tạp của S3 không chỉ đến từ các yếu tố kỹ thuật mà còn từ yếu tố con người.
- Amazon khuyến khích kỹ sư và các nhóm thất bại nhanh nhưng an toàn, đồng thời tập trung vào việc cung cấp dịch vụ lưu trữ có độ bền cao.
Mở rộng bản thân: giải quyết những bài toán khó bắt đầu và kết thúc bằng 'quyền sở hữu'
- Warfield cho biết ông đã trải nghiệm sự mở rộng quy mô ở cấp độ cá nhân tại Amazon, đồng thời học hỏi về quy mô của phần mềm, con người và kinh doanh.
- Tại Amazon, trọng tâm là 'quyền sở hữu', điều này giúp hiểu rõ hơn cấu trúc tổ chức và cách tiếp cận kỹ thuật.
Ý kiến của GN⁺
- S3 không chỉ là một dịch vụ lưu trữ đơn thuần mà là một hệ sinh thái phức tạp kết hợp giữa phần cứng, phần mềm và yếu tố con người.
- Bài viết này mang lại góc nhìn hữu ích cho các kỹ sư phần mềm mới vào nghề muốn hiểu quy mô và độ phức tạp của S3.
- Văn hóa 'quyền sở hữu' của Amazon là một yếu tố quan trọng thúc đẩy các nhóm và cá nhân theo đuổi đổi mới với tinh thần trách nhiệm lớn hơn.
1 bình luận
Ý kiến Hacker News
Làm việc trong lĩnh vực hệ gen học, tôi đã xử lý nhiều kho dữ liệu cỡ petabyte trong suốt 10 năm qua.
Nếu S3 có thể dùng giao thức dựa trên OAuth2 để ủy quyền quyền truy cập đọc/ghi, thì sẽ có rất nhiều thứ chúng ta có thể xây dựng.
Xử lý xác thực trong hệ thống phân tán là việc cực kỳ khó.
Thật vui khi thấy nhân viên Amazon công khai nói về cách S3 vận hành bên trong.
Phần giải thích đầu đọc ổ cứng bằng cách so sánh với máy bay 747.
Quay lại thời KeyMap của S3, người ta học được rằng ngay cả khi xác định được object/partition/bucket nóng nhất, cũng không thể đơn giản di chuyển nó đi là xong.
S3 không chỉ là một kho lưu trữ, mà còn là một tiêu chuẩn.