Ana içeriğe geç

Yol haritası · Orta seviye

Sistem tasarımının temelleri

Büyük sistemler nasıl şekillenir, nasıl ölçeklenir ve parçaları bozulduğunda nasıl ayakta kalır?

Sistem tasarımı mülakatlarının ve mimari incelemelerin dili: bir sistemin alabileceği biçimler, nasıl büyüdüğü, arızalardan nasıl sağ çıktığı ve onu bakımı kolay tutan ilkeler.

33 sayfa4 bölümyaklaşık 1 saat okuma

  • Yazılım Mimarisi
  • Backend ve API'ler
  • DevOps ve Bulut
  • Veritabanları

Henüz başlanmadı0/33 okundu

İstemci-Sunucu Mimarisi ile başla

İlerleme, yalnızca bu tarayıcıda tutulan okuma geçmişinizden gelir.

1. bölümBir sistemin biçimleri

  1. 1İstemci-Sunucu MimarisiYazılım Mimarisi, s. 20İstemci-sunucu mimarisi bir sistemi veri ya da işlem isteyen istemcilere ve bunları sağlayan sunuculara ayırır; tarayıcının sunucudan sayfa istemesi gibi.
  2. 2MonolitYazılım Mimarisi, s. 25Monolit, tek parça olarak derlenip dağıtılan, tüm özelliklerin tek kod tabanını, tek süreci ve çoğunlukla tek veritabanını paylaştığı yazılım uygulamasıdır.
  3. 3MikroservislerYazı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.
  4. 4Dağıtık SistemYazılım Mimarisi, s. 8Dağıtık sistem, bir ağ üzerinden birlikte çalışan ve kullanıcılarına tek bir sistem gibi görünen bilgisayarlar kümesidir.
  5. 5Katmanlı MimariYazılım Mimarisi, s. 21Katmanlı mimari, uygulamayı sunum, iş mantığı ve veri erişimi gibi yatay katmanlara böler ve her katman yalnızca altındaki katmanı çağırır.
  6. 6Olay Güdümlü MimariYazılım Mimarisi, s. 29Olay güdümlü mimari, servislerin bir siparişin verilmesi gibi olaylar üreterek ve bunlara tepki vererek iletişim kurduğu bir yazılım tasarım tarzıdır.
  7. 7API GatewayBackend ve API'ler, s. 3API gateway, bir grup backend servisinin önünde duran ve API isteklerini alan, kontrol eden ve yönlendiren tek giriş noktası görevi gören bir sunucudur.
  8. 8Service DiscoveryYazılım Mimarisi, s. 35Service discovery (servis keşfi), dağıtık bir sistemde servislerin, örnekler başlayıp durdukça değişen diğer servislerin güncel adreslerini bulma yoludur.
  9. 9Backend for FrontendYazılım Mimarisi, s. 2Backend for frontend, web ya da mobil uygulama gibi her istemci türünün kendi ihtiyaçlarına göre uyarlanmış küçük bir backend aldığı bir mimari desendir.

2. bölümÖlçeklenmek

  1. 10ÖlçeklenebilirlikYazılım Mimarisi, s. 30Ölçeklenebilirlik, bir sistemin daha fazla kullanıcı ya da veri gibi artan iş yükünü, kaynak ekleyerek performansı düşmeden karşılayabilme yeteneğidir.
  2. 11Dikey ÖlçeklemeYazılım Mimarisi, s. 11Dikey ölçekleme (scale up), daha fazla makine eklemek yerine tek bir makineye daha fazla CPU, bellek ya da daha hızlı depolama vererek kapasiteyi artırır.
  3. 12Yatay ÖlçeklemeYazılım Mimarisi, s. 47Yatay ölçekleme (scale out), bir sistemin kapasitesini tek bir makineyi büyütmek yerine daha fazla makine ekleyip işi onlara dağıtarak artırır.
  4. 13Yük DengeleyiciDevOps ve Bulut, s. 54Yük dengeleyici, gelen trafiği birkaç arka uç sunucuya dağıtan bir sunucu ya da hizmettir; hiçbir sunucu aşırı yüklenmez ve uygulama erişilebilir kalır.
  5. 14ÖnbellekBackend ve API'ler, s. 34Önbellek, sık kullanılan verilerin kopyalarını tutan hızlı ve geçici bir depolama katmanıdır; sonraki istekler yavaş işi tekrarlamadan hızla karşılanır.
  6. 15CDNDevOps ve Bulut, s. 7CDN, dünyanın dört bir yanına yayılmış ve web sitesi içeriğinin kopyalarını saklayıp her kullanıcıya en yakın konumdan sunan bir sunucu ağıdır.
  7. 16Veritabanı 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.
  8. 17ShardingVeritabanları, s. 28Sharding, bir veritabanının verisini shard adı verilen birkaç sunucuya bölerek ölçeklendirme yöntemidir; her biri toplamın yalnızca bir kısmını saklar ve işler.
  9. 18Consistent HashingYazılım Mimarisi, s. 6Consistent hashing (tutarlı hashleme), anahtarları sunuculara, sunucu eklenip çıkarıldığında yalnızca küçük bir kısmı yer değiştirecek şekilde dağıtır.
  10. 19Mesaj KuyruğuBackend ve API'ler, s. 28Mesaj kuyruğu, bir servisten gelen mesajları bir başkası işlemeye hazır olana kadar saklayan ve sistemin parçalarını eşzamansız çalıştıran bir bileşendir.

3. bölümAyakta kalmak

  1. 20Yüksek ErişilebilirlikYazılım Mimarisi, s. 48Yüksek erişilebilirlik, bir sistemin, çoğunlukla yedeklilikle tek hata noktalarını ortadan kaldırarak neredeyse her zaman çalışır durumda kalabilmesidir.
  2. 21Hata 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.
  3. 22Konsensü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.
  4. 23Circuit Breaker DeseniYazılım Mimarisi, s. 4Circuit breaker deseni, arızalı bir bağımlılığa yapılan çağrıları bir süre durdurarak ve zaman aşımlarını beklemek yerine hızlıca hata vererek sistemi korur.
  5. 24Rate LimitingBackend ve API'ler, s. 37Rate limiting, istemcinin belli bir sürede yapabileceği istek sayısını sınırlayıp sunucuyu ya da API'yi kötüye kullanımdan ve aşırı yükten koruyan tekniktir.
  6. 25IdempotencyBackend ve API'ler, s. 23Idempotency, bir işlemin bir kez de çalışsa çok kez de çalışsa aynı sonucu üretmesi özelliğidir; böylece bir isteğin yanlışlıkla tekrarlanması güvenli olur.
  7. 26Saga DeseniYazılım Mimarisi, s. 34Saga deseni, birkaç servise yayılan bir işlemi yerel adımlar dizisi olarak çalıştırır ve bir adım başarısız olursa tamamlananları telafi eylemleriyle geri alır.
  8. 27Nihai 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.

4. bölümİyi tasarlamak

  1. 28İlgilerin AyrılmasıYazılım Mimarisi, s. 19İlgilerin ayrılması, bir programı her biri davranışının açıkça tanımlanmış tek bir yönünden sorumlu ayrı parçalara bölen bir tasarım ilkesidir.
  2. 29Gevşek BağlılıkYazılım Mimarisi, s. 16Gevşek bağlılık, bileşenlerin birbirine olabildiğince az bağımlı olduğu, böylece birinin diğerlerini bozmadan değişebildiği bir tasarım ilkesidir.
  3. 30UyumYazılım Mimarisi, s. 45Uyum, bir modül, sınıf ya da servis içindeki sorumlulukların birbirine ne kadar ait olduğunun ölçüsüdür ve yüksek uyum iyi tasarımın işaretidir.
  4. 31Domain-Driven DesignYazılım Mimarisi, s. 12Domain-driven design, kodu iş alanına yakından modelleyen ve alan uzmanlarıyla aynı dili kullanan bir yazılım geliştirme yaklaşımıdır.
  5. 32CQRSYazılım Mimarisi, s. 7CQRS, veriyi değiştiren kodu (komutlar) veriyi okuyan koddan (sorgular) ayırarak iki ayrı modele bölen bir mimari desendir.
  6. 33Event SourcingYazılım Mimarisi, s. 14Event sourcing, uygulama durumundaki her değişikliği değiştirilemez bir olay olarak saklayıp güncel durumu olayları yeniden oynatarak kuran tasarım desenidir.

Yol boyunca karşılaştırın

Bu yol haritasında kolayca karıştırılan çiftler, yan yana.

Daha fazla

Ayarlar