yazılım dünyasının "abi bi' kişi daha çağırsak iş biter" mantığının, sunucu alemindeki tezahürü. (bkz: dikey ölçekleme) yani "elimizdeki adamı (sunucuyu) şişirelim, protein tozu basalım" (daha çok ram, daha çok cpu) yaklaşımının tam tersidir.

olay şu: elinizde bir iş var (mesela bir web sitesi) ve bu işi yapan bir işçiniz (sunucu). işler bir anda patladığında (bkz: black friday), dikey ölçekleme (vertical scaling) o işçiye (bkz: hulk) serumu basmaktır. horizontal scaling ise o işçiyi (bkz: çoğulll) diye bağırıp klonlamaktır.

metaforla gidelim, madem sevdik:

tek bir gişeniz (sunucu) var. efsane bilet satıyorsunuz. kuyruk uzadıkça uzuyor.

(bkz: vertical scaling): gişedeki adamı (sunucu) kovup, yerine saniyede 50 bilet kesebilen, sekiz kollu, (bkz: general grievous) gibi bir robot (daha güçlü bir makine) koymaktır.

sorun: o robotun da bir kapasitesi var. ayrıca o robot bozulursa (crash), satış (site) komple durur. ve o robot (bkz: pahalı).

(bkz: horizontal scaling): gişedeki normal adamın yanına aynısından 9 tane daha koyup (yeni instance), 10 gişeyi aynı anda çalıştırmaktır.

olay bu. kuyruk mu arttı? 10 gişe daha aç (scale out). kuyruk bitti mi? 8 gişeyi kapat, "arkadaşlar size ihtiyaç kalmadı, eve gidin" de (scale in).

güzellikleri (niye seviyoruz?):

elastikiyet (lastik gibi sünüyor): (bkz: cloud computing) denen sihrin temel taşıdır. ihtiyacın kadar klonla, işin bitince kapat. "kullanmadığın sunucuya para verme" mottosu. (bkz: amazon aws) abimizin en sevdiği numara.

dayanıklılık (fault tolerance): 10 gişeden biri (instance) "abi sistem kitlendi, çay molası" derse (crash), diğer 9 gişe "sen bilirsin kardeşim" der, bilet satmaya devam eder. sistem ayakta kalır. (bkz: high availability).

maliyet: tek bir (bkz: terminator t-1000) model robot gişe (süper bilgisayar) almaktansa, 10 tane (bkz: standart anadolu genci) gişeci (commodity hardware) çalıştırmak genelde daha ucuzdur.

zorlukları (gırgırın bittiği yer):

load balancer (bkz: başçavuş): o 10 gişenin önüne bir tane (bkz: eli sopalı) adam koyman lazım. bu adamın görevi, gelen müşteriyi (request) "sen 1'e, sen 3'e, 5 boşaldı oraya geç" diye adilce dağıtmaktır. bu adam (load balancer) sapıtırsa veya bayılırsa, arkadaki 10 gişenin hiçbir anlamı kalmaz. (bkz: single point of failure).

session yönetimi (abi ben az önce oradaydım): işin en (bkz: cırt) çektiği yer. müşteri 1. gişede (server 1) biletini seçti, sepete attı. tam ödeyecek, başçavuş (load balancer) bunu 7. gişeye (server 7) yolladı. 7. gişe "hoş geldin abi, ne alırdın?" (sepet boş) derse, müşteri orada (bkz: amok koşucusu) gibi etrafa saldırır.

çözüm: ya müşterinin alnına "bu hep 1'e gidecek" (bkz: sticky session) diye yapışkan kağıt yapıştırırsın (ki bu scaling'in ruhuna aykırı) ya da tüm gişelerin ortak kullandığı bir (bkz: vestiyer) (redis, memcached) kurarsın ki, herkes müşterinin sepetini oradan görsün. (bkz: stateless application)

veritabanı (şişenin dar boğazı): sen 100 tane gişe açtın da, bu 100 gişe de gidip tek bir ana bilgisayardan (database) "koltuk boş mu?" diye soruyorsa, asıl yığılma orada başlar. gişeyi klonlamak kolay, veritabanını klonlamak (bkz: dağıtık sistemler) (bkz: bela) demektir.

özetle: horizontal scaling, "bir elin nesi var, iki elin (veya 200 elin) sesi var" atasözünün kodlanmış halidir. (bkz: mikroservis mimarisi) ile kanka olurlar, çünkü küçük servisleri klonlamak, kocaman (bkz: monolit) bir canavarı klonlamaktan daha kolaydır.

doğru yaparsan (bkz: netflix), yanlış yaparsan (bkz: biletix çöküş anı).
devamını gör...

bu başlığa tanım girmek için olabilirsiniz.

zaten üye iseniz giriş yapabilirsiniz.

"horizontal scaling" ile benzer başlıklar

normal sözlük'ü kullanarak 3. parti dahil tarayıcı çerezlerinin kullanımına izin vermektesiniz. Daha detaylı bilgi için çerez ve gizlilik politikamıza bakabilirsiniz.

online yazar listesini görmek için lütfen giriş yapın.
zaman tüneli köftehor rehberi portakal normal radyo kütüphane kulüpler renk modu online yazarlar puan tablosu yönetim kadrosu istatistikler iletişim