4 पॉइंट द्वारा GN⁺ 2023-07-28 | 1 टिप्पणियां | WhatsApp पर शेयर करें

S3 का निर्माण और संचालन

  • S3, Amazon Simple Storage Service का संक्षिप्त नाम है, और यह एक बड़े पैमाने की storage system को दर्शाता है।
  • Andy Warfield ने S3 में काम करते हुए सिस्टम के बारे में व्यापक समझ हासिल की।
  • S3 एक ऐसी सेवा है जो ग्राहकों के performance experience से लेकर hard disk mechanics तक, कई क्षेत्रों को समेटती है।

17 साल पहले, एक दूरस्थ विश्वविद्यालय परिसर में...

  • S3 को 14 मार्च 2006 को लॉन्च किया गया था, और इस साल इसकी 17वीं वर्षगांठ है।
  • Warfield ने University of Cambridge से PhD पूरी की, Xen project में भाग लिया, और बाद में XenSource नाम का एक startup सह-स्थापित किया।
  • XenSource बढ़कर Citrix द्वारा अधिग्रहित हुआ, और Warfield ने business growth और team management के बारे में बहुत कुछ सीखा।

S3 कैसे काम करता है

  • Amazon में शामिल होने के बाद Warfield ने Seth Markle, जो S3 के शुरुआती engineers में से एक थे, से S3 के काम करने का तरीका सीखा।
  • S3, HTTP REST API वाला एक object storage service है, जो frontend, namespace service, hard disk वाले storage fleet, और background jobs चलाने वाले fleet से बना है।
  • S3 सैकड़ों microservices से बना है, और टीमों के बीच interaction API-स्तरीय contracts के माध्यम से होता है।

शुरुआती अवलोकन

  • S3 सिर्फ software से आगे बढ़कर hardware और लोगों को शामिल करने वाला लगातार विकसित होता ecosystem है।
  • S3 का scale ऐसा है कि इसका हर component scale-out services के समूह से बना है, इसलिए सिस्टम के पैमाने को समझने में समय लगता है।

तकनीकी पैमाना: storage की physics

  • S3 लाखों hard disks का उपयोग करने वाला बेहद बड़ा सिस्टम है।
  • Hard drives technology और innovation का चमत्कार हैं, और cost efficiency के मामले में बहुत उत्कृष्ट हैं।

heat management: data placement और performance

  • S3 में 'heat management' की समस्या को हल करने के लिए I/O requests को कई hard drives पर समान रूप से वितरित करने वाले optimization किए जाते हैं।

replication: data placement और durability

  • S3 data durability सुनिश्चित करने और heat को manage करने के लिए replication और erasure coding जैसी redundancy schemes का उपयोग करता है।

scale का प्रभाव: data placement strategy

  • डेटा को जितना संभव हो उतनी अधिक disks पर व्यापक रूप से रखकर, ग्राहक के data को हर disk पर बहुत कम मात्रा में रखा जाता है, जिससे workload isolation हासिल होता है।

मानवीय तत्व

  • S3 की जटिलता सिर्फ तकनीकी तत्वों से नहीं, बल्कि मानवीय तत्वों से भी आती है।
  • Amazon engineers और teams को तेज़ी से और सुरक्षित तरीके से fail होने, और high-durability storage प्रदान करने पर केंद्रित रहने के लिए प्रोत्साहित करता है।

मेरा अपना विस्तार: 'ownership' से शुरू और खत्म होने वाली कठिन समस्याओं का समाधान

  • Warfield ने Amazon में अपने व्यक्तिगत scale के विस्तार का अनुभव किया, और software, लोगों तथा business के scale के बारे में सीखा।
  • Amazon में 'ownership' पर ज़ोर दिया जाता है, जो organization structure और engineering approach को समझने में मदद करता है।

GN⁺ की राय

  • S3 सिर्फ एक storage service नहीं, बल्कि hardware, software और मानवीय तत्वों से बना एक जटिल ecosystem है।
  • यह लेख S3 के scale और complexity को समझना चाहने वाले शुरुआती software engineers के लिए उपयोगी insight देता है।
  • Amazon की 'ownership' culture एक महत्वपूर्ण तत्व है, जो teams और individuals को अधिक ज़िम्मेदारी के साथ innovation आगे बढ़ाने के लिए प्रेरित करती है।

1 टिप्पणियां

 
GN⁺ 2023-07-28
Hacker News राय
  • 10^15 requests पर 1 की error rate वास्तविक दुनिया में काफ़ी सामान्य बात है, और S3 में इसे ध्यान में रखना पड़ता है।

    • जब मैं AWS में काम करता था, मुझे याद है कि S3 के पैमाने पर 1 अरब में 1 बार होने वाली घटनाएँ रोज़ होती थीं, और ऐसी घटनाओं पर भी विचार करके उन्हें संभालना पड़ता था जिनकी संभावना सामान्यतः इतनी कम होती है कि उनकी चिंता न की जाए।
    • ShardStore के बारे में पढ़कर अच्छा लगा, खासकर formal verification और property-based testing प्रभावशाली हैं। पिछली पीढ़ी की सेवाएँ मशहूर तौर पर buggy थीं, लेकिन कम से कम वे safely fail करने और data loss रोकने पर अड़े रहने वाले S3 engineers की वजह से अच्छी तरह डिज़ाइन की गई थीं.
  • Genomics क्षेत्र में काम करते हुए, पिछले 10 सालों में मैंने कई petabyte data stores संभाले हैं।

    • AWS S3, GCP GCS, Ceph, Gluster, HP systems आदि कई storage systems इस्तेमाल करने के अनुभव से, मैं इन systems को चलाने में लगने वाली मेहनत की बहुत कद्र करता हूँ।
    • अनगिनत दूसरे ग्राहकों के साथ disk IOPS साझा करने के फायदे बहुत बड़े हैं, और इसे किसी एक system पर कम करना बहुत कठिन है।
    • Co-located hardware clusters में, बड़े पैमाने के workloads के लिए IO को RAM या CPU की तरह allocatable resource की तरह संभालने हेतु हमें batch systems को custom-tune करना पड़ा।
    • S3 और GCP महंगे हैं, लेकिन उनका performance उस कीमत को सही ठहराता है।
  • अगर S3 OAuth2-आधारित protocol का उपयोग करके read/write access delegate कर सके, तो हम कितनी चीज़ें बना सकते हैं।

    • हमें एक HTTP-आधारित protocol चाहिए जिसमें apps, users की ओर से data access कर सकें।
    • Google Drive इसके सबसे करीब है, लेकिन single-vendor समस्या है, और अफ़सोस है कि remoteStorage लोकप्रिय नहीं हो पाया।
    • उम्मीद है Solid सफल होगा, लेकिन यह काफ़ी जटिल लगता है।
    • इस समस्या के लिए मेरा अपना समाधान gemdrive.io है, लेकिन फिलहाल मैं self-hosting stack के दूसरे हिस्सों पर ध्यान दे रहा हूँ।
  • IBM RAMAC hard drive की 1956 specs का विवरण।

    • Storage capacity: 3.75 MB, cost: लगभग $9,200 per terabyte वाला spec सही नहीं हो सकता।
    • दूसरी sites के अनुसार खरीद मूल्य लगभग $10,000 per megabyte था, इसलिए spec वास्तव में $9,200 per megabyte होना चाहिए।
  • Distributed systems में authentication संभालना बहुत कठिन है।

    • AWS के पैमाने पर authentication जादू जैसा है, और AWS के पास समृद्ध permission model है, इसलिए auth changes infra के ज़रिए sub-millisecond speed से propagate होते हैं।
    • दूसरे services के विपरीत, S3 में permissions resource पर होती हैं, शायद speed के लिए।
  • एक बहुत अनुभवी engineer के रूप में, जिसकी अपनी technical agenda है, मैं ideas देने की बजाय problems को विकसित करने और उन्हें स्पष्ट रूप से समझाने में ज़्यादा समय लगाता हूँ।

    • किसी भूमिका में सफल होने के लिए, मैं problem को स्पष्ट करने और solution का समर्थन करने पर ध्यान देता हूँ, साथ ही ऐसे तरीके ढूँढता हूँ जिनसे मज़बूत engineering teams solutions की ownership ले सकें।
  • Amazon कर्मचारियों को S3 के internal workings के बारे में खुलकर बात करते देखना अच्छा लगता है।

    • Glacier कैसे काम करता है, इसके बारे में और सुनना चाहूँगा; इस्तेमाल होने वाले storage media पर अभी भी सार्वजनिक जानकारी नहीं है, इसलिए काफ़ी अटकलें हैं।
  • वह हिस्सा जहाँ hard drive head को 747 airplane से तुलना करके समझाया गया है।

    • यह इतनी सटीक प्रक्रिया है जैसे कोई विमान पृथ्वी के 25,000 चक्कर लगाए और सिर्फ़ एक बार की गलती में घास की एक पत्ती छूट जाए।
  • S3 KeyMap के दिनों में वापस जाएँ तो, सबसे hot objects/partitions/buckets पहचान लेने के बाद भी यह सीखा कि सिर्फ़ उन्हें move कर देने से समस्या हल नहीं होती।

    • असली समाधान यह था कि host के partition load को quartiles में बाँटा जाए और दूसरे quartile वाले partitions को सबसे कम loaded host पर move किया जाए।
    • इससे error rate स्थिर लगभग 1% से बदलकर error-free days तक पहुँच गई, और alerts को काफ़ी अधिक सख्ती से update किया गया।
  • S3 सिर्फ़ एक storage नहीं, बल्कि एक standard है।

    • कुछ जगहों पर S3-compatible storage दिया जाता है; यह standard कितना open है, या "S3 compatible" कहने के लिए Amazon को भुगतान करना पड़ता है या नहीं, यह स्पष्ट नहीं है, लेकिन यह काफ़ी शानदार बात है।