Mikroservis ekosisteminde servis durum yönetimi
Service status management in the microservis ecosystem
Yazar: FURKAN KARATAŞ
Danışman: DOÇ. DR. AKHAN AKBULUT
İstanbul Kültür Üniversitesi / Lisansüstü Eğitim Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı / Bilgisayar Mühendisliği Bilim Dalı
Derece: Yüksek Lisans, 2021
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
21.yy başlarında Amazon, eBay, bestbuy.com gibi büyük şirketlerin yapıları monolitik haldeydi. Bu şirketler günümüzün getirdiği yenilikleri ve değişiklikleri sistemlerine hızlı biçimde uygulayamıyordu. Bunun nedeni ise monolitik yapının tek bir halde olması ve içerisindeki değişikliklerin sistemin tamamını etkileyecek sonuçlar doğurmasıydı. Ardışık değişiklikleri yapabilmek için bu şirketler mikroservis mimarilerini kullandılar. Sistemleri servislere ayırarak bu değişiklikleri daha hızlı adapte edebildiler. Mikroservislerin daha esnek ve ölçeklendirilebilir yapıya sahip olabilmesi için bu işlemleri sadece ilişkisel veri tabanı modellerinde yapmak yerine uygulama ile veri tabanı arasındaki ön bellek sistemini kurgulayarak işlemlerin hızını ve verinin bütünlüğünü sağlamak amaçlanmaktadır. 
Günümüzde mikroservislerin popülaritesi artmaktadır. Ağırlıklı olarak yazılım, finans, bankacılık, danışmanlık, e-ticaret ve telekomünikasyon sektörlerinde kullanılmaktadır. Mikroservis yapısının avantajı farklı teknolojileri bir arada kullanarak yapının esnek ve ölçeklendirilebilir hale getirilmesidir.
Mikroservis mimarileri tek bir sistemin her biri ayrı olarak çalışabilen ve açık protokollerle iletişim sağlayabilen birden fazla servislere ayrılan yapılardır. Bu yapılar günümüzde sıkça kullanılmaktadır. Çoğu büyük şirketler sistemlerini daha hızlı ilerletebilmek için monolitik yapıyla inşaa ederler ve bir süre sonra olgunlaşan projelerde kod karmaşıklığı nedeniyle sorunlar ortaya çıkabilir. Bu yapılarda esneklik ve çeviklik kaybedilebilir. Mikroservis yapılarında ise her servis ayrı ayrı geliştirilebildiği için ölçeklendirilebilmesi daha kolaydır. 
Uygulamalarda artan işlemlerin sonrasında darboğazlar ortaya çıkabilmektedir. Bu durum verilerin ölçeklendirilmesine izin verilmediği ilişkisel veri tabanı modellerinde olabilir. Mikroservisler ve veritabanları arasındaki ön belleğe alma işlemi ile bu darboğazların önüne geçilir. Burada kullanılacak ön bellek yapısı ile işlemlerin hızı arttırılmış olur.
Disk Veri tabanı Sistemi (DRDS) eskiden beri çok sık kullanılan bir yöntemdi. Bu yöntemde sistemin performansı diskin boyutuna ve gerçek zamanlı veri boyutuna bağlıydı. Dezavantajı ise diskin fiziksel boyutu kadar veri yüklenebileceği için depolama özelliğinin sorunu olabilir. Bunun yanında veri kaybı gibi bir güvenlik sorunu ortaya çıkabilir. Daha yeni bir yaklaşım olan In Memory Data Grid (IMDG) ise bellek içerisinde gridde işlem yapılan dağıtık veri yapısıdır. IMDG genişletilebilir bellek yapısıyla ölçeklendirilebilir yapıya olanak sağlar. Güvenlik açısından ise dağıtık mimarinin güvenlik yapılarını kullanabilir.
Bu çalışmada çok sayıda kullanıcının aynı anda ilişkisel veri tabanı modelinde tutulan kayıtlara ulaşılmak istenildiğinde yanıt verme süreleri ön bellek yapısı ile en aza indirgenmiştir. Mikroservislerin esnek ve ölçeklendirebilir yapısı sayesinde kullanıcı ve kayıt bazlı değişimleri yaparak hızlı sonuçlar üretmek amaçlanmaktadır.

Abstract:
At the beginning of the 21st century, large companies such as Amazon, eBay, bestbuy.com, whose structures were monolithic, could not quickly apply the innovations and changes that emerged today. The main reason for such problems was that the monolithic structure was in a single state, so that the changes to be applied would have consequences that could affect the entire system. These companies used microservice architectures to make sequential changes. In this way, they were able to adapt these changes faster by separating the systems into services. 
In these days, the popularity of microservices is increasing. Microservices are mostly used in software, finance, banking, consulting, e-commerce and telecommunication industries. The reason for this common use is; Microservices is to make the structure flexible and scalable by using technologies together. 
Most large companies build their systems with a monolithic structure in order to advance faster, and problems may arise due to code complexity in projects that mature after a while. Flexibility and agility can be lost in these structures. In microservice structures, since each service can be developed separately, it is easier to scale. In these applications, bottlenecks may arise after increasing the processes. These situations can occur in relational database models that do not allow data to be scaled. 
The occurrence of these bottlenecks can be prevented by caching between microservices and databases. With the cache structure to be used here, the speed of the transactions is increased. 
Distributed Relational Database System (DRDS) is one of the common methods used from the past to the present, and in this method, the performance of the system depends on the size of the disk and the real-time data size. The disadvantage of DRDS is that it can load as much data as the physical size of the disk, there may be a problem with the storage feature. The disadvantage of DRDS is that it can load as much data as the physical size of the disk, create a problem with the storage feature, or security problems such as data loss. On the other hand, In-Memory Data Grid (IMDG), which is a new and another approach; It is a distributed data structure processed on a grid in memory. IMDG is an approach that allows a scalable structure with an expandable memory structure and can use the security structures of the distributed architecture in terms of security. Microservice architectures are frequently used structures of a single system that are divided into multiple services that can work separately and communicate with open protocols. 
In order for microservices to have a more flexible and scalable structure, it is aimed to provide the speed of the operations and the integrity of the data by setting the cache system between the application and the database instead of performing these operations only in relational database models. In this study, the response times of many users when trying to reach the records kept in the relational database model at the same time are minimized with the cache structure. And in this study, it is aimed to produce fast results by making user and record-based changes thanks to the flexible and scalable structure of microservices.