Her biri kendine özgü verileri olan birden fazla hizmeti içeren bir web platformu inşa ediyoruz. Bu servisler Servis Odaklı Mimari ilkelerini takip ederek bağımsız olarak inşa edilir , ancak potansiyel olarak ilişkili verilere karşı işlem yaparlar. Bu hizmetlerin büyük bir veritabanını paylaşması gerekip gerekmediğini veya her birinin kendi veritabanına sahip olup olmadığını düşünüyoruz. (SQL Server 2008 Enterprise'ı bir Windows 2008 kümesinde kullanmayı planlıyoruz.)
Zaten dikkate aldığımız her yaklaşımın avantajlarından bazıları şunlardır:
Tek veritabanı
- Farklı servislerden gelen verilerin ilişkilendirilmesi yabancı anahtar kısıtlamaları ile birbirine bağlanabilir
- Analitik ekstrelerin yazılması daha kolay ve yürütülmesi daha hızlıdır
- Bir felaket durumunda, platformu tutarlı bir duruma geri yüklemek daha kolaydır
- Birden fazla servis tarafından referans alınan veriler için, bir servis tarafından önbelleğe alınan verilerin kısa süre sonra başka bir servis tarafından kullanılması muhtemeldir.
- Yönetim ve izleme daha basit ve daha ucuzdur
Birden çok veritabanı
- Bakım çalışmaları, donanım sorunları, güvenlik ihlalleri vb. Tüm platformu etkilemeyebilir.
- Her veritabanının ayrı bir donanımda olduğunu varsayarsak, birden fazla makineyi ölçeklendirmek, büyük bir tane ölçeklendirmekten daha fazla performans avantajı sağlar
Operasyonel açıdan bakıldığında, bu platformdaki her hizmetin kendi veritabanına sahip olması veya hepsinin aynı veritabanında olması daha avantajlı mı? Bu sorunun cevabını hangi kilit faktörler bildirir?