Dağıtık Sistem
- İngilizcesi
- Distributed System
- Okunuşu
- distribyutıd sistım
Kısaca
Dağıtık sistem, bir ağ üzerinden birlikte çalışan ve kullanıcılarına tek bir sistem gibi görünen bilgisayarlar kümesidir.
Dağıtık sistem (distributed system) nedir?
Sistemler ölçek, güvenilirlik ve erişim için dağıtılır. Tek bir makine ancak belirli miktarda trafiği ve veriyi kaldırabilir ve er geç arızalanır. İşi birçok makineye yaymak, bir servisin büyümesini, bazıları bozulduğunda çalışmaya devam etmesini ve kullanıcılara onlara yakın veri merkezlerinden hizmet vermesini sağlar. Arama motorları, sosyal ağlar, bulut veritabanları, ödeme sistemleri ve mikroservis mimarilerinin hepsi dağıtık sistemlerdir.
Dağıtım, tek bir bilgisayarın hiç yaşamadığı sorunlar getirir. Mesajlar gecikebilir, kaybolabilir ya da çoğalabilir; bir makine çökerken diğerleri çalışmaya devam edebilir, buna kısmi arıza (partial failure) denir; farklı makinelerdeki saatler birbirini tutmaz; ağ da makine grupları birbirine ulaşamayacak şekilde bölünebilir. Tasarımlar verinin nasıl tutarlı tutulacağına ve kararlarda nasıl anlaşılacağına replikasyon, konsensüs algoritmaları, idempotent işlemler ve yeniden denemelerle karar vermelidir.
1990'larda Sun Microsystems'deki mühendisler dağıtık hesaplamanın yanılgılarını, yani geliştiricilerin yaptığı ve yanlış çıkan varsayımları listeledi: ağ güvenilirdir, gecikme sıfırdır, bant genişliği sonsuzdur, ağ güvenlidir, topoloji değişmez, tek bir yönetici vardır, taşıma maliyetsizdir ve ağ her yerde aynıdır. Bunların her biri gerçek kesintilere yol açar.
Sık yapılan bir yanlış, bir sistemi dağıtmanın onu otomatik olarak daha güvenilir yaptığını düşünmektir. Daha fazla makine, arızalanabilecek daha fazla şey ve birlikte arızalanmalarının daha fazla yolu demektir. Güvenilirlik bilinçli tasarımdan gelir: zaman aşımları, geri çekilmeli yeniden denemeler, circuit breaker'lar, tek hata noktası olmayan yedeklilik ve neler olduğunu anlamak için gözlemlenebilirlik.
Önemli noktalar
- Dağıtık sistem, tek bir sistem gibi davranan, ağa bağlı çok sayıda bilgisayardır.
- Ölçek, hata toleransı ve kullanıcılara yakın hizmet için kurulur.
- Kısmi arızalar, kayıp mesajlar, saat kayması ve ağ bölünmeleri olağandır.
- Dağıtık hesaplamanın yanılgıları, sistemleri bozan varsayımları listeler.
- Güvenilirlik yalnızca daha fazla makine değil, bilinçli tasarım ister.
Sık sorulan sorular
Dağıtık sistem örnekleri nelerdir?
Bir yük dengeleyicinin arkasında birçok sunucuda çalışan web uygulamaları, DynamoDB gibi bulut veritabanları, Kafka gibi akış platformları, içerik dağıtım ağları, blockchain'ler ve mikroservis mimarileri.
Dağıtık sistemler neden zordur?
Çünkü bileşenler birbirinden bağımsız arızalanır ve güvenilmez bir ağ üzerinden haberleşir. Kodun gecikmeleri, kaybolan ya da çoğalan mesajları, tutarsız veriyi ve birbiriyle anlaşamayan makineleri ele alırken doğru kalması gerekir.
CAP teoreminin dağıtık sistemlerdeki rolü nedir?
Ağ bölündüğünde dağıtık bir veri deposunun tutarlılık ile erişilebilirlik arasında seçim yapması gerektiğini söyler. Dağıtık sistem tasarımcılarının karşılaştığı temel ödünleşimlerden biridir.
İlgili sayfalar
- CAP TeoremiVeritabanları, s. 3CAP teoremi, ağ arızası dağıtık bir veritabanını böldüğünde sistemin tutarlılık ile erişilebilirlikten birini seçmesi gerektiğini söyler; ikisi birden olamaz.
- MikroservislerYazılım Mimarisi, s. 24Mikroservisler, bir uygulamanın ağ üzerinden iletişim kuran, küçük ve bağımsız olarak dağıtılabilen servislere bölündüğü bir mimari tarzdır.
- Veritabanı ReplikasyonuVeritabanları, s. 41Veritabanı replikasyonu, verinin bir sunucudan diğerlerine sürekli kopyalanmasıdır; böylece birkaç sunucu güvenilirlik ve ölçek için aynı veriyi tutar.
- Konsensüs AlgoritmasıYazılım Mimarisi, s. 23Konsensüs algoritması, bir grup makinenin, bazıları çökse ya da mesajlar kaybolsa bile tek bir değerde ya da sıralı bir karar kaydında anlaşmasını sağlar.
- Hata ToleransıYazılım Mimarisi, s. 17Hata toleransı, bir sistemin bazı donanım ya da yazılım bileşenleri arızalandığında, belki azalmış kapasiteyle de olsa doğru çalışmayı sürdürebilmesidir.
- Nihai TutarlılıkVeritabanları, s. 20Nihai tutarlılık, yeni güncelleme yapılmazsa dağıtık bir sistemdeki bir verinin tüm kopyalarının zamanla özdeş hale geleceğine dair bir garantidir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin