Bir uygulama veya bir veri ambarı projesi için bir veritabanı seçmek, uzun vadeli bir kararlılık gerektirir. Veritabanı uygulamanızın temelidir ve tüm bilgilerinize güvenli bir depolama ve erişim sağlar. Veri olmazsa uygulama da uygulamanız da olmaz. Bu yazı, uygulama veya mikro hizmet geliştirmek için tasarlanmış olan operasyonel veritabanlarına odaklanacaktır. Böyle bir segmentasyon yaptığımızda bile piyasada hala yüzlerce veritabanı seçeneği olduğunu görüyoruz. Eğer hizmet olarak veritabanı arıyorsanız, tüm satıcılar ürünlerini tam olarak yönetilen bir hizmet olarak sunmadığından seçenekleriniz daha az olacaktır. Uygulamaya farklı işlevler eklemek ve zaman içinde geliştirmek, seçtiğiniz veritabanına bağlı olarak ya daha kolay ya da daha zor olacaktır. Bazı veritabanları çok özel yetenekler sunarken, bazıları ise daha geniş ölçekte ve esnektir. AWS, Google Cloud ve Microsoft Azure gibi bulut sağlayıcıları, her biri belirli yeteneklere odaklanan çeşitli DBaaS teklifleri sunar. Bu opsiyonlar bazen yardımcı olmaktan çok kafa karıştırıcı olabilir. Buradaki olumlu nokta ise bu kadar sağlayıcı arasında tercih yapma şansınızın olması, ihtiyacınız olan DBaaS’ı bulmanız için daha fazla opsiyona sahip olmanız anlamına geliyor.
DBaaS Kriterleri
Piyasada yer alan birçok bulut veritabanı bir noktada farklılaşan olan ortak özellikler sunuyor. İşte aramanızda üstünde durmanız gereken birkaç alan.
Veri yapısı
İlişkisel veritabanı yönetim sistemleri (RDBMS’ler), verileri etkin bir şekilde depolamak için tasarlanmıştır. Bu da sabit ve önceden tanımlanmış bir maliyetle gelir. Verimliliğin avantajları olsa da, uygulamaların ve mikro hizmetlerin çok hızlı değiştiği modern bir çevik yazılım geliştirme modelinde bu katılık olumsuzluğa yol açabilir. Uygulama gereksinimleri her değiştiğinde veritabanı şemasını değiştirmek durumunda kalmak, geliştirmeye ayrılacak zamanı azaltacaktır. NoSQL veritabanları bu kısıtlamadan muaftır ve geliştiricilere ürünleri daha hızlı geliştirebilmeleri için daha fazla esneklik sağlar. Ayrıca, en iyi NoSQL veritabanları, genel olarak esnekliği korurken işlemleri de destekler.
Sorgu Kalıpları
Tüm veritabanlarında en yaygın sorgu dili SQL’dir. İlişkisel veritabanlarının hâkimiyeti ve dilin kendisinin kullanışlılığı nedeniyle onlarca yıldır kullanılmaktadır. Okunması/anlaşılması kolaydır ve esneklik açısından muhteşemdir. Bununla beraber, daha basit ve daha hızlı veri alımı için anahtar-değer gibi başka veri alma yolları da bulunmaktadır. Tüm metin arama olarak da bilinen “fuzzy” arama sorguları, uygulamalar içinde kullanıcılar için arama işlevi sağlayan çok kullanışlı bir veritabanı özelliği olabilir. Popülaritesi artan bir başka opsiyon da, yüksek seviyede bağlantılı veri kümeleriyle çalışan GraphQL’dir. İhtiyaçlara (şimdiki ve gelecekteki) göre, DBaaS’ın sorgulama ihtiyaçlarınızı karşıladığından ve farklı popüler programlama dilleri için bir yazılım geliştirme kiti ile birlikte geldiğinden emin olun.
Tutarlılık
İlişkisel veritabanlarının popülaritesi kısmen ACID özellik desteğine bağlanabilir. Açılımı; bütünlük, tutarlılık, bağımsızlık ve dayanıklılık anlamına gelen ACID, veri işlemlerinin korunmasını ve doğruluğunu sağlar. Modern uygulamalarla birlikte, işlemlere gerek kalmadan hıza olan ihtiyaç artmaktaydı ve NoSQL veritabanları, nihai tutarlılık için ACID’den vazgeçti. Bugün, birçok NoSQL veritabanı, bir tür güçlü tutarlılık (ACID gibi) ve nihai tutarlılığın bir karışımını sunarak geliştiricilere uygulamalarını nasıl oluşturacakları konusunda daha fazla esneklik sağlıyor. Bu yüzden, ACID gereksinimleri açısından ihtiyaçlarınızın spektrumunu ve bunun belirli bir sağlayıcı ile nasıl uyumlu olduğunu anlamak büyük önem taşır.
Dağıtım Seçenekleri
DBaaS’ı, kendi kendini yöneten bir sistemle kıyaslandığımızda dağıtım ile ilgili çok daha az iş olduğunu görürüz. Veritabanını ve onu desteklemek için gereken tüm kaynakları sağlamalı ve hizmet, minimum kesinti süresi ile çalışabilmelidir. Dolayısıyla, kullanılabilirlik ihtiyaçlarınız için bulut sağlayıcısı seçimlerinizi, bölgelerinizi ve kurulum seçeneklerini düşünmeniz gerekir. Öyleyse, daha geniş bir geliştirme zaman çizelgesinde veritabanı platformunun diğer seçenekleri nelerdir? Asgari yeterlilikte bir ürün oluşturmak için indirilebilir bir sürüm var mı? Ya vites değiştirmeniz ve firma içinde dağıtmanız gerekirse? Tüm seçenekleri önceden bilmek, gelecekte meydana gelebilecek büyük bir yanlışı önleyebilir.
Olgunluk
Daha önce de belirttiğimiz gibi, piyasada çok fazla sayıda veritabanı bulunuyor. Bazılarının popülaritesi artarken diğerlerinin düşecek. Bunlardan birini tercih etmek kısa vadede işinizi görse de uzun vadede canınızı yakabilir. Bazen daha olgun bir ürünü tercih etmek, ihtiyacınız olacağını bilmediğiniz veya önceden fark etmediğiniz birçok fayda sağlayabilir ve bu nedenle minnettar kalabilirsiniz. Olgun bir ürün genellikle daha iyi istikrar, destek ve esneklik sunar.
Yüksek Kullanılabilirlik ve Felaket Kurtarma Çözümü
Kim veritabanının çökmesini ister? Tabii ki hiç kimse. Kullanıcı sayısı, veri hacimleri, kapsanacak bölgeler vb. açısından veri gereksinimlerinizin ne kadar karmaşık olduğuna bağlı olarak, DBaaS’ınızın yüksek kullanılabilirlik ve felaket kurtarma çözümü konusunda nasıl olduğunu anlamanız büyük önem taşır. Bazıları çekirdek mimari ve felaket kurtarma çözümü opsiyonları açısından diğerlerinden daha iyidir ve genellikle ihtiyacınız olan garanti çalışma süresine sahip olmanızı sağlamak için ek maliyetler olacaktır.
Ölçeklenebilirlik
Kolay ve otomatik ölçeklendirme, tüm DBaaS tekliflerinde olması gereken bir şey olmasına karşın çalıştıkları farklı yollar vardır. Bazı DBaaS’lar, otomatik ölçeklendirmeyle birlikte kullanım başına ödeme temelinde sunucusuz bir modelde ölçeklenir. Bu işinizi kolaylaştırabilir fakat işler beklentilerin çok ötesine geçerse de oldukça maliyetli olabilir. Tedarik modeller ise biraz daha fazla iş ile esnek ölçeklendirme sunar, fakat CPU çekirdekleri, bellek, depolama kapasitesi ve daha fazlası için ek kontrol içerir. Tüm bu özellikler hiçbir zaman uygulamada değişiklik gerektirmemelidir.
Mobil ve Edge Yetenekler
DBaaS’ınızın verileri bir mobil veya edge uygulamayla senkronize etmesi gerekecek mi? Veri senkronizasyonu nasıl yapılacak? Mobil uygulamanın ağ bağlantısı olmadan çalışması gerekiyor mu? Bunlar, uygulamanızı çevrimdışı öncelikli hale getirmenize yardımcı olabilecek mobil gömülü bir veritabanı düşünürken üzerinde durulması gereken türden sorulardır.
Güvenlik
Güvenlik, kuruluşlar ve hackerlar arasında bitmek bilmeyen bir mücadeledir. DBaaS sağlayıcınızın, gelişkin, çok katmanlı güvenlik teknolojileri ve 7/24 izleme sağladığından emin olmalısınız. Sistemler, veriler hem hareketsiz hem de hareketli haldeyken özel ağ ve şifreleme içermelidir. DBaaS sağlayıcıları, genellikle güven merkezi web sayfalarında ayrıntılı ve teknik incelemeler sunar.
Maliyet
Maliyet, veritabanı seçiminde her zaman bir faktördür. Birtakım DBaaS’lar oldukça basit ve ücretsiz bir katman sunar fakat bu gerçek bir uygulama için hiçbir zaman yeterli değildir. Bu nedenle toplam sahip olma maliyetini (TCO) ve bu maliyeti, okuma/yazma performansı ihtiyaçları, genel yetenekler ve sistem ölçeklenirken desteklenebilecek toplam kullanıcı sayısıyla nasıl dengeleyeceğinizin üzerinde durmalısınız.
Sonuç
Bir DBaaS seçerken hız, esneklik, pazara sunma süresi ve göz önünde bulundurulması gereken maliyetler gibi birçok faktörün uygulama gereksinimlerinizle uyumlu olduğundan emin olmalısınız. Doğru bulut veritabanı platformunu seçmek hiç de kolay değildir. Birçok kuruluş, önemli uygulamaları için riski, veri yayılımını ve toplam sahip olma maliyetini azaltırken, esnekliği, performansı ve istikrarı artırmak için Couchbase’i tercih ediyor.