Kod kalıp analizi yöntemleri ile mikroservis mimarilerinde iyileştirme önerileri
Improvement suggestions for software based on microservice architecture with code analysis techniques
Yazar: TUĞRUL AŞIK
Danışman: YRD. DOÇ. DR. YUNUS EMRE SELÇUK
Yıldız Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı / Bilgisayar Mühendisliği Bilim Dalı
Derece: Yüksek Lisans, 2017
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Mikroservis mimari son dönemlerde yeni bir fenomen haline gelmeye başlamış olan mimari bir tasarımdır. Mikroservis mimarisi, dil bağımsız ve dinamik olarak ölçeklenebilir bir altyapı sunmaktadır. Bu mimari, temelde her bileşenin kendi içinde bir bütün olduğu ve bu bileşenlerin dağıtık olarak konumlandığı bir desen olarak tanımlanabilir. Yazılım uygulamalarının bağımsız olarak konuşlandırılabilir servis grupları halinde nasıl tasarlanmasıyla ilgili yöntemler sunmaktadır. İş yapma kabiliyeti, otomasyonel dağıtım, otomasyonel süreçler, akıllı erişim noktaları ve bileşene özgü ve merkezi olmayan veri yönetimi mikroservis mimarinin benzer karakteristik özelliklerdendir. Diğer yandan, bu mimari tarzın kesin ve tamamıyle olgunlaşmış bir tanımı bulunmamaktadır. Mimarinin bahsedilen karakteristik avantajları, ağ üzerinden servislerin keşfedilmesi, güvenlik yönetimi, iletişim optimizasyonu, veri paylaşımı ve performans gibi zorluklarları beraberinde getirmektedir. Ayrıca, ekip büyüklüğü, şirket kültürü, kişisel beceriler, üretkenlik vb. etmenler de yazılım geliştirme sürecinde ve yazılım ürününde bir etkiye sahiptir. Çalışma kapsamında, mikroservis mimari için tanımlı karakteristik özellikler ve farklılıklara göre, yazılım kalitesini ve mimariye uygunluğunu ölçmek için yeni metrik ve yaklaşımlar tanımlanmıştır. Bu metrik ve yaklaşımlar servis boyutunu ölçmek, servisler arası iletişimi analiz etmek ve yazılımı iyileştirmek için yapılmaması gereken pratikleri keşfetmek olarak kategorize edilebilir. Mikroservis mimari tabanlı geliştirilen bir yazılım ürünü üzerinde, tanımlanan metriklere ve yaklaşımlara uygunluğu kontrol etmek için, MISKAA statik analiz aracı geliştirilmiştir. Tanımlı metrikleri ve yaklaşımları değerlendirmek için örnek bir bilet satış uygulaması uyarlanmıştır. Analiz sonuçlarının yazılımı iyileştirme ve hataların erken teşhisi konusunda yol gösterici olacağı düşünülmektedir.

Abstract:
Microservice is an architectural style that has recently started gaining popularity to become a new architectural phenomenon. Microservice architecture provides new opportunities to deploy scalable, language free and dynamically adjustable applications. Microservice based architecture is defined as a software architecture pattern for development of distributed applications, where the application is comprised of a number of smaller independent components; these components are small application in-themselves. This architecture style has gained popularity over the last few years to describe a particular way of designing software applications as suites of independently deployable services. There are certain common characteristics around organization around business capability, automated deployment, built released with automated processes, intelligence in the endpoints, and decentralized control of languages and data. On the other hand, there is no precise definition of this architectural style and mentioned benefits come with challenges, such as discovering services over network, security management, communication optimization, data sharing and performance. Furthermore, team size, culture, skills, productivity etc. have an impact on software development. Unfortunately, there is no strict rule about these challenges; there are some practices that have been proven in real-world systems. According to this characteristic features and tradeoffs, defining new metrics and practices to measure software quality and suitability for microservice practices were studied. New metrics were defined to measure service size and inter-service communication. In order to check compliance with these metrics, static analysis tool which name is MISKAA to analyze software based on microservice architecture were developed. A sample ticket selling application to evaluate these metrics and practices were implemented. Analysis results would be helpful for project team to improve software quality and to detect bugs or bad practices.