StackOverflow, Quora gibi sitelerde farklı farklı konuları incelerken hep bu "scalable" terimine rast geliyorum. BU ölçeklenebilirlik tam olarak ne demek? Ve sadece Java, Scala dillerinde mi var bu özellik? Python, Go, PHP gibi dillerde bu özelliğe sahip mi acaba? Yaptığım bir site "scalable" olsa ne olur olmasa ne olur?

Teşekkür ediyorum...

soruldu: 07 Ağu '14, 05:59

kagan's gravatar image

kagan
1.2k61323
cevap kabul oranı: 7%


Ölceklenebilirlik programlama dillerine has bir olgu degil. Bu terim ile bir uygulamanin ne oranda artan kullanici sayisi ile islevini sürdürebildigi ifade edilmektedir. Yüksek ölceklenebilir uygulamalar her kosulda tasarlandiklari sekilde calisirlar. Bunu saglamak icin örnegin uygulamanin paralel ve degisik sunucularda calisan kopyalari olusturulur. Bir yük dagitici (loadbalancer) ile kullanicilar degisik sunuculara dagitilir. Bu yük ve sunucu ayarlamasi kullanici sayisina göre dinamik olarak gerceklestirilebilir.

Cogu zaman bir uygulamayi birden fazla sunucuya dagitarak yüksek ölceklenebilirligi yakalamak mümkün iken, bu uygulamanin kullandigi veri tabani icin mümkün degildir. Bu sorunu cözmek icin replikasyon teknikleri kullanilarak, veri tabanini da degisik sunuculara yayilabilir.

Kullanilan programlama dilinin yüksek ölceklenebilirligi desteklemesi, yüksek ölceklenebilir özellikle bir uygulama gelistirmeyi kolastiracaktir. Örnegin Java'da Threadler yardimi ile bir sunucu bünyesinde belli bir seviyeye kadar servis sunulan kullanici sayisi artabilir. Uygulamanin ne oranda kullaniciya servis sunabilecegi kullanilan donanimin sahip oldugu özellikler ile dogrudan orantilidir. Artan her cekirdek ve hafiza alani ile uygulamanin o sunucu bünyesindeki ölceklenebilirligi artar. Bu tür ölceklenebilirlige boyuna ölceklenebilirlik (vertical scaling) ismi verilmektedir. Burada ölceklenebilirlik seviyesi kullanilan donanima baglidir. Bunun yani sira birden fazla sunucu kullanilarak enine ölceklenebilirlik (horizontal scaling) saglanabilir. Boyuna ölceklenebilirligin siniri donanimin kapasitesi iken, enine ölceklenebilirlikte sinir yoktur.

Genel olarak yüksek ölceklenebilir bir uygulamanin en belirgin özelligi yük altinda ezilmeden, sürekli gerektigi sekilde servis sunabilmesidir.

Yüksek ölceklenebilirligi ölcmek icin performans ve yük (load) testleri yapilir. Bu testler yardimi ile uygulamanin bir sunucu bünyesinde hangi yükle maksimum hatasiz calistigi tespit edilir. Buradan yola cikarak hangi kullanici kitlesi icin ne kadar sunucuya ihtiyac oldugu hesaplanabilir.

Yüksek ölceklenebilir uygulamalarin diger bir özelligi de cok karmasik yapida olmalaridir. Birden fazla sunucu kullanimi, veri replikasyonu, transaksiyon koordinasyonu gibi konular isletme mantigi yani sira yüksek ölceklenebilirligi saglamak icin gerekli kodun yazilmasini zorunlu kilar. Bu tür uygulamalarin bakimi ve gelistirilmeleri siradan uygulamalara kiyasla cok daha fazla efor sarfedilmesini gerektirir. Yüksek ölceklenebilirligin bedeli budur.

permanent link

cevaplandı: 07 Ağu '14, 06:35

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183
cevap kabul oranı: 52%

Ölçeklenebilirliği, farklı ve karmaşık bir kavram olarak düşünmeyin. Kelime aslında gayet basit anlamdadır. Herhangibir şeyin, herhangi bir özelliğinin ölçülebilir olması anlamı taşır.

Bunu bir sistem, yazılım veya herhangi bir network olarak düşünürseniz, bu kavramların her özelliğinin değişim/gelişim karşısında verdikleri tepkilerin ölçülebilir olması anlamını taşır. Mesela yazılım için düşünürsek, yeni bir istek geldiğinde ne kadar zamanda entegre edilebilir. Ve ya ne kadar iş yükünde, ne kadar performs kaybı olur. Yeni gereksinimler eğer yeni donanım gerektirecekse, bu donanımların özellikleri neler olacaktır. Yazılımda herhangi bir yeri değiştirmemizin bize zaman/maliyet açısından kaybı/kazanımı ne olur?

Ölçeklenebilirlik aslında, hangi kavram için kullanılırsa, o kavramı kesin ve ya yaklaşık olarak kesin bilgiler ışığında kontrol altında tutmak anlamını taşır. Yani kavramın (Java, php, phyton, ...) her özelliğinin matematiksel bir karşılığının olması anlamını taşır.

permanent link

cevaplandı: 07 Ağu '14, 06:37

AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

AliRıza Adıyahşi ♦
7.9k146288
cevap kabul oranı: 44%

değiştirildi: 07 Ağu '14, 06:39

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,079
×168
×41
×3
×2

Soruldu: 07 Ağu '14, 05:59

Görüntüleme: 1,986 kez

Son güncelleme: 08 Ağu '14, 03:48

powered by BitNami OSQA