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.
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