4 puan yazan GN⁺ 2023-07-28 | 1 yorum | WhatsApp'ta paylaş

S3'ün kurulumu ve işletimi

  • S3, Amazon Simple Storage Service'in kısaltmasıdır ve büyük ölçekli bir depolama sistemi anlamına gelir.
  • Andy Warfield, S3'te çalışırken sistem hakkında kapsamlı bir anlayış kazandı.
  • S3, müşterinin performans deneyiminden sabit disk mekaniğine kadar çok farklı alanları kapsayan bir hizmettir.

17 yıl önce, uzak bir üniversite kampüsünde...

  • S3, 14 Mart 2006'da kullanıma sunuldu ve bu yıl 17. yıl dönümünü kutluyor.
  • Warfield, Cambridge Üniversitesi'nde doktorasını tamamladıktan sonra Xen projesine katıldı ve ardından XenSource adlı bir startup kurdu.
  • XenSource büyüyerek Citrix tarafından satın alındı ve Warfield bu süreçte iş büyütme ve ekip yönetimi hakkında çok şey öğrendi.

S3 nasıl çalışır

  • Warfield, Amazon'a katıldıktan sonra S3'ün ilk mühendislerinden biri olan Seth Markle'dan S3'ün nasıl çalıştığını öğrendi.
  • S3, HTTP REST API'ye sahip bir object storage hizmetidir; frontend, namespace service, sabit disk içeren storage fleet ve arka plan işlerini yürüten fleet'lerden oluşur.
  • S3, yüzlerce mikroservisten oluşur ve ekipler arasındaki etkileşim API düzeyindeki sözleşmeler üzerinden gerçekleşir.

İlk gözlemler

  • S3, yazılımın ötesinde; donanım ve insanları da içeren, sürekli evrilen bir ekosistemdir.
  • S3'ün ölçeği, her bileşenin scale-out hizmetler kümesi olarak kurulmuş olması nedeniyle sistemin boyutunu kavramayı zaman alan bir yapı oluşturur.

Teknik ölçek: depolamanın fiziği

  • S3, milyonlarca sabit disk kullanan çok büyük bir sistemdir.
  • Sabit diskler, teknoloji ve inovasyonun hayranlık uyandıran örnekleridir ve maliyet verimlilikleri çok yüksektir.

Isı yönetimi: veri yerleşimi ve performans

  • S3'te "ısı yönetimi" olarak adlandırılan sorunu çözmek için I/O isteklerini çok sayıdaki sabit diske eşit biçimde dağıtan optimizasyonlar yapılır.

Çoğaltma: veri yerleşimi ve dayanıklılık

  • S3, verinin dayanıklılığını sağlamak ve ısıyı yönetmek için çoğaltma ve erasure coding gibi yedeklilik şemaları kullanır.

Ölçeğin etkisi: veri yerleşim stratejisi

  • Veriyi mümkün olduğunca çok sayıda diske geniş biçimde yerleştirerek, müşteri verisinin her diskte çok küçük bir yer kaplaması sağlanır; böylece iş yükü izolasyonu elde edilir.

İnsan faktörü

  • S3'ün karmaşıklığı yalnızca teknik unsurlardan değil, insan faktöründen de kaynaklanır.
  • Amazon, mühendisleri ve ekipleri hızlı ve güvenli biçimde başarısız olmaya ve yüksek dayanıklılığa sahip depolama sunmaya odaklanmaları için teşvik eder.

Kendi ölçeğimi büyütmek: 'sahiplik' ile başlayıp onunla biten zor problemleri çözmek

  • Warfield, Amazon'da kişisel ölçekte bir genişleme deneyimi yaşadı; yazılımın, insanların ve işin ölçeği hakkında çok şey öğrendi.
  • Amazon'da "sahiplik" vurgulanır ve bu, organizasyon yapısını ve mühendislik yaklaşımını anlamaya yardımcı olur.

GN⁺ görüşü

  • S3, basit bir depolama hizmetinin ötesinde; donanımın, yazılımın ve insan unsurunun birleştiği karmaşık bir ekosistemdir.
  • Bu yazı, S3'ün ölçeğini ve karmaşıklığını anlamak isteyen başlangıç seviyesindeki yazılım mühendislerine içgörü sunar.
  • Amazon'un "sahiplik" kültürü, ekipleri ve bireyleri daha büyük sorumluluk duygusuyla inovasyon peşinde koşmaya motive eden önemli bir unsurdur.

1 yorum

 
GN⁺ 2023-07-28
Hacker News yorumu
  • Hata oranının 10^15 istek başına 1 olması, gerçek dünyada sık yaşanan bir durumdur ve S3'te dikkate alınması gereken bir konudur.

    • AWS'de çalışırken, S3 ölçeğinde milyarda bir görülen olayların her gün yaşandığını ve normalde endişelenmeye değmeyecek kadar düşük olasılıklı olayların bile hesaba katılıp ele alınması gerektiğini hatırlıyorum.
    • ShardStore hakkında okumaktan memnun oldum; özellikle biçimsel doğrulama, özellik tabanlı testler gibi konular etkileyiciydi. Önceki nesil servislerin çok fazla hatası olduğu meşhurdu, ancak en azından güvenli şekilde başarısız olup veri kaybını önlemeye takıntılı S3 mühendisleri sayesinde iyi tasarlanmışlardı.
  • Genomik alanında çalışırken son 10 yılda birçok petabayt ölçekli veri deposuyla uğraştım.

    • AWS S3, GCP GCS, Ceph, Gluster, HP sistemleri gibi çeşitli depolama sistemlerini kullanmış biri olarak, bu sistemleri işletmek için gereken emeği çok takdir ediyorum.
    • Disk IOPS'yi çok sayıda farklı müşteriyle paylaşmanın avantajı çok büyük; bunu tek bir sistemde hafifletmek ise oldukça zor.
    • Aynı yerde barındırılan donanım kümelerinde, büyük işlerde IO'yu RAM veya CPU gibi tahsis edilebilir bir kaynak olarak ele alabilmek için batch sistemini özelleştirmemiz gerekmişti.
    • S3 ve GCP pahalı, ama sundukları performans buna değiyor.
  • S3, OAuth2 tabanlı bir protokolle okuma/yazma erişimini devretmeye izin verse neler inşa edebilirdik.

    • Uygulamaların kullanıcı adına verilere erişebilmesini sağlayan HTTP tabanlı bir protokole ihtiyaç var.
    • Google Drive buna en yakın seçenek, ancak tek sağlayıcı sorunu var; remoteStorage'ın yaygınlaşmamış olması üzücü.
    • Solid'in başarılı olmasını umuyorum ama karmaşık görünüyor.
    • Bu soruna benim çözümüm gemdrive.io, ancak şu anda self-hosting yığınımın diğer bölümlerine odaklanıyorum.
  • IBM RAMAC sabit diskinin 1956 teknik özelliklerine dair açıklama.

    • Depolama kapasitesi: 3.75 MB, maliyet: terabayt başına yaklaşık 9.200 $ bilgisi doğru olmayabilir.
    • Diğer siteler satın alma fiyatının megabayt başına yaklaşık 10.000 $ olduğunu söylüyor; yani teknik özellikte megabayt başına 9.200 $ yazması gerekirdi.
  • Dağıtık sistemlerde kimlik doğrulamayı ele almak çok zordur.

    • AWS ölçeğinde kimlik doğrulama adeta sihir gibidir; AWS'nin zengin bir yetki modeli vardır ve yetkilendirme değişiklikleri altyapı boyunca milisaniyenin altında bir hızla yayılır.
    • Diğer servislerin aksine S3'te izinler kaynağın üzerinde bulunur; bunun nedeni hız olabilir.
  • Güçlü bir teknik gündemi olan çok deneyimli bir mühendis olarak, fikir üretmekten çok problemleri geliştirmeye ve net biçimde açıklamaya daha fazla zaman harcıyorum.

    • Başarılı olmak için problemi netleştirmeye ve çözümü desteklemeye odaklanıyor, güçlü mühendislik ekibinin çözümü sahiplenmesini desteklemenin yollarını buluyorsunuz.
  • Amazon çalışanlarının S3'ün iç işleyişi hakkında kamuya açık şekilde konuştuğunu görmek güzel.

    • Glacier'ın nasıl çalıştığı hakkında daha fazlasını duymak isterim; kullanılan depolama ortamı hâlâ açıklanmadığı için çok fazla spekülasyon var.
  • Sabit disk kafasını 747 uçağına benzeterek anlatan kısım.

    • Bu, uçağın Dünya'nın etrafında 25.000 kez dönerken tek bir hatayla bir çim tanesini ıskalayacak kadar hassas bir iştir.
  • S3 KeyMap dönemine geri dönünce, en sıcak nesneleri/bölümleri/bucket'ları belirledikten sonra bile sorunun sadece taşıyarak çözülemeyeceğini öğrendik.

    • Asıl çözüm, bir host üzerindeki bölüm yükünü çeyreklik dilimlere ayırıp ikinci çeyrekteki bölümleri yükü en az olan host'a taşımaktı.
    • Bunun sonucunda hata oranı, istikrarlı yaklaşık %1 seviyesinden hatasız günlere geçti ve alarmları çok daha sıkı olacak şekilde güncelledik.
  • S3 yalnızca basit bir depolama hizmeti değil, bir standarttır.

    • Bazı yerler S3 uyumlu depolama sunuyor; standardın ne kadar açık olduğu ya da "S3 uyumlu" diyebilmek için Amazon'a ödeme yapmanız gerekip gerekmediği net değil, ama bu yine de çok havalı bir şey.