Monolit yapıdaki bankacılık yazılım sistemlerinin mikro servis mimarisi esaslı bir açık bankacılık platformuna dönüşümü
Transforming monolithic core banking systems into a microservices based open banking platform
Yazar: FİKRİ AYDEMİR
Danışman: PROF. DR. FATİH BAŞÇİFTÇİ
Selçuk Üniversitesi / Fen Bilimleri Enstitüsü / Bilişim Teknolojileri Mühendisliği Ana Bilim Dalı
Derece: Doktora, 2024
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control ; Bilim ve Teknoloji = Science and Technology
Dizin: Aktör Ağ Kuramı = Actor Network Theory ; Aktör merkezli teoriler = Actor oriented theories ; Açık bankacılık = Open banking ; Bilgisayar sistemleri = Computer systems ; Bulut bilişim = Cloud computing ; Mesajlaşma arayüzü = Message passing interface ; Monolit = Monolith ; Türk bankacılık sistemi = Turkish banking system ; İşlembilgi = Transaction

Özet:
Literatürde Centralized Online Real-Time Environment (CORE) banking systems olarak geçen ve Türkçe'de çekirdek bankacılık sistemleri ya da temel bankacılık sistemleri olarak ifade edilebilen sistemler, bankaların sunduğu tüm servislerin uygulama mantığını barındıran yazılım sistemleri olmaları bakımından finansal işlemlerin devamlılığı için büyük önem arz ederler. Bu sistemler tarafından sağlanan bankacılık servislerine örnek olarak mevduat yönetimi, para transferleri, kredilendirme ve raporlama servisleri verilebilir. Bu servislere erişim konusunda dünya genelinde Açık Bankacılık Standartları geliştirilmiştir. Bu standartlar, bankacılık servislerine erişimin birer uygulama ara yüzü (Application Programming Interface- API) olarak nasıl tasarlanması gerektiğini ortaya koyarken bu servislerin altyapısını oluşturan temel bankacılık sistemlerinin nasıl tasarlanması gerektiği konusunu kapsamazlar.
 Günümüz temel bankacılık sistemlerinin çoğu (Örn.: Main-frame sistemleri) bulut bilişimin yaygınlaşmasından önceki dönemde geliştirilmiş olup sunum, uygulama ve veri erişim katmanları gibi temel yazılım katmanlarının hepsini içine alan yekpare bir mimari yapı ortaya koymaktadır. Monolit mimari olarak da adlandırılan bu yapıda yazılım bileşenleri, spesifik bir donanım altyapısının (Örn.: İşlemci, RAM) kullanımını gerektiren ortak bir kod ve veri tabanı üzerinde geliştirilmiştir. Bu durum bankalar gibi geniş çaplı yazılım altyapısına sahip kurumları bakımı oldukça maliyetli eski sistemlerin ve teknolojilerin pençesine düşürmekte ve dolayısıyla bankacılık sistemlerinin modern bulut-tabanlı teknolojilere (Örn.: Sanallaştırma, Kubernetes ve konteyner (container) teknolojileri) adaptasyonunu güçleştirmektedir.
Bulut tabanlı teknolojilerdeki gelişmeler doğrultusunda ortaya çıkmış olan Mikro Servis Mimarisi her biri temel düzeyde (atomik) işleve haiz olan ve birbirinden bağımsız ancak koordineli olarak çalışabilen mikro servislerin geniş çaplı bir dağıtık yazılım sistemini oluşturmak üzere bir araya geldiği bir dağıtık yazılım sistemi mimarisidir. Bu mimari doğru kullanıldığı takdirde monolit mimarinin dezavantajlarını ortadan kaldırıp bulut-tabanlı bir altyapıya dönüşümü kolaylaştıracak bir potansiyeldedir.
Buradan hareketle bu doktora çalışması kapsamında ele alınan problem monolit mimari esaslı temel bankacılık yazılım sistemlerinin mikro servis mimarisi temelinde ve açık bankacılık standartlarına uyumlu bir yazılım platformuna nasıl dönüştürülebileceğidir. Bu problemin çözümü için temelinde mikro servis mimarisini esas alan bir bankacılık yazılım sisteminin tasarlanıp geliştirilmesi için gerekli standartlar, teknikler ve tasarım kalıpları araştırılmış ve bunları uygulayan bir mimari model ortaya konmuştur. Bu modelin gerek akademik gerekse endüstriyel kapsamdaki en belirgin katkısı yüksek yük anında bile ivmelenerek artan performanslı bir yapı ortaya koyması ve mikro servisler arası dağıtık SAGA işlemlerinin yönetimini aktör modeli temelinde performans darboğazına mahal bırakmadan akıllıca çözmesidir.

Abstract:
Centralized Online Real-Time Environment (CORE) banking systems lie in the heart of any bank today as they embrace all the services banks provide to execute their day-to-day business. These services, namely banking services, can include, transaction processing, payment processing, auditing, reporting, risk management, customer management, and e-banking. Standardization studies, namely Open Banking Standards, have been carried out around the World to enable access to these core banking services through well-defined Application Programming Interfaces (APIs). While these standards set high-level API standards for accessing core banking services; they do not set technical standards on how a core banking software infrastructure should be designed based on the modern cloud-native architectural trends, such as Micro Services Architecture (MSA).
Many of today's banking systems were built based on the monolith software architecture that was once a common practice in building distributed software systems before the advent of cloud computing-related technologies, such as virtualization and containerization. Monolith architecture encompasses all core banking services into a single, fully integrated piece of software where the codebase can become overwhelmingly complex and incomprehensible over time. As a consequence, it becomes rather challenging to make bug fixes and feature additions in such software and this can lead to serious maintenance costs for banks in adapting new technologies. MSA has emerged as a software engineering practice in line with the developments in virtualization and containerization technologies to overcome the problems that were encountered in monolith software architecture. In MSA, core banking services can be designed and operate independently (i.e., autonomously) to form a large-scale distributed core banking system that can benefit from the cloud computing technologies (e.g., Kubernetes, containerization) and lessen the complexity lying in the core banking systems design.
From this perspective, the specific problem that has been aimed to be solved in this doctoral study has been "How a core banking system with monolithic structure can be transformed into an MSA-based core banking system that is compliant with open banking standards?". For solving this problem, MSA-related techniques and best practices have been investigated and an MSA-based infrastructure model has been proposed by keeping performance efficiency in consideration. In the context of this proposed infrastructure model, a new technique has been developed particularly for managing distributed SAGA transactions among microservices by utilizing the Actor Model. This technique together with the proposed performance-efficient infrastructure constitutes our main academic contribution in our doctoral study.