Mikroservisler için verimli yerleştirme alternatiflerinin türetilmesi
Deriving efficient deployment alternatives for microservices
- Tez No: 694092
- Danışmanlar: DOÇ. DR. AHMET BURAK CAN, DR. TURGAY ÇELİK
- Tez Türü: Doktora
- Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
- Anahtar Kelimeler: Belirtilmemiş.
- Yıl: 2021
- Dil: Türkçe
- Üniversite: Hacettepe Üniversitesi
- Enstitü: Fen Bilimleri Enstitüsü
- Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
- Bilim Dalı: Bilgisayar Mühendisliği Bilim Dalı
- Sayfa Sayısı: 160
Özet
Mikroservis mimarileri gev¸sek ba˘glanmı¸s, tek bir fonksiyonellik ile çalı¸sarak ba˘gımsız olarak konu¸slandırılabilen ve birbirleri ile belirli bir arayüz üzerinden ileti¸simde olan modüler yazılım bile¸senlerine dayalı popüler bir yakla¸sımdır. Ba˘gımsız yazılım bile¸senleri sayesinde servislerin ölçeklenebilirli˘gi, güncellenmesi ve bakımı oldukça kolayla¸smaktadır. Öte yandan mikroservis tabanlı uygulamaların bulut kaynaklarına yerle¸stirilmesi, tek parçalı (monolithic) uygulamalara göre daha karma¸sık bir süreçtir. Tek parçalı bir uygulama, bir yük dengeleyici arkasında yer alan bir grup sunucuya tek seferde da˘gıtılabilirken, farklı servislerden olu¸san bir mikroservis tabanlı uygulamada her servisin genellikle birden fazla çalı¸sma zamanı örne˘gi oldu˘gu varsayıldı˘gında, binlerce servisin yapılandırılması ve performanslı bir ¸sekilde da˘gıtılması zorlu bir süreçtir. Az sayıda mikroservisin bulundu˘gu bir uygulama, sistemi iyi bilen bir uzman tarafından manuel bir ¸sekilde da˘gıtılabilirken pratikte genellikle çok sayıda mikroservisin yer aldı˘gı uygulamalar görülmektedir. Artan servis sayısının bulut ortamındaki kaynaklara optimale yakın bir ¸sekilde manuel olarak da˘gıtılması hem zaman alıcı bir hale gelmekte hem de kaynakların verimli kullanımını neredeyse imkansızla¸stırmaktadır. Özellikle mikroservis tabanlı uygulamaların kaynak kullanımı ve performansı mikroservislerin mevcut kaynaklara uygun bir ¸sekilde yerle¸stirilmesine ba˘glıdır. Mikroservislerin yerle¸stirilmesi için var olan Kubernetes, Docker, Apache Mesos gibi yönetim araçları, mikroservislerin çalı¸sma zamanı verilerini dikkate almayıp minimum yetenek ile da˘gıtım yapmaktadır. Bununla birlikte literatürde mikroservisler için geli¸stirilen mevcut da˘gıtım yöntemleri üzerinden ek yakla¸sımlar kullanılarak veya araç deste˘gi geli¸stirilerek CPU i¸s yükü, G/Ç, ortalama yanıt süresi gibi kriterler açısından performans elde etmek amaçlanmaktadır. Fakat literatürde önerilen ve endüstride kullanılan mevcut da˘gıtım yöntemlerinde mikroservislerin sunuculara da˘gıtılması i¸slemi kullanıcıya bırakılmaktadır. Bu da çok sayıda servisten olu¸san bir sistemde kullanıcının i¸sini zorla¸stırmakla birlikte, kabaca bir da˘gıtım yapılmasına sebep olarak, servislerin kısıtlı kaynaklara performanslı ve verimli bir ¸sekilde da˘gıtılmasını engellemektedir. Bu tez çalı¸smasında mikroservis mimarilerinin bulut ortamında verimli kullanılabilmesi için servislerin mevcut kaynaklar üzerine uygun yerle¸stirilmesi sorunu ele alınarak servislerin bulut sunucularına otomatik yerle¸stirilmesini sa˘glayan model güdümlü mimari ile geli¸stirilen bir yakla¸sım önerilmektedir. Ayrıca bu yakla¸sımı destekleyen bir araç ailesi geli¸stirilerek mikroservislerin minimum maliyet ile da˘gıtımı gerçekle¸stirilmektedir. Mikroservislerin etkin olarak kaynaklara da˘gıtımı, bulut kaynaklarının verimli ve daha yüksek performans ile kullanımını sa˘glayacaktır. Önerilen otomatik da˘gıtım yakla¸sımının gelecekteki akademik çalı¸smalar için bir altyapı sa˘glamasının yanısıra, geli¸stirilen mikroservis da˘gıtım aracının endüstriyel uygulamalara önemli bir katkıda bulunaca˘gı öngörülmektedir.
Özet (Çeviri)
Microservice architecture is a popular approach that relies on modular software components that are loosely coupled, operate with a single functionality that can be independently deployed and communicate with each other via a well-defined interface. Thanks to independent software components, the scalability, update and maintenance of the services are easier. However, the deployment of microservice-based applications is more complicated than monolith applications. A monolith application can be deployed at one time on a group of services behind a load balancer. In a microservice-based application consisting of different services that have more than one runtime instance of each service, thousands of services need to be configured and deployed efficiently. While an application system with a small number of microservices can be manually deployed by an expert who knows the system well, a large number of microservices are often used for the applications in practice. Efficient deployment of the increasing number of services to resources manually in the cloud environment becomes both time consuming and makes the efficient use of resources almost impossible. In particular, resource usage and performance of microservice-based applications depend on the efficient deployment of microservices to the available resources. Existing tools such as Kubernetes, Docker, Apache Mesos don't consider the runtime data of a microservices and deploy them with minimum ability. Also, in literature, it is foreseed to achieve performance in terms of criteria such as CPU workload, I/O, average response time by developing additional approaches or tool support over existing deployment tools. However, the configuration process for deploying microservices is left to a user in these methods. This situation makes it difficult for the user to work in a system consisting of many services, hence, it prevents the deployment of services to limited resources in an efficient manner. In this thesis, an approach an approach developed using model driven architecture that provides automatic deployment of services to cloud servers is proposed. Furthermore, deployment of microservices at minimum cost has been performed by developing a tool that supports this approach. The approach and the tool support have been tested using an industrial case study. By effectively deploying microservices to resources, it will be possible to use the resources of the cloud environment efficiently and with higher performance. With the proposed automated deployment approach, it is foreseed to enable an infrastructure for the future academic studies, as well as a contribution to industrial applications with the developed microservice deployment tool.
Benzer Tezler
- Bulut teknolojisi kullanan hasta takip hizmetlerinde mikroservis temelli uç sistem tasarımı ve geliştirilmesi
Design and development of microservice based edge system in patient monitoring services using cloud technology
SİNAN TAŞLI
Yüksek Lisans
Türkçe
2022
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolFırat ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DR. ÖĞR. ÜYESİ GÜNGÖR YILDIRIM
- A fault-tolerant deployment approach for microservices in the design phase of software development life cycle
Yazılım geliştirme yaşam döngüsünün tasarım aşamasında mikroservisler için hata toleranslı bir dağıtım yaklaşımı
MUSTAFA YILMAZ
Yüksek Lisans
İngilizce
2024
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolHacettepe ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
PROF. DR. AHMET BURAK CAN
DR. ÖĞR. ÜYESİ IŞIL KARABEY AKSAKALLI
- Artificial intelligence assisted performance comparison of service meshes
Hizmet ağlarının yapay zeka destekli performans karşılaştırması
İPEK BENGİSU AYDEMİR
Yüksek Lisans
İngilizce
2024
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolBahçeşehir ÜniversitesiBilgisayar Bilimleri ve Mühendisliği Ana Bilim Dalı
DR. ÖĞR. ÜYESİ SELİN NACAKLI
- Mikroservis ekosisteminde servis keşfi mekanizması
Service discovery mechanism in the microservice ecosystem
AHMET VEDAT TOKMAK
Yüksek Lisans
Türkçe
2023
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Kültür ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DOÇ. DR. AKHAN AKBULUT
- İleri seviye izleme ve makine öğrenmesi ile mikroservis mimarilerinde anomali tespiti
Anomaly detection in microscervices architectures with advanced monitoring and machine learning
BURAK ÇAYIR
Yüksek Lisans
Türkçe
2024
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolGazi ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
PROF. DR. BÜNYAMİN CİYLAN