Show simple item record

dc.contributor.advisorCan, Ahmet Burak
dc.contributor.authorKarabey Aksakallı, Işıl
dc.date.accessioned2021-10-13T06:36:14Z
dc.date.issued2021
dc.date.submitted2021-06-03
dc.identifier.urihttp://hdl.handle.net/11655/25436
dc.description.abstractMicroservice 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 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.tr_TR
dc.language.isoturtr_TR
dc.publisherFen Bilimleri Enstitüsütr_TR
dc.rightsinfo:eu-repo/semantics/openAccesstr_TR
dc.subjectModel güdümlü mimaritr_TR
dc.subjectMetamodellemetr_TR
dc.subjectModel dönüşümleritr_TR
dc.subjectMikroservisler için verimli dağıtım yaklaşımlarıtr_TR
dc.subjectMikroservislerin otomatik dağıtımı için algoritmik tabanlı araç desteğitr_TR
dc.subject.lcshBilgisayar mühendisliğitr_TR
dc.titleMikroservisler için Verimli Yerleştirme Alternatiflerinin Türetilmesitr_TR
dc.title.alternativeDeriving Efficient Deployment Alternatives for Microservices
dc.typeinfo:eu-repo/semantics/doctoralThesistr_TR
dc.description.ozetMikroservis mimarileri gevşek bağlanmış, tek bir fonksiyonellik ile çalışarak bağımsız olarak konuşlandırılabilen ve birbirleri ile belirli bir arayüz üzerinden iletişimde olan modüler yazılım bileşenlerine dayalı popüler bir yaklaşımdır. Bağımsız yazılım bileşenleri sayesinde servislerin ölçeklenebilirliği, güncellenmesi ve bakımı oldukça kolaylaşmaktadır. Öte yandan mikroservis tabanlı uygulamaların bulut kaynaklarına yerleştirilmesi, tek parçalı (monolithic) uygulamalara göre daha karmaşık bir süreçtir. Tek parçalı bir uygulama, bir yük dengeleyici arkasında yer alan bir grup sunucuya tek seferde dağıtılabilirken, farklı servislerden oluşan bir mikroservis tabanlı uygulamada her servisin genellikle birden fazla çalışma zamanı örneği olduğu varsayıldığında, binlerce servisin yapılandırılması ve performanslı bir şekilde dağıtılması zorlu bir süreçtir. Az sayıda mikroservisin bulunduğu bir uygulama, sistemi iyi bilen bir uzman tarafından manuel bir şekilde dağıtılabilirken pratikte genellikle çok sayıda mikroservisin yer aldığı uygulamalar görülmektedir. Artan servis sayısının bulut ortamındaki kaynaklara optimale yakın bir şekilde manuel olarak dağıtılması hem zaman alıcı bir hale gelmekte hem de kaynakların verimli kullanımını neredeyse imkansızlaştırmaktadır. Özellikle mikroservis tabanlı uygulamaların kaynak kullanımı ve performansı mikroservislerin mevcut kaynaklara uygun bir şekilde yerleştirilmesine bağlıdır. Mikroservislerin yerleştirilmesi için var olan Kubernetes, Docker, Apache Mesos gibi yönetim araçları, mikroservislerin çalışma zamanı verilerini dikkate almayıp minimum yetenek ile dağıtım yapmaktadır. Bununla birlikte literatürde mikroservisler için geliştirilen mevcut dağıtım yöntemleri üzerinden ek yaklaşımlar kullanılarak veya araç desteği geliştirilerek CPU iş 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ğıtım yöntemlerinde mikroservislerin sunuculara dağıtılması işlemi kullanıcıya bırakılmaktadır. Bu da çok sayıda servisten oluşan bir sistemde kullanıcının işini zorlaştırmakla birlikte, kabaca bir dağıtım yapılmasına sebep olarak, servislerin kısıtlı kaynaklara performanslı ve verimli bir şekilde dağıtılmasını engellemektedir. Bu tez çalışmasında mikroservis mimarilerinin bulut ortamında verimli kullanılabilmesi için servislerin mevcut kaynaklar üzerine uygun yerleştirilmesi sorunu ele alınarak servislerin bulut sunucularına otomatik yerleştirilmesini sağlayan model güdümlü mimari ile geliştirilen bir yaklaşım önerilmektedir. Ayrıca bu yaklaşımı destekleyen bir araç ailesi geliştirilerek mikroservislerin minimum maliyet ile dağıtımı gerçekleştirilmektedir. Mikroservislerin etkin olarak kaynaklara dağıtımı, bulut kaynaklarının verimli ve daha yüksek performans ile kullanımını sağlayacaktır. Önerilen otomatik dağıtım yaklaşımının gelecekteki akademik çalışmalar için bir altyapı sağlamasının yanısıra, geliştirilen mikroservis dağıtım aracının endüstriyel uygulamalara önemli bir katkıda bulunacağı öngörülmektedir.tr_TR
dc.contributor.departmentBilgisayar Mühendisliğitr_TR
dc.embargo.termsAcik erisimtr_TR
dc.embargo.lift2021-10-13T06:36:14Z
dc.fundingYoktr_TR


Files in this item

This item appears in the following Collection(s)

Show simple item record