Scopul lucrării de față este studiul arhitecturilor pe bază de microservicii, evidențierea premiselor care au dus la dezvoltarea acestui concept, avantaje și dezavantaje, prezentarea unor modele arhitecturale implementate cu ajutorul suitei de instrumente Spring Cloud.
Primul capitol cuprinde descrierea noțiunilor teoretice introductive. Inițial este prezentată o descriere a conceptului de microserviciu și factorii care au cauzat apariția acestuia. Pe lângă aceasta, în acest capitol este efectuată și o introducere în frameworkul Spring, și anume conceptele de Dependency Injection și Inversion of Control, care stau la baza acestuia. În continuare sunt descrise proiectele Spring Boot, pentru crearea aplicațiilor web și, extensia acestuia, Spring Cloud, pentru crearea aplicațiilor pe bază de microservicii.
Capitolul doi include aspecte analitice asupra actualității conceptului de microservicii. Aici sunt prezentate date statistice și sunt deduse unele avantaje și dezavantaje ale utilizării microserviciilor, precum și potențialele direcții de evoluție a acestora.
Al treilea capitol descrie soluționarea unor probleme tipice cu care se confruntă dezvoltatorii în procesul elaborării sistemelor pe bază de microservicii. Modele implementate se bazează pe utilizarea soluțiilor Spring Cloud. Problemele descrise sunt Service Discovery, Inter Service Communication, Fault Tolerance, Circuit breaking. În final accentul se face pe o astfel de trăsătură importantă în contextul microserviciilor, precum loggingul.
The purpose of the current work is the study of microservice-based architectures, highlighting of the reasons that led to the commencement and development of the concept, advantages and disadvantages, and presentation of some architectural models implemented with Spring Cloud.
The first chapter includes an introduction to microservices. First of all, the chapter covers causes and reasons that triggered the emergence of microservices. Besides that, the chapter presents an introduction to Spring Framework, key concepts of Dependency Injection and Inversion of Control. After that, Spring Boot framework and its extension Spring Cloud are described.
The second chapter comprises an analysis of the actuality of the microservices concept. Here are illustrated statistical data, some advantages and disadvantages of microservices, as well as some prospective directions of evolution.
The final chapter describes the implementation of some typical problems that developers meet in the process of microservices-based system creation. Implemented models are based on Spring Cloud solutions. Some of the problems described are Service Discovery, Inter Service Communication, Fault Tolerance, Circuit Breaking. Finally, such an important aspect as logging is described.