Yazılımı Birden Çok Sunucuda Koşturmak
ASP.NET MVC5 ile geliştirilen bir projeyle ilgili sizlere bir sorum olacaktı, bilenler yol gösterici nitelikte yorumlarını yazarsa sevinirim. Projedeki temel sıkıntımız şu, proje firma içi sunucuda çalışacak, fakat sunucuya olur da bir şey olursa ikinci ya da üçüncü sunucu işi hemen devralıp yayına devam edecek. Sunucu olarak windows kullanılıyor, DBMS olarak MSSQL 2014.
Nasıl bir çözüm var bunun için. SQL tek bir sunucu da yazılım da 2 ya da daha fazla sunucuda mı barındırılması gerek. Eğer böyle oluyorsa SQL'in tutulduğu server çökerse yine bir anlamı kalmayacak. Firmanın istediği yazılımın barındırıldığı sunucu çöker ise diğe sunucu işi hemen devralsın.
Sunucu yönetimi hakkında pek bir bigim yok, şimdiden herkese teşekkür ederim.
11 Nis, 01:44 CodErode
İhtiyacınız olan temel şeyler Müslüm Bey'inde bahsettiği gibi bir load balancing yapısı kurmak. IIS'i bir kaç farkı yöntemle load balance edebilirsiniz. Bunlardan birisi windows server üzerindeki failover clustering yapısını kullanmak. Bir diğeri de HAProxy gibi 3rd PArty bir load balancer kullanmak. IIS i bu şekilde halledebilirsiniz. MSSQL için de Always On kullanmaktan başka çareniz yok. Always On özelliği windows fail over clustering kullanarak birden fazla Sql Server'ı yedekli bir şekilde kullanmanızı sağlar. Always On özelliği sadece Sql Enterprise Edition da var. Onunda lisansı baya baya pahalı. Bu yüke katlanabiliriz diyorsanız sizin için en sağlıklısı anlattığım yöntem. Database sunucuyu değiştirme gibi bir imkanınız varsa MySql'e geçebilirsiniz. MySql de master-master replikasyon var diye biliyorum.
13 Nis, 08:23 huseying
Teşekkür ediyorum, sadece projede değişiklik yapmak gerek mi diye araştırdım da genelde sunucuya kalıyor gibi görünüyor.
(14 Nis, 04:01)
Anladığım kadarıyla load balancing senin işini görecektir. burdaki ve buradaki anlatımlardan yararlanabilirsin.
Özetle Load balancer nedir? Aşağıdaki resimden de anlaşılacağı üzere uygulamayı n tane server'a kuruyoruz ve load balancer server'ın yükü yada durumuna göre gelen istekleri arkadaki serverlardan birine yönlendirip(url değişmiyor) çalıştırılmasını sağlıyor.
Burada tüm uygulamalar aynı db yi kullanmaktadır. Db yi günlük backuplarla yedeklemeli yada başka bir serverdaki db ile senkron olmasını sağlamak, db için olabilecek çözümlerdendir.
11 Nis, 04:18 Müslüm ÖZTÜRK
CEvabınız için teşekkür ederim, Failover Cluster diye bir teknoloji var onu da inceliyorum. Failover Cluster ile ilgili bilgili arkadaş varsa ona da sormak isterim.
Spesifik olarak şöyle bir sıkıntımız da olabilir. Sql Server başka bir server'da olup, bu server'ın yedeği olacak. Yani 2 adet serverda sql-server olacak ve bunlar herhangi bir kesinti karşısında diğeri hizmet vermeye devam edecektir. Ve ben sql'e erişirken tek ip adresinden erişmek istiyorum, arada bi router olup bi ip adresinden erişebilir miyim onu merak ediyorum.
11 Nis, 04:51 CodErode
Bunun icin amazonun ec2 sini kullanmanı tafsiye ederim. Senin ihtiyacını giderecek scalable cozumleri isini gorevektir. Sen sunucu konfigurationları ile zaman ve kaybak tuketmezsin. Veritabanınıda istedigin gibi dagıtıp replikalarını yaratabilirsin. Amazon bu sorunları kendisi cozecektir. https://aws.amazon.com/rds/sqlserver/
İstersen amazonun api'sini de kullanarak cok yuk bindiginde replikalarını o anda olusturadanilirsin. Aynı durum ec2 icinde gecerlidir. https://aws.amazon.com/ec2/
12 Nis, 01:27 yaqmoz
Teşekkür ederim fakat çözüm olarak şirket için network kullanılmak isteniyor. İnternete açılmak istemiyorlar. Sanırım Cluster Failover kullanmak zorundayız.
(12 Nis, 02:07)
Soruldu: 11 Nis, 01:44
Görüntüleme: 302 kez
Son güncelleme: 14 Nis, 04:01