19
Ölçekleme Web’ de ölçekleme ve teknolojiler

öLçekleme sunum

Embed Size (px)

Citation preview

Page 1: öLçekleme sunum

ÖlçeklemeWeb’ de ölçekleme ve teknolojiler

Page 2: öLçekleme sunum

Serüven Ne zaman Başlar Uygulama klasik şekilde yazılır ve hayata geçirilir. İlk başta her şey normaldir. İşlem yükü arttığında(bir çok durum

olabilir,kullanıcı taraflı düşüneceğiz) sistemin bunu nasıl karşılayabileceği ön görülmemiştir.

Ani (reklamlar,kampanyalar vs) veya doğal artan kullanıcı kitlesinin oluşturduğu işlem taleplerinden dolayı sisteminizde kilitlenmeler olumsuz sonuçlar almaya başlayabilirsiniz.

Page 3: öLçekleme sunum

Serüven Ne zaman Başlar Çok fazla talepten dolayı tükenen kaynaklardan

dolayı sistemin verememesi veya geç cevap (istenilen ölçülerde olmaması) vermesi durumunda ortaya çıkar.

Bu durumu önceden ön görmek gerekir. Aksi takdirde maddi ve manevi kayıplar olabilir. Kullanıcılar sisteminizden faydalanamaması müşteri/para kaybına yol açacağı gibi aniden karşılaşacağınız bu problemleri anlayıp stresli durumda hızlı çözüm bulmak çok kolay olmayacaktır.

Page 4: öLçekleme sunum

Ölçekleme (Scalability) Sistem/uygulamalarda artan işlem yükünü

sekteye uğratmadan karşılayabilme.

İki çeşit ölçekleme methodu vardır.

1) Dikey Ölçekleme (vertically scale)

2) Yatay Ölçekleme (horizontally scalable)

Page 5: öLçekleme sunum

Dikey Ölçekleme (vertically scale) Kullanılan makinenin donanımsal kaynaklarını

arttırarak ve/veya optimize ederek işlem kapasitesini arttırmak.

İlk akla gelen ve en çok kullanılan yöntemdir.

Maliyet artar. Her sonraki aşama katlanan maliyet.

Tek makine olduğu için olası kötü senaryolarda erişimi kaybedersiniz.

Page 6: öLçekleme sunum

Yatay Ölçekleme(horizontally scalable) Dikeyin aksine bir çok ucuz makinelerin bir araya gelerek

güçlerini birleştirmesi şeklinde açıklanabilir. İşlemler bu makineler arasında paylaştırılır. Bu sayede hem hızlı sonuçlar alınır hem de yedeklilik

sağlanır Yüksek erişebilirlik sağlar. Daha geniş ve kompleks yöntemdir. Birden çok makinenin

yönetilmesi bakımı üzerinde çalışan uygulamaların ortak hale getirilebilmesi gibi ekstra bir çok konu kapsar.

Page 7: öLçekleme sunum
Page 8: öLçekleme sunum

Load Balancer Gelen trafiği uygulamalarınız arasında belirlenen

yöntemde dağıtmaya/yönlendirmeye yarar. Donanımsal ve yazılımsal olarak 2 şekilde

sağlanabilir.

Page 9: öLçekleme sunum

Yükü Dağıtmak, Dağıtık Çalışmak Uygulamanın çalışan birer kopyaları ve bunlar

arasında trafiği paylaştırma işidir.

Tek çalışan uygulamanın birden çok kopyayla farklı makinelerde bulunarak çalışmasını sağlamada bazı problemlerle karşılaşırız.

Bunlar birden çok aynı iş üzerinde çalışan makine ve uygulamaların ortak konuşmasını sağlamanın gerekliliğidir.

Page 10: öLçekleme sunum

Neler ?

Session verileri File Store Statik dosyalar

Gibi tüm sunuculardan ortak şekilde ulaşılabilir, kullanılabilir olması gerekenler.

Page 11: öLçekleme sunum

Neler ? Session Session: Bilindiği üzere session verileri default/genel

olarak file system de tutulur.

Örneğin 3 sunucu üzerinde uygulamalarınızı çalışıtırıyorsunuz. 1.makineye gelen kullanıcı oturum açtığında o session bilgileri doğal olarak 1.makinede kaldı.

Bu durumda kullanıcı isteği 2 ve 3.makinelere load balancer ile geldiğinde oturum açmamış gibi davranılacak.

Veya makineler birbirlerinden haberdar olamayacak.

Page 12: öLçekleme sunum

Session Peki Çözüm:

1) persistent load balance Kalıcı Yönlendirme

2) share store Paylaşılan depolama

Page 13: öLçekleme sunum

Persistent Load Balance: Artı: Yazılım tarafında değişikliğe gitmeye gerek

yoktur.

Eksi: Load balancer da darboğazlar oluşabilir. Sunucuda oluşabilecek problem veri kaybına yol

açar.

Page 14: öLçekleme sunum

2. Share Store Artı: Load balancer darboğazları yaşamaz. Belirlenen depolarda veriler saklanır(Db, memory

vs) Yönetimi daha kolay ve işlenebilir.

Eksi: Yazılım mimarisinde değişiklikler gerektirir.

Page 15: öLçekleme sunum

Session Management Php de session store değiştirmek için php.ini de

bulunan session ayarları düzenlenmeli.

Session handler ile session verilerinin nerede saklanacağı session name gibi bilgilerle özelleştirebileceğimiz ayarlar.

http://php.net/manual/en/session.customhandler.php

Page 16: öLçekleme sunum

Share Store Türleri Paylaşımlı depolama türleri:

File System Database Memcached Redis

Diğer çözümler.

Page 17: öLçekleme sunum

Bu yöntemler ile tüm makinelerin ortak ulaşıp kullanabileceği veriler sağlanıyor.

Proje kapsamına göre değerlendirmeler sonucu uygun çözümler kullanılabilir.

Cache için de sıkca başvurabileceğimiz memory tabanlı çözümler sık tercih edilir ve hayat kurtarır.

En bilindikleri memcached, redis

Page 18: öLçekleme sunum

Önbellekleme İsteklere karşı daha hızlı cevap verebilmek adına

talep edilen verilerin bellekte depolanarak buradan sağlanması.

Tekrar tekrar db veya diğer veri sağlayacılardan veri talep etmek yerine cache suncuları araya girerek buradan veri işleme yöntemidir.

Page 19: öLçekleme sunum

Önbellekleme Tekrar gerektiren verileri veya karmaşık sorgular

sonucu ortaya çıkan veriyi saklayarak işlem ve kaynak tasarrufu sağlar.

Memory tabanlı oldukları için çok hızlıdırlar. Key value şeklinde çalışırlar. Veriler kalıcı değildir.(Genellikle)

Redis, memcached, xcache, apc …