การสร้างและการดำเนินงานของ S3
- S3 ย่อมาจาก Amazon Simple Storage Service และหมายถึงระบบสตอเรจขนาดใหญ่
- Andy Warfield ทำงานอยู่ที่ S3 และได้มีความเข้าใจระบบอย่างกว้างขวาง
- S3 เป็นบริการที่ครอบคลุมหลายด้าน ตั้งแต่ประสบการณ์ด้านประสิทธิภาพของลูกค้าไปจนถึงกลไกของฮาร์ดดิสก์
เมื่อ 17 ปีก่อน ในแคมปัสมหาวิทยาลัยอันแสนห่างไกล...
- S3 เปิดตัวเมื่อวันที่ 14 มีนาคม 2006 และปีนี้ครบรอบ 17 ปี
- Warfield สำเร็จปริญญาเอกจากมหาวิทยาลัยเคมบริดจ์ เข้าร่วมโครงการ Xen และต่อมาได้ร่วมก่อตั้งสตาร์ตอัปชื่อ XenSource
- XenSource เติบโตขึ้นและถูก Citrix เข้าซื้อกิจการ โดย Warfield ได้เรียนรู้มากมายเกี่ยวกับการขยายธุรกิจและการบริหารทีม
วิธีการทำงานของ S3
- หลังจากเข้าร่วม Amazon แล้ว Warfield ได้เรียนรู้หลักการทำงานของ S3 จาก Seth Markle หนึ่งในวิศวกรยุคแรกของ S3
- S3 เป็นบริการ object storage ที่มี HTTP REST API โดยประกอบด้วยฟรอนต์เอนด์ บริการเนมสเปซ storage fleet ที่มีฮาร์ดดิสก์ และ fleet ที่ทำงานเบื้องหลัง
- S3 ประกอบด้วยไมโครเซอร์วิสหลายร้อยตัว และการทำงานร่วมกันระหว่างแต่ละทีมเกิดขึ้นผ่านข้อตกลงในระดับ API
ข้อสังเกตในช่วงแรก
- S3 เป็นระบบนิเวศที่พัฒนาอย่างต่อเนื่อง ซึ่งไม่ได้มีแค่ซอฟต์แวร์ แต่รวมถึงฮาร์ดแวร์และผู้คนด้วย
- ขนาดของ S3 ทำให้แต่ละองค์ประกอบประกอบด้วยชุดของบริการที่สเกลเอาต์ออกไป จึงต้องใช้เวลาพอสมควรในการทำความเข้าใจขนาดของระบบ
ขนาดทางเทคนิค: ฟิสิกส์ของสตอเรจ
- S3 เป็นระบบขนาดใหญ่มากที่ใช้ฮาร์ดดิสก์หลายล้านลูก
- ฮาร์ดไดรฟ์สะท้อนทั้งความน่าทึ่งของเทคโนโลยีและนวัตกรรม พร้อมทั้งมีความคุ้มค่าด้านต้นทุนสูง
การจัดการความร้อน: การจัดวางข้อมูลและประสิทธิภาพ
- ใน S3 มีการทำ optimization เพื่อแก้ปัญหาที่เรียกว่า 'การจัดการความร้อน' โดยกระจายคำขอ I/O อย่างสม่ำเสมอไปยังฮาร์ดไดรฟ์จำนวนมาก
การทำซ้ำข้อมูล: การจัดวางข้อมูลและความทนทาน
- S3 ใช้สคีมาความซ้ำซ้อน เช่น replication และ erasure coding เพื่อรับประกันความทนทานของข้อมูลและจัดการความร้อน
ผลกระทบของขนาด: กลยุทธ์การจัดวางข้อมูล
- ด้วยการกระจายข้อมูลให้กว้างที่สุดเท่าที่จะทำได้ไปยังดิสก์จำนวนมาก ข้อมูลของลูกค้าจึงใช้พื้นที่บนแต่ละดิสก์เพียงเล็กน้อย ทำให้เกิดการแยกเวิร์กโหลดได้
ปัจจัยด้านมนุษย์
- ความซับซ้อนของ S3 ไม่ได้มาจากปัจจัยทางเทคนิคเท่านั้น แต่ยังมาจากปัจจัยด้านมนุษย์ด้วย
- Amazon สนับสนุนให้วิศวกรและทีมสามารถล้มเหลวได้อย่างรวดเร็วและปลอดภัย และมุ่งเน้นไปที่การให้บริการสตอเรจที่มีความทนทานสูง
การขยายขอบเขตของตัวฉันเอง: การแก้ปัญหาที่ยากซึ่งเริ่มต้นและจบลงที่ 'ความเป็นเจ้าของ'
- Warfield ได้สัมผัสกับการขยายขนาดในระดับส่วนตัวที่ Amazon และได้เรียนรู้เกี่ยวกับขนาดของซอฟต์แวร์ ผู้คน และธุรกิจ
- ที่ Amazon มีการให้ความสำคัญกับ 'ความเป็นเจ้าของ' ซึ่งช่วยให้เข้าใจทั้งโครงสร้างองค์กรและแนวทางด้านวิศวกรรมได้ดีขึ้น
ความเห็นของ GN⁺
- S3 ไม่ได้เป็นเพียงบริการสตอเรจธรรมดา แต่เป็นระบบนิเวศที่ซับซ้อนซึ่งผสานฮาร์ดแวร์ ซอฟต์แวร์ และปัจจัยด้านมนุษย์เข้าด้วยกัน
- บทความนี้มอบมุมมองเชิงลึกให้กับวิศวกรซอฟต์แวร์ระดับเริ่มต้นที่ต้องการเข้าใจขนาดและความซับซ้อนของ S3
- วัฒนธรรม 'ความเป็นเจ้าของ' ของ Amazon เป็นองค์ประกอบสำคัญที่ช่วยกระตุ้นให้ทั้งทีมและบุคคลแสวงหานวัตกรรมด้วยความรับผิดชอบที่มากขึ้น
1 ความคิดเห็น
ความคิดเห็นใน Hacker News
ทำงานในสายจีโนมิกส์และตลอด 10 ปีที่ผ่านมาได้จัดการระบบจัดเก็บข้อมูลระดับเพตะไบต์จำนวนมาก
ถ้า S3 ใช้โปรโตคอลที่อิง OAuth2 เพื่อมอบหมายสิทธิ์การเข้าถึงแบบอ่าน/เขียนได้ สิ่งที่เราจะสร้างได้คงมีอีกมาก
การจัดการการยืนยันตัวตนในระบบกระจายนั้นยากมาก
เป็นเรื่องดีที่ได้เห็นพนักงาน Amazon พูดคุยอย่างเปิดเผยเกี่ยวกับการทำงานภายในของ S3
ส่วนที่อธิบายโดยเปรียบเทียบหัวอ่านฮาร์ดไดรฟ์กับเครื่องบิน 747
ย้อนกลับไปสมัย S3 KeyMap ได้เรียนรู้ว่าแม้จะระบุ object/partition/bucket ที่ร้อนที่สุดได้แล้ว ก็ไม่ได้แปลว่าจะย้ายมันแล้วแก้ปัญหาได้ง่าย ๆ
S3 ไม่ใช่แค่ที่เก็บข้อมูลธรรมดา แต่เป็นมาตรฐาน