Files
2025-07-03 20:56:38 +03:00

90 lines
3.9 KiB
TeX

%\documentclass[12pt]{scrreprt}
\documentclass[12pt]{report}
\usepackage{tikz}
\usepackage{tikz}
\usetikzlibrary{
positioning, % For relative positioning of nodes
shapes.geometric, % For cylinder shape
arrows.meta, % For arrow tips
backgrounds, % For layers
fit % To fit a node around other nodes
}
% language may be romanian or english (default is english)
% type may be bachelor or master (default is bachelor)
\usepackage[language=english, type=bachelor]{style}
%\geometry{a4paper,top=2.5cm,left=3cm,right=2.5cm,bottom=2.5cm}
%in style
%controlling the appearance of your headers and footers
\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{}
\chead{}
\renewcommand{\headrulewidth}{0.2pt}
\renewcommand{\footrulewidth}{0.2pt}
\begin{document}
\specialization{COMPUTER SCIENCE IN ENGLISH}
\title{An Empirical Validation of Scalability and Fault Tolerance Patterns in a.NET Microservices Architecture on Kubernetes}
\author{Cujba Daniel}
\supervisor{Assoc. Prof. Rares Florin Boian Ph.D.}
\maketitle
\newpage
\setbool{@eng}{false}
\specialization{INFORMATICA IN LIMBA ENGLEZA}
\title{O validare empirică a modelelor de scalabilitate și toleranță la erori într-o arhitectură de microservicii .NET pe Kubernetes}
\author{Cujba Daniel}
\supervisor{Conf. Dr. Boian Rares}
\maketitle
\setbool{@eng}{true}
\newpage
\pagenumbering{roman}
\cleardoublepage
ABSTRACT
\vspace{0.5cm}
\hrule
\vspace{0.5cm}
%\cleardoublepage
The imperative for modern software systems to be both highly scalable and resilient to failure has driven the widespread adoption of microservice architectures. However, the theoretical benefits of this architectural style are not inherently guaranteed and depend on the deliberate application and validation of specific design patterns and technologies. This thesis addresses the gap between theoretical principles and practical implementation by presenting the design, end-to-end development, and empirical validation of a cloud-native e-commerce application. The system is architected using.NET microservices, containerized and orchestrated with Kubernetes, and employs RabbitMQ for asynchronous, decoupled communication. Application-level fault tolerance is implemented through the Polly library, integrating Retry and Circuit Breaker patterns to enhance inter-service communication robustness. To validate the architecture, a sustained 30-minute load test was conducted on a key service, demonstrating high performance with a stable throughput of approximately 124 requests per second at a median latency of 35ms, with zero failures. Crucially, the results confirmed that the service becomes CPU-bound under load, a behavior that correctly triggers the configured Kubernetes Horizontal Pod Autoscaler (HPA) policy. This work's primary contribution is an empirically validated architectural blueprint, demonstrating the effective integration of specific technologies and patterns to build verifiably scalable and fault-tolerant.NET microservice applications.
\newpage
DISCLAIMER
\vspace{0.5cm}
\hrule
\vspace{0.5cm}
During the preparation of this work the author used Google Gemini and DeepSeek in order to improve wording, rephrase sentences, check for spelling, and assist with the generation of LaTeX code. After using these tools/services, the author reviewed and edited the content as needed and takes full responsibility for the content of the thesis.
\tableofcontents
\newpage
\pagenumbering{arabic}
\input{chapters/chapter1_introduction}
%\addcontentsline{toc}{chapter}{Introducere}
%\addcontentsline{toc}{chapter}{Introduction}
\input{chapters/chapter2}
\input{chapters/chapter3}
\input{chapters/chapter4}
\input{chapters/chapter5}
\input{chapters/chapter6}
\input{chapters/chapter6_conclusions}
%\addcontentsline{toc}{chapter}{Concluzii}
%\addcontentsline{toc}{chapter}{Conclusions}
\bibliography{references}
\end{document}