Cosmos DB'ye genel bakış

Tamamlandı

İşlevsel bir şirket içi veritabanınız varsa neden bunu Azure gibi bir bulut hizmetine taşımayı düşünmelisiniz? Benzer şekilde, neden Azure'da yeni bir veritabanı sistemi uygulamayı düşünmelisiniz? Bulutta yüksek oranda kullanılabilir ve ölçeklenebilir bir hizmet oluşturmak kolay ve ucuz olduğundan birçok şirket bu geçişi gerçekleştirir.

IoT teknoloji şirketinizde Cassandra ve MongoDB gibi çeşitli şirket içi sistemlerde NoSQL veritabanlarını çalıştırmak için çok fazla yönetim zamanı harcıyorsunuz. Veritabanlarını Azure'a geçirerek bu çalışmayı azaltabileceğinizi düşünüyorsunuz, ancak Azure'ın yarı yapılandırılmış veriler için sahip olduğu destek ve geçişi tamamlamak için ne kadar çalışma gerekeceği hakkında daha fazla bilgi edinmek istiyorsunuz. IoT cihazlarının yazılımını basit yeniden yapılandırma dışında bu geçişi destekleyecek şekilde değiştirmek istemezsiniz.

Burada, Azure'da NoSQL veritabanlarını barındırmak için kullanabileceğiniz özellikler ve teknolojiler hakkında bilgi edinirsiniz.

Kullanılabilirlik

Azure hizmet düzeyi sözleşmeleri (SLA) tarafından garanti edilen kullanılabilirlik, uygulamanızın kesin ayrıntılarına bağlıdır ancak bunlar her zaman yüksektir. Örneğin, tek bir bölgedeki Azure Cosmos DB için Microsoft ek ücret ödemeden %99,99 kullanılabilirlik garantisi sağlar. Birden çok bölgede dağıtılırsa, Microsoft hem okuma hem de yazma kullanılabilirliği için bu garantiyi %99,999'a yükseltir.

Şirket içi ağda bu kullanılabilirliği elde etmek istiyorsanız, donanım hatalarına dayanıklı bir sistemin mimarisini oluşturmanız gerekir. Gerekenler:

  • Birden çok fiziksel sunucu.
  • Sunucu hatası olduğunda sorguları yeniden yönlendirebilen bir yük dengeleyici.
  • Sunucular arasında veri paylaşan bir depolama alanı ağı veya sunucular arasında verileri çoğaltmanın bir yolu.
  • Dayanıklı ağ donanımı.
  • Çevre denetimli bir veri merkezi.
  • Kesintisiz güç kaynakları ve yedek jeneratörler.

Tüm bu bileşenler pahalıdır ve uygulamak ve çalıştırmak için beceri gerektirir. Ayrıca önemli yönetim kaynaklarını da tüketirler. Azure ile bu gereksinimler zaten çözülmüştür; yalnızca veritabanını oluşturursunuz ve yüksek kullanılabilirlik yerleşik olarak bulunur.

Ölçeklenebilirlik

Kullanıcı tabanınız büyürse sistem talebi de artar. Her şirket içi sistemin maksimum kapasitesi vardır; bu sınıra yaklaşırsanız, daha fazla donanım ekleyerek bunu artırmanız gerekir. Kapasiteyi anında ekleyemezsiniz. Bunun yerine, donanımı satın almalı, gerekli işletim sistemini ve yazılımı yüklemeli, güncelleştirmeleri uygulamalı ve ardından verileri yeni veritabanı örneğine eklemelisiniz. Tüm bunlar zaman alır.

Yüksek talebin genellikle geçici olduğunu da unutmayın. Örneğin, başarılı bir pazarlama kampanyası çalıştırırsanız trafiğin en yoğun olduğu ve ardından talebin daha düşük olduğu bir geri dönüş görebilirsiniz. Şirket içi bir kurulumda, sistemi bu zirveler için tasarlamanız gerekir. En yüksek yük için tasarım yapılması, sistemin çoğu zaman yetersiz kullanıldığı, ancak faturalarını yine de çalıştırdığı ve bakım gerektirdiği anlamına gelir.

Bu zorlukların bulutta üstesinden gelmek çok daha kolaydır. Sisteminiz kapasitesine ulaşırsa, örneğin daha büyük bir katmana geçerek veya sanal makineler ekleyerek hızla yanıt vekleyebilirsiniz. Talep düşerse kapasiteyi kaldırarak hızlı bir şekilde tasarruf edersiniz. Azure'da yalnızca kullandığınız kapasite için ödeme alırsınız.

Cosmos DB nedir?

Azure Cosmos DB, Microsoft'un bulut tabanlı çok modelli, küresel olarak dağıtılmış bir veritabanı sistemidir. Veritabanı Azure Cosmos DB'de barındırılır, her zaman kullanılabilir ve çevrimiçidir ve düşük gecikme süresi sağlamak için kullanıcılara yakın bir veri merkezinde barındırılabilir. Ayrıca Azure, Cosmos DB'nin esnek bir şekilde ölçeğini artırmaya ve azaltmaya olanak tanır. Ölçeği artırma ve azaltma, kullanılmayan kaynaklar için ödeme yapmadan gereken kapasiteyi ve performansı sağlar.

Verileri genel bulutta 54'ten fazla bölgeye sahip kullanıcılara yakın bir şekilde barındırmanın yanı sıra, Cosmos DB çözümünüze istediğiniz zaman başka Azure bölgeleri de ekleyebilirsiniz. Bölgeleri ekleyerek, otomatik çoğaltmaya ve bu kullanıcı tabanı genel olarak dağıtılmış olsa bile verileri kullanıcılara yakın bir şekilde barındırma olanağına sahip olursunuz. Bu çoğaltma çok ana model kullandığı için yayımcı ve abone olması gerekmez. Model, kullanıcılara hepsi tek bir merkezi veritabanı kullanıyor gibi görünür.

Cosmos DB, Azure ile tümleştirerek ve birden çok bölgede çoğaltma yaparak %99,999 kullanılabilirlik için bir hizmet düzeyi sözleşmesi (SLA) sağlar. Cosmos DB, Skype, Xbox ve Microsoft 365 dahil olmak üzere birçok Microsoft ürün ve hizmeti tarafından kullanılır ve bu nedenle 2010'da Project Florence olarak ve ardından Azure DocumentDB olarak genel kullanıma sunulduğundan beri uzun bir süre boyunca kapsamlı bir şekilde test edilmiştir.

Cosmos DB'nin verilerinizle etkileşime geçmek için kullanabileceğiniz API'ler vardır. Bu API'ler SQL, MongoDB, Cassandra, Gremlin ve Azure Tablo Depolama içerir ve gelecekte daha fazla API'ye katılma olasılığı yüksektir.

Cosmos DB'nin temel avantajları

Genel dağıtım

Cosmos DB, verilerin kullanıcılara yakın olduğundan emin olmak ve kullanılabilirliği iyileştirmek için bölgeleri sorunsuz bir şekilde eklemenize veya kaldırmanıza olanak tanır. Çok ana model kullanılarak veriler otomatik olarak çoğaltıldığından ve bir bölge eklenirken uygulamalar bile kullanılabildiği için bölge eklerken çoğaltmayı yönetmeye gerek yoktur.

Her zaman açık

Azure yüksek düzeyde kullanılabilirlik sağlar ve Cosmos DB tek bir bölgeye dağıtıldığında %99,99 SLA'ya sahiptir. Birden fazla bölgeye dağıtım yaparak %99,999 SLA'sından yararlanabilirsiniz. Bölgesel bir kesinti olduğunda birden çok bölge verilerinizin kullanılabilir olmasını sağlar ve bir Azure bölgesi hiçbir zaman kurtarılmasa bile çok bölgeli dağıtımda veri kaybı olmaz. Cosmos DB, bu türdeki SLA düzeyini sunan tek hizmettir.

Elastik ölçeklenebilirlik

Neredeyse her sistemin veri miktarı statik değildir. Geleneksel şirket içi sistemlerin, öngörülebilir gelecek için büyüme için kapasite sağlanması gerekiyordu ve bu da kısa vadede önemli ölçüde fazla kapasite gerektiriyordu. Cosmos DB ile kullandığınız kadar ödersiniz ve fazla sağlama yapmanız gerekmez. Üretilen aktarım hızı ve depolanan GB miktarı için aylık ücret ödeyerek yalnızca kullandığınız kadar ödersiniz. Daha fazla veri veya aktarım hızı gerekiyorsa, anında kullanılabilir ve bölümlenmiş bir koleksiyonla sınırsızdır.

Düşük gecikme süresi garanti edilir

Cosmos DB, dizine alınan okumalar ve genel olarak yazma işlemleri için 10 ms'den az gecikme süresi garanti eder.

Tutarlılık modelleri

Tutarlılık planlaması, birden çok kullanıcısı olan tüm veritabanları için ve daha da fazlası genel olarak dağıtılmış bir çözüm için gereklidir. Tutarlılık arttıkça kullanılabilirlik ve aktarım hızı azalırken gecikme süresi de artar. Tutarlılığı basitleştirmek için, Cosmos DB'nin en tutarlıdan en az tutarlıya kadar listelendiğinde Güçlü, Sınırlanmış Eskime Durumu, Oturum, Tutarlı Ön Ek ve Nihai olmak üzere beş düzeyi vardır. Cosmos DB veritabanınızın SLA'ları, seçtiğiniz tutarlılık modeline bağlıdır.

Şema ve dizin yönetimi

Cosmos DB ile şema veya dizin yönetimi yoktur. Cosmos DB tüm verileri otomatik olarak dizinler, ancak otomatik dizin oluşturmayı geçersiz kılabilirsiniz ve Cosmos DB altyapısı şemadan bağımsızdır.