İleri seviye izleme ve makine öğrenmesi ile mikroservis mimarilerinde anomali tespiti
Anomaly detection in microscervices architectures with advanced monitoring and machine learning
Yazar: BURAK ÇAYIR
Danışman: PROF. DR. BÜNYAMİN CİYLAN
Gazi Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2024
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Bulut bilişim = Cloud computing ; Gözlenebilirlik = Observability ; Mikro hizmetler mimarisi = Microservices architecture

Özet:
Mikroservis tek başına tek sorumluluğu olan ve tek iş yapan sadece sorumlu olduğu işe ait işleri yürüten modüler yazılım projeleridir. Mikroservis mimarisini kullanan geniş ölçekli yazılımların, kolay kurulum ve ihtiyaca göre kolay ölçeklendirilme gibi birçok avantajı varken bu mimarinin yanında getirdiği birçok zorluğu da vardır. Mikroservis mimarisi, birçok küçük hizmetten oluşur ve bu hizmetler genellikle farklı sunucular üzerinde dağıtılmıştır. Mikroservisler arasındaki bağımlılıkların artmasıyla, bir hizmetteki küçük bir sorun diğer hizmetleri ve son kullanıcıyı etkileyebilir. Mikroservis mimarisi genellikle farklı teknolojilerin ve dillerin kullanımını içerir buda ekipler arasında farklı bilgi düzeylerine sahip olunmasına neden olur. Her bir mikroservis kendi günlükleme ve izleme verilerini üretir. Bu verileri birleştirmek ve bir sorunun izini sürmek yoğun bir çaba gerektirir. Tüm bu nedenlerden ötürü mikroservis mimarisi kullanan yazılımlarda sorun tespiti ve bakım yapmak geleneksel mimarili yazılımlara göre oldukça zordur. Bu çalışmada, bu zorlukların üstesinden gelmek amacıyla konteyner orkestrasyon yazılımı olan Kubernetes üzerinde çalıştırılan mikroservisler için bir konteyner ağ arayüzü çözümü olan Cilium'un sağladığı çekirdek seviyesinde izleme yeteneği kullanılmıştır. Üretilen trafik verileri Opentelemetry adlı veri standartlaştırma ve yüksek performanslı veri toplama yazılımı aracılığıyla taşınıp anlamlandırılmıştır. Bu verinin analiz edilebilmesi için Jaeger adlı izleme verilerini görselleştiren ve anlamlı hale getiren yazılıma gönderilip yüksek izlenebilirlik modeli sunulmuştur. Çekirdek seviyesinde izleme yeteneğiyle elde edilen veriler kullanılarak oluşturulan HTTP metrik veri seti, anormal ve normal veriler etiketlenerek zaman serisi biçiminde düzenlenmiştir. Bu veriler üzerinde makine öğrenmesi ve derin öğrenme yöntemleriyle yapılan analizler sonucunda Hoeffding Ağacı algoritmasıyla %99,9235 doğruluk oranı elde edilmiştir. Bu doğruluk oranı, literatürde Genişletilmiş Berkeley Paket Filtresi (Extended Berkeley Packet Filter) (eBPF) teknolojisi kullanılarak mikroservislerde anomali tespiti üzerine yapılan çalışmalar arasında en yüksek seviyeye ulaşmıştır. Ayrıca bu çalışma, eBPF teknolojisini kullanan bir konteyner ağ arayüzü teknolojisinin izlenebilirlik sistemine entegre edilmesine dair ilk örnek olma niteliğini taşımaktadır.

Abstract:
A microservice is a modular software project that has a single responsibility and it performs only one job and only carries out the work for which it is responsible. While large it scale software using microservice architecture has many advantages such as easy installation and easy scaling according to needs, this architecture also brings many challenges. A microservice architecture consists of many small services, often distributed on different servers. With increasing dependencies between microservices, a small problem in one service can affect other services and the end user. Microservice architecture often involves the use of different technologies and languages, resulting in different levels of knowledge and experience across teams. Microservices often run on cloud-based infrastructures and these environments can be constantly changing. Each microservice generates its own logging and monitoring data. Combining this data and tracing a problem requires intensive effort. For all these reasons, problem detection and maintenance in software using microservice architecture is much more difficult than in software with traditional architecture. To overcome these challenges, this paper utilizes the kernel-level monitoring capability provided by Cilium, a container network interface solution for microservices running on Kubernetes, a container orchestration software. The traffic data generated was migrated and interpreted through Opentelemetry, a data standardization and high performance data collection software. In order to analyze this data, it was sent to Jaeger, a software that visualizes and makes sense of monitoring data, and a high traceability model was presented. The HTTP metric dataset created using the data obtained with kernel-level monitoring capability was organized as a time series by labeling abnormal and normal data. As a result of the analysis performed on this data with machine learning and deep learning methods, an accuracy rate of 99.9235% was obtained with the Hoeffding Tree algorithm. This accuracy rate is the highest among the studies on anomaly detection in microservices using Extended Berkeley Packet Filter (eBPF) technology in the literature. In addition, this study is the first example of integrating a container network interface technology using eBPF technology into a traceability system.