Yatay Ölçekleme
- İngilizcesi
- Horizontal Scaling
- Okunuşu
- horizontıl skeyling
Kısaca
Yatay ö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.
Yatay ölçekleme (horizontal scaling) nedir?
Bir web uygulaması tek bir sunucunun kaldırabileceğinden fazla trafik aldığında onu iki, sonra on sunucuda, istekleri aralarında paylaştıran bir yük dengeleyiciyle çalıştırabilirsiniz. Her sunucu yükün farklı bir kısmında aynı işi yapar. Bulut platformları bunu kolaylaştırır: otomatik ölçekleme grupları ve Kubernetes, trafik arttıkça ve azaldıkça örnekleri otomatik olarak ekleyip çıkarır.
Yatay ölçeklemenin büyük avantajları vardır. Kapasite neredeyse sınırsız büyüyebilir, tek bir makinenin arızalanması servisi çökertmez, güncellemeler kesinti olmadan örnekler arasında teker teker yayılabilir ve çok sayıda küçük makine tek bir dev makineden daha ucuz olabilir. Büyük internet servislerinin binlerce sıradan sunucuda çalışmasının nedeni tam olarak budur.
Doğru tasarım gerektirir. Uygulama sunucuları durumsuz (stateless) olmalı, oturumları, yüklemeleri ve önbellekleri Redis ya da nesne depolama gibi ortak servislerde tutmalıdır; böylece her örnek her isteği ele alabilir. Veritabanlarını yatay ölçeklemek daha zordur: okuma replikaları okumaları dağıtır, ama yazmaları dağıtmak veriyi shard'lamak demektir; bu da sorguları, transaction'ları ve işletmeyi karmaşıklaştırır.
Sık yapılan bir yanlış, sunucu eklemenin her zaman hız eklediğini düşünmektir. Tek bir veritabanı, bir kilit ya da yavaş bir dış API gibi ortak darboğazlar, kaç uygulama sunucusu eklerseniz ekleyin throughput'u sınırlar; düğümler arasındaki koordinasyon da kendi ek yükünü getirir. Yatay ölçeklemeden önce darboğazın nerede olduğunu ölçün.
Önemli noktalar
- Yatay ölçekleme daha fazla makine ekler ve yükü dağıtır.
- Bir yük dengeleyici ve otomatik ölçekleme trafiği örneklere dağıtır.
- Neredeyse sınırsız büyüme, hata toleransı ve kademeli güncellemeler getirir.
- Sunucular durumsuz olmalı; veritabanları replika ya da sharding gerektirir.
- Ortak darboğazlar kazancı sınırlar; bu yüzden ölçeklemeden önce ölçün.
Sık sorulan sorular
Yatay ile dikey ölçekleme arasındaki fark nedir?
Yatay ölçekleme daha fazla makine ekler; dikey ölçekleme ise tek bir makineyi daha fazla CPU, bellek ya da daha hızlı depolamayla güçlendirir. Yatay ölçekleme daha fazla büyür ve arızalara dayanır; dikey ölçekleme daha basittir ama donanım sınırlarına takılır.
Yatay ölçekleme için sunucular neden durumsuz olmalı?
Bir sunucu bir kullanıcının oturumunu kendi belleğinde tutarsa sonraki isteğin aynı sunucuya ulaşması gerekir. Durumu ortak bir depoya taşımak, yük dengeleyicinin her isteği her örneğe göndermesine ve örneklerin serbestçe eklenip çıkarılmasına izin verir.
Veritabanları yatay ölçeklenebilir mi?
Evet, daha fazla çabayla. Okuma replikaları daha fazla okumayı karşılar, sharding de daha fazla yazmayı karşılamak için veriyi sunuculara böler. Cassandra ya da CockroachDB gibi bazı dağıtık veritabanları baştan yatay ölçeklenmek üzere tasarlanmıştır.
Sık karşılaştırılanlar
İlgili sayfalar
- Dikey Ö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.
- Ö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.
- Yü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.
- Otomatik ÖlçeklemeDevOps ve Bulut, s. 37Otomatik ölçekleme, sunucu ya da konteyner gibi bilişim kaynaklarının talebe göre otomatik eklenip çıkarılmasıdır; performans sabit, maliyet düşük kalır.
- ShardingVeritabanları, 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.
- 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.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin