Skip to main content

NoSQL üzerine düşündüklerim

Bu aralar NoSQL sistemler oldukça popüler. Ama o kadar çok seçenek var ki gerçekten hangisi hangi senaryolarda en performanslısı bilen yok! Herkes kendi ürününün daha performanslı olduğunu söylüyor ve blog yazıları ve benchmark'larla buna inandırmaya çalışıyor. İşin tuhaf yanı, bütün testlerde sonuçlar hep testi yapan firmanın ürününü açık ara önde gösteriyor. Ve diğer test sonuçlarını yalanlarken de tek bahane olarak hatalı yapılmış konfigürasyonlar gösteriliyor. O zaman neden bu sistemler ilk kurulumda en performanslı çalışacak şekilde konfigüre edilmiyor? Sonuçta biz bu sistemleri denerken hepsinin uzmanı olarak deneyip karar veremeyiz ki!

Neyse işin diğer tartışılacak tarafı ise bence şöyle: İyi hepsi hoş, bir NoSQL sistemini bir web uygulaması veya IoT uygulamasının bazı verilerini kaydetmek için kullanmaya karar verdik diyelim. Senaryomuzda saniyede 200K veriyi kaydetmemiz gerekiyor. Ve NoSQL bir sistemle (bazısında 1 bazısında 10 sunucu ile) bunu hallettik. Peki bu saniyede 200K requesti alıp NoSQL sisteme gönderecek web api'sini hangi dille geliştirip hangi sunucu üzerinden host edeceğiz? IIS olmaz, Apache olmaz, Ngnix olmaz, vs vs. Olur da tek sunucuyla ve düşük maliyetlerle olmaz.

Peki bu işi tek sunucuyla yapabilecek bir dil ve sunucu hiç mi yok? Elbette var! Mesela Whatsapp'ın ve Facebook Messenger'ın altyapısında kullanılan Erlang dili ile kendi sunucumuzu geliştirebiliriz. Veya orda da birçok open source web sunucu alternatiflerini deneyerek en stabil ve performanslı çalışanını kullanabiliriz. Ama şimdi de yeni bir dil üzerinde ekstra zaman ve kaynak harcamamız gerekecek.

Peki yazılım mühendisleri için en optimum çözüm nedir burada? Şimdi bu soruya Microsoft tarafından bir cevap Azure Event Hub veya yeni çıkan Azure IoT Hub'ı kullanmak şeklinde olabilir. Ama orada da ciddi maliyetler oluşuyor. Yani bu problemin az kaynak ve zamanla en az maliyetle bir çözümü yok! Ya zaman ve kaynak ayırıp uzun vadede az para harcayacaksın ya da zamandan ve kaynaktan tasarruf edip sürekli çok para harcayacaksın. Tabi ber problemde olduğu gibi burda da senaryolar çok önemli. Eğer bir startup'sanız ilk etapta zaten fazla para harcayacak bir işiniz olmayacak dolayısıyla Azure, AWS veya başka cloud servisler en iyi çözüm olabilir. İşler yolunda giderse zamanla daha az maliyetli çözümler için zaman ve kaynak ayırırsınız. Veya geliriniz çok iyidir fazla sunucu maliyeti aklınıza bile gelmez.

Bu arada özellikle IoT ile alakalı işlerde Azure IoT Hub gibi hazır servislerin de bazen kullanılması pek mümkün olmuyor. IoT raspberrypi'lerle veya benzeri güçlü sistemlerle olmuyor genellikle. Bu da ayrı bir problem!

Aslında bu konu çok uzar ben de bu kadar sabırlı bir adam değilim. İçimden geldi biraz yazayım dedim ama artık sıkıldım :) Maksat muhabbet olsun siz de bişeyler yazarsanız bana da okuyacak bişeyler çıkar. Şahsen yazmaktan çok okumaya daha meyilliyim.

Benden bu kadar yeter biraz da sizlerden dinleyelim.

Teşekkürler.

Comments

Mehmed said…
Eline saglik Murad hocam.

Popular posts from this blog

DigiTurk Magazine Reader

DigiTurk is the first and only fully digital satellite television provider in Turkey. In addition to satellite TV for millions of customers in Turkey, they publish magazines and run DigiWeb portal. Like many other magazing publishers, DigiTurk saw value in using Silverlight to provide a richer reading experience. But they took the idea a step further, and built a tool which can be used by any magazine publisher to create Silverlight-based magazines. Tim Sneath sat down with the team from DigiTurk to get a demo and hear about how they built this cool solution. http://www.visitmix.com/blogs/news/digiturk/

Ajax with the ASP.NET MVC Framework

Hopefully everyone had a good few days off. Before the holiday break, I did some app-building on top of the ASP.NET MVC framework. Actually rather than building some sort of fancy app, instead I was prototyping some features on top of the framework bits slated for an initial release. I've shared out the sample code, sample app and tests - yes, sorry for another tease :-)... but stay tuned... and you'll soon have actual bits to play with as well. Until then, you can download the sample code and browse it locally, and follow along the rest of the post. In particular there are two projects within the solution: TaskList (the web app) and AjaxMVC (a class library with Ajax extensions). One of the prototypes is around bringing some basic Ajax functionality - basically to get post-back-less partial rendering and some behavior-like extensions to associate with DOM elements - sort of like ASP.NET Ajax but in a manner that fits with the pattern around how controllers and views are writte...

Oracle Forms ile Web Servislerine Erişim

Geçtiğimiz günlerde çalıştığım şirket, başka bir yazılım şirketine teknolojik destek vermek için beni görevlendirdi. Oracle Forms Developer kullanılarak geliştirilmiş bir hastane otomasyonun bazı web servislerini kullanması gerekiyordu. 3-4 günlük bir çalışmanın ardından görevimi başarıyla tamamladım çok şükür. Yalnız gerçekten bu çok kolay olmadı. Çünkü Oracle Forms direkt olarak web servislerine erişmek için bir teknoloji barındırmıyordu bünyesinde. Yaptığım araştırmalar sonucunda Oracle Forms'un Java class'larını import edip, kullanabildiğini gördüm. İşte bu durumda problemi çözmüş olduğumu hissettim. Ama yinede beni bekliyen engeller vardı. Bundan emindim çünkü hiç bilmediğim bir ortamda bilmediğim kodları yazacaktım. Ayrıca java konusunda bilgi sahibi olsamda çok tecrübeli değildim ve uzun zamandır java ile ilgilenmemiştim. Ve düşündüğüm gibi birçok problem çıktı karşıma. Ama yinede bu problemleri tek tek aşıp çözüme gitmeyi başardım. Bir Murphy kanunu: "Eğer çıkması ...