Santrauka:
Diplominiame darbe analizuojami skirtumai tarp programavimo monolitinės bei mikroservisų architektūrų. Iškeliamos bei išsprendžiamos problemos susijusios su mikroservisų pagrindo programinės įrangos paleidimu. Paruošta veikianti infrastruktūra, užtikrinanti aukštą pasiekiamumą, gebanti išsiplėsti ir susitraukti priklausomai nuo sistemos apkrovimo. Darbo tikslas – aukšto pasiekiamumo infrastruktūra mikroservisų pagrindu sukurtai programinei įrangai. Atliktas esamų sistemų tyrimas remiantis straipsniais, lyginant funkcinius bei nefunkcinius kriterijus – sistemų palaikymą, kainą, funkcionalumus. Parinktas debesijos paslaugų teikėjas Google Cloud Platform, Docker konteinerių orkestratorius Kubernetes, srauto skirstytuvas ingress-nginx, stebėjimo tarnybos node-exporter bei kube-state-metrics, duomenų saugykla Prometheus bei duomenų atvaizdavimo grafikais įrankis Grafana. Ryšys tarp vartotojo ir paleistos internetinės aplikacijos užšifruotas naudojant TLS protokolą. Darbo rezultatas - veikianti infrastruktūra, valdoma per konfigūracinius failus, galinti paleisti konteinerizuotas aplikacijas bei užtikrinti joms aukštą pasiekiamumą su sistemos stebėjimo galimybėmis.
Description:
In this Bachelor thesis, the differences between monolithic and microservice based software development architectures are analyzed. The challenges faced when deploying such applications are analyzed and solved. A working infrastructure for a containerised, microservice based application is built. The system is scalable – capable of expanding and contracting on demand and automatically.
A highly available infrastructure for containerised, microservice based software is the purpose of this work.
Existing container orchestration tools were analysed and compared by reading articles and comparing functional and non-functional criteria – tool support, cost, functionality. For this system, the chosen cloud provider was Google Cloud Platform, the container orchestrator Kubernetes, the ingress-nginx tool for load balancing, the tools node-exporter and kube-statemetrics to merics, the time-series data storage tool Prometheus and Grafana to represent the data visually. Traffic between user and the system is ensured by using the TLS protocol for encryption.