Sunucusuz yazılım mimarisiyle coğrafi bilgi sistemi tasarımı ve uygulaması

thumbnail.default.alt
Tarih
2022-06-16
Yazarlar
Pakdil, Mete Ercan
Süreli Yayın başlığı
Süreli Yayın ISSN
Cilt Başlığı
Yayınevi
Lisansüstü Eğitim Enstitüsü
Özet
Bulut bilişim teknolojileri her şeyin bir servis (Everything as a Service) olduğu bir anlayışla birlikte gelişmektedir. Her geçen gün ortaya konan yeni bir altyapı yönetim yaklaşımına da bu kapsamda isimler verilmiştir. Günümüzde bulut bilişim altyapısının yönetiminde farklılıklar sunan üç farklı servis modeli bulunmaktadır. Bu servis modelleri; Hizmet olarak Altyapı (HoA - Infrastructure as a Service), Hizmet olarak Platform (HoP - Platform as a Service), Hizmet olarak Yazılım (HoY - Software as a Service) şeklinde isimlendirilmektedir. Her bir servis modeli bir diğerine göre daha fazla bulut bilişim altyapısının yönetimini soyutlaştırarak farklılaşmaktadır. Bu üç modele ek olarak ortaya çıkan sunucusuz paradigması ise HoY ile HoP arasında konumlandırılabilir. Bu paradigma içerisinde ortaya konan sistem mimarileri de sunucusuz mimariler olarak adlandırılmaktadır. Sunucusuz kavramı ismen yanıltıcı olabilmekte ve kullanıcıda fiziksel veya sanal bir sunucu yok algısı oluşturmaktadır. Bu algının aksine uygulamalar ve hizmetler yine sunucular üzerinde çalışmakta ancak sunucunun tüm yönetimi bulut bilişim sağlayıcısı tarafından yapılmaktadır. Sunucusuz mimariler özellikle yüksek ölçeklenebilir uygulamalarda bilişim altyapısının yönetimi giderek zorlaşması nedeniyle daha çok tercih edilmektedir. Konteyner teknolojisi sunucusuz paradigmasının gelişmesinde büyük rol oynamıştır. Sanal makinelere göre uygulamaların başlama hızı, taşınabilirliği ve kullanılabilirliği daha iyileştirmiş olması nedeniyle konteyner kullanımı giderek yaygınlaşmıştır. Bu yeni akım farklı teknik zorlukları ve çözümlerini de beraberinde getirmiştir. Özellikle birden çok konteyner uygulamasının birlikte çalışması ve yüksek ölçeklenebilirliğin sağlanabilmesi problemi için konteyner orkestrasyon platformları çözüm olarak ortaya çıkmıştır. Bunlardan en bilinen konteyner orkestrasyon platformu Kubernetes olarak adlandırılmaktadır. Bulut bilişim sağlayıcıları hızla konteyner orkestrasyon platformlarını kendilerine dahil ederek hizmet olarak sunmaya başlamışlardır. Bu platformların getirdiği kolaylıklar beraberinde yeni gereksinimler de doğurmuştur. Konteyner orkestrasyon yazılımlarının doğru şekilde yapılandırılması ve sağlıklı çalışabilmesi için kullanıcıları için ileri düzey bulut bilişim altyapısı bilgisine sahip olma ve eğitiminin alınmasını gerektirmektedir. Sunucusuz hizmetler bu gereklilikleri ortadan kaldırarak kullanıcıların ileri düzey altyapı bilgisi sahibi olmadan da yüksek ölçeklenebilir uygulamaları bulut bilişim platformları üzerinde çalıştırabilmelerini sağlamaktadır. Sunucusuz mimarilerin giderek yaygınlaşması ve bulut bilişim sağlayıcıları tarafından benimsenmesi ile farklı bulut bilişim hizmet modelleri ortaya çıkmıştır. Herhangi bir yazılım sistemi mimarisinin tasarımında iki temel bileşen türü sıklıkla kullanılmaktadır. Bunlar hesaplama ve veri depolama bileşenleridir. Bu çalışmada da sunucusuz hizmet modelleri veri depolama ve hesaplama olarak iki grupta incelenmiştir. Böylece çalışmada sunulan sistem mimarilerindeki temel gereksinimler bu gruplardan karşılanmıştır. Çalışmada veri depolama hizmetleri de kendi içinde yapısal ve yapısal olmayan veriler için iki gruba ayrılarak incelenmiştir. İlk grupta incelenen yapısal veri depolama hizmetleri ise verilerin sorgulanma yeteneklerine göre iki alt grupta incelenmiştir. Yapısal veri türleri; belge, sütun ailesi, anahtar-değer (key-value) ve çizge (graph) türünde sınıflandırılarak incelenmiştir. Literatürde bu veri depolama türleri NoSQL adı altında toplanmaktadır. Bunun sebebi ise veri sorgulamanın SQL dili dışında özel geliştirilmiş diller veya API'larla sunulmasıdır. Sistem mimarilerinde yapısal veri depolama hizmetlerinin seçimine kullanım şekline bağlı olarak karar verilmelidir. Örneğin anahtar-değer veri tabanlarında anahtar alanı dışında sorgulama yapılmak istendiğinde sorgulama hızı diğer depolama türlerine göre oldukça yavaş ve verimsiz olacaktır. Çalışmada sunulan sistem tasarımlarında bu veri depolama hizmetleri kullanılarak CBS uygulamalarında nasıl katkı verebilecekleri gösterilmiştir. Bir diğer yapısal veri depolama alt grubunda ise ilişkisel veri depolama hizmetleri bulunmaktadır. Burada incelenen veri depolama hizmetleri ise verilerin SQL diliyle sorgulanmasını sağlamaktadır. Bir diğer karakteristik özelliği ise verilerin tablolar halinde saklanması ve tablolar arasında belirli anahtar değerler üzerinden ilişki kurulabilmesidir. İlişkisel veri tabanları birçok mevcut CBS sunucusu yazılımı tarafından desteklenmektedir. Bu nedenle bu hizmet türünün varlığı mevcut CBS mimarilerinin sunucusuz mimarilere taşınmasını kolaylaştırmaktadır. Yapısal olmayan veri depolama hizmetleri ise verilerin yapısından bağımsız olarak onları ikili (binary) objeler olarak saklanmasını sağlamaktadır. Literatürde saklanan bu verilere BLOB ismi verilmektedir. Ayrıca yapısal veri depolama hizmetlerinin klasik dosya sistemlerinden nasıl ayrıldıkları da açıklanmıştır. Depolanan objelere birer anahtar değer verilerek bu değerler üzerinden hızlı erişim sağlanmaktadır. Yapısal olmayan veri depolama hizmetlerinin bir diğer özelliği ise yüklenen HTML sayfalarını yardımcı dosyalarıyla birlikte web sitesi olarak sunabilmesidir. Çalışmada bu özellikten faydalanılarak bir web CBS uygulamasının yapısal olmayan veri depolama hizmeti üzerinde nasıl konumlandırılabileceği de açıklanmıştır. Çalışmada sunucusuz hesaplama hizmetleri de kendi içinde fonksiyon ve konteyner türünde iki gruba ayrılarak incelenmiştir. Çalışmada fonksiyon türündeki hizmetler Hizmet olarak Fonksiyon (HoF) ve konteyner türündeki hizmetler ise Hizmet olarak Konteyner (HoK) olarak isimlendirilmiştir. İki hizmet türü de temelde konteyner teknolojisini kullanmaktadır. Konteyner ve fonksiyon hizmet türü arasındaki fark kullanıcıların hangi seviyede geliştirme yapabilmesi üzerinden oluşmaktadır. Konteyner hizmet türündeki sunucusuz hesaplama hizmetleri kullanıcılara uygulamanın çalışacağı konteyneri özelleştirebilmesini de sağlar. Fonksiyon türündeki sunucusuz hesaplama hizmetleri kullanıcıların yükledikleri uygulama kodunu çalıştırırlar. Platforma bağlı olarak destek verilen programlama dilleri de değişiklik göstermektedir. Uygulamalar olay güdümlü olarak çalışırlar. Olayların kaynağı ise platform üzerindeki diğer bulut bilişim servisleri olabileceği gibi internet istekleri de olabilir. Çalışmada akıllı şehir mimarilerinde sıkça kullanılan nesnelerin interneti sensörlerinin olay kaynağı olarak fonksiyonları olay güdümlü olarak nasıl çalıştırabildiği bir örnekle açıklanmıştır. Çalışmada yapısal olmayan veri depolama hizmetlerinin sunucusuz hesaplama hizmetleri ile olan ilişkisi de incelenmiştir. Yapısal olmayan veri depolama hizmetleri üzerindeki objelere ait durum değişimleri ve yeni objelerin eklenmesi sonucu üretilen olaylar sunucusuz hesapla hizmetlerini tetikleyebilmektedir. Konteyner türündeki sunucusuz hesaplama hizmetleri ise kullanıcıların hazırladıkları konteyner imajlarını çalıştırırlar. Özellikle bir uygulamanın çalışması için işletim sistemine kurulması gereken bağımlılıkları varsa HoF modelinde bu bağımlılıkların kurulmasına izin verilmezken HoK bu konuda çözüm sunmaktadır. Mevcut CBS sunucusu yazılımları sunucusuz mimariye taşınırken daha özgür bir çalışma ortamı sunduğu için HoK modeli tercih edilmektedir. HoK modelinin bir diğer tercih nedeni ise HoF modeline göre daha uzun sürelerde çalışmayı sağlamasıdır. Her şeyin bir servis olduğu bulut bilişim dünyasında sunucusuz hizmetler sadece iki grup üzerinden düşünülmemelidir. Bir sistem mimarisinin ihtiyaç duyabileceği hata günlüklerinin tutulması, uygulama ayarlarının saklanması veya mesaj kuyrukları gibi hizmetlerde sunucusuz hizmetler çatısı altında sunulmaya başlanmıştır. Literatürde bu hizmetlere destek servisleri (back-end services) de denilmektedir. Çalışmada sunulan sistem mimarilerinde bu servisler de açıklanarak kullanılmıştır. Çalışmada en çok kullanılan iki bulut bilişim sağlayıcısının sunduğu sunucusuz hizmetler veri depolama ve hesaplama türlerine göre ayrı ayrı incelenmiştir. Sunulan hizmetlerin mekânsal bilişim özellikleri de kullanım şekilleriyle birlikte verilmiştir. Her bir bulut bilişim sağlayıcısının sunucusuz hizmetlerde uyguladıkları ekonomik model de açıklanmıştır. İki bulut bilişim sağlayıcısının sunucusuz hizmetleri karşılaştırmalı olarak da incelenmiş ve farklar irdelenmiştir. Sistem mimarilerinin değerlendirilmesi için kullanılan iki farklı değerlendirme yöntemi açıklanmıştır. Bu değerlendirme yöntemlerinin sunucusuz mimarilere uygulaması detaylı bir şekilde açıklanmıştır. Yöntemlere ait ölçüt ve prensiplerin sunucusuz mimariler için uygulanabilirlikleri değerlendirilmiştir. Çalışmada vektör karo harita servisi, raster karo harita servisi, mekânsal zekâ, olay güdümlü deprem bildirim servisi ve mekânsal analiz iş akışı sistemlerinin sunucusuz mimaride sistem tasarımları sunulmuştur. Her bir tasarım CBS kullanım senaryoları, roller ve gereksinimler açıklanarak desteklenmiştir. Tasarımlar seçilen bir bulut bilişim sağlayıcısı üzerinde uygulanarak açıklanmıştır. Tasarım ve uygulamalar çalışmada açıklanan 12 Faktör yöntemi ve bulut bilişim sağlayıcılarının mimari değerlendirme ölçütlerine göre değerlendirilmiştir. Mekânsal analiz iş akışı sistemi tasarımında kullanılmak üzere iş akışlarının tanımlanabilmesi için iş akışı ve iş akışı görev tanımları da geliştirilmiştir. Böylece kullanıcıların kolaylıkla sunucusuz mimaride çalışmak üzere mekânsal iş analizlerini tasarlamalarına imkân sunulmuştur. Sunucusuz mimariler CBS kullanım senaryoları üzerinden literatürde ilk kez bu kadar kapsamlı incelenmiştir. Çalışma kapsamında incelenen sunucusuz hizmet türlerinin mekânsal özellikleri literatürde ilk kez bir arada derlenerek incelenmiştir. Sunulan mekânsal analiz iş akışı sistemi ve sistemin ortaya koyduğu iş akışı tanımlama tasarımları da literatürde özgündür. Bu tez çalışmasının hedeflerinden biri de sunucusuz mimarilerin mekânsal bilişim sistemlerinde daha fazla kullanılmasına öncülük etmek ve mekânsal bilişim kullanıcıları içinde farkındalığının artmasını sağlamaktır. Çalışmada sunulan öncül tasarımların gelecekte yapılacak benzer çalışmalara kılavuz olması beklenmektedir.
Açıklama
Tez(Doktora) -- İstanbul Teknik Üniversitesi, Lisansüstü Eğitim Enstitüsü, 2022
Anahtar kelimeler
bilgi teknolojisi, information technology, coğrafi bilgi sistemleri, geographical information systems, konumsal bilgi sistemi, spatial information system, yazılım mimarisi, software architecture
Alıntı