Microservice architecture

Thesis title: Microservice architecture
Author: Sari Moqaddam, Mohammad
Thesis type: Diploma thesis
Supervisor: Buchalcevová, Alena
Opponents: Kučera, Jan
Thesis language: English
Abstract:
This thesis aimed to discuss the relationship between Microservice architecture and areas that are affected or affected by it, in order to provide a clear picture of how Microservice architecture works in conjunction with toolsets and pipelines in an organization. In this study two machine learning models were trained to use as microservice. The models are trained using linear regression technique and artificial neural network. Once trained APIs of both of the model is created. AN API allows an app to interact with another software. In this case the app was designed to send a request containing the inputs for both of the models and return the prediction of model using the input values. It has been concluded that a microservice architectural style is a way of building a single application as a collection of distinct services, each of which operates in its own process and interacts in lightweight ways, most often an HTTP resource API. These services are tailored to the needs of the business and can be delivered completely autonomously utilizing fully automated deployment equipment. These services are based on business capabilities and can be delivered entirely by themselves using fully automated deployment equipment. These services, which can be written in a variety of programming languages and use a variety of data storage systems, require very little centralized supervision. Today’s markets are looking for an architecture style which can easily handle scalability, development, flexibility, and easy to update and editing. Microservices architecture has been proven as one that has the required characteristics. In this architecture different services are used in an application. Usually each service in an app followed by Microservices architecture are independent from each other. This makes the app scalability easy and also easy to maintain. The services can be edited and updated individually without effecting other modules. The app created in this study proves this as both of the models can be edited individually which would not affect the other model. Same applies for scalability, more services in the app can be added without effecting the machine learning models. The main focus of this study was to analyze the characteristics of MSA by implementing an application based on it. The service-oriented architecture paradigm we saw a generation ago has been reinvented in many respects by microservices and the API-driven methodology. There are however small yet significant changes. The contemporary strategy using microservices is (critically) less prescriptive, more flexible, and simpler to implement gradually. Microservices and the technology that underpin them can speed up innovation and improve deployment reliability, both of which are crucial competitive advantages in this quick-paced world. We'll grab any advantages we can get because change is the one thing that is constant in our life today. The application proved the proposed benefits of MSA. One of the major benefits of the MSA mentioned was scalability. An application based on MSA, relies on the interaction between different components using APIs. Thus, instead an app consisting of Thousands of lines of codes is divided into small chunks which are easily maintainable. A MSA application is comprised of different microservices put together. What makes a difference between MSA, and other architectures is the quality of MSA that microservices can be developed by different teams independently and separately. The study also includes guidelines for implementing MSA. In the quickly evolving technology world, the world focuses on the performance of software, ease of maintenance, and scalability. MSA is catching attention of big industry because of its benefits. In order to implement MSA three C’s are mentioned in the study: componentize, collaborate and connect. Componentize highlights the importance of searching for a project and after that dividing it to small components. Putting it in another way a project is a collection of different functions which are done by different components of the project. After finalizing the components, collaboration comes which states to deliver the changes and the goals decided to the team. Not only to communicate them to the team but also to divide the team into sub teams and assign each sub team a component or microservice of the project to work on. After developing microservices of the application it is necessary to connect them before delivering it to the user. Third C is important as it is responsible for the impression of the application. The more efficient is the connection between microservices better is the performance of application which attracts the user and enhances user experience.
Keywords: microservices; software architecture; software development
Thesis title: Microservice Architecture
Author: Sari Moqaddam, Mohammad
Thesis type: Diplomová práce
Supervisor: Buchalcevová, Alena
Opponents: Kučera, Jan
Thesis language: English
Abstract:
This thesis aimed to discuss the relationship between Microservice architecture and areas that are affected or affected by it, in order to provide a clear picture of how Microservice architecture works in conjunction with toolsets and pipelines in an organization. In this study two machine learning models were trained to use as microservice. The models are trained using linear regression technique and artificial neural network. Once trained APIs of both of the model is created. AN API allows an app to interact with another software. In this case the app was designed to send a request containing the inputs for both of the models and return the prediction of model using the input values. It has been concluded that a microservice architectural style is a way of building a single application as a collection of distinct services, each of which operates in its own process and interacts in lightweight ways, most often an HTTP resource API. These services are tailored to the needs of the business and can be delivered completely autonomously utilizing fully automated deployment equipment. These services are based on business capabilities and can be delivered entirely by themselves using fully automated deployment equipment. These services, which can be written in a variety of programming languages and use a variety of data storage systems, require very little centralized supervision. Today’s markets are looking for an architecture style which can easily handle scalability, development, flexibility, and easy to update and editing. Microservices architecture has been proven as one that has the required characteristics. In this architecture different services are used in an application. Usually each service in an app followed by Microservices architecture are independent from each other. This makes the app scalability easy and also easy to maintain. The services can be edited and updated individually without effecting other modules. The app created in this study proves this as both of the models can be edited individually which would not affect the other model. Same applies for scalability, more services in the app can be added without effecting the machine learning models. The main focus of this study was to analyze the characteristics of MSA by implementing an application based on it. The service-oriented architecture paradigm we saw a generation ago has been reinvented in many respects by microservices and the API-driven methodology. There are however small yet significant changes. The contemporary strategy using microservices is (critically) less prescriptive, more flexible, and simpler to implement gradually. Microservices and the technology that underpin them can speed up innovation and improve deployment reliability, both of which are crucial competitive advantages in this quick-paced world. We'll grab any advantages we can get because change is the one thing that is constant in our life today. The application proved the proposed benefits of MSA. One of the major benefits of the MSA mentioned was scalability. An application based on MSA, relies on the interaction between different components using APIs. Thus, instead an app consisting of Thousands of lines of codes is divided into small chunks which are easily maintainable. A MSA application is comprised of different microservices put together. What makes a difference between MSA, and other architectures is the quality of MSA that microservices can be developed by different teams independently and separately. The study also includes guidelines for implementing MSA. In the quickly evolving technology world, the world focuses on the performance of software, ease of maintenance, and scalability. MSA is catching attention of big industry because of its benefits. In order to implement MSA three C’s are mentioned in the study: componentize, collaborate and connect. Componentize highlights the importance of searching for a project and after that dividing it to small components. Putting it in another way a project is a collection of different functions which are done by different components of the project. After finalizing the components, collaboration comes which states to deliver the changes and the goals decided to the team. Not only to communicate them to the team but also to divide the team into sub teams and assign each sub team a component or microservice of the project to work on. After developing microservices of the application it is necessary to connect them before delivering it to the user. Third C is important as it is responsible for the impression of the application. The more efficient is the connection between microservices better is the performance of application which attracts the user and enhances user experience.
Keywords: microservices; software architecture; software development

Information about study

Study programme: Information Systems Management
Type of study programme: Magisterský studijní program
Assigned degree: Ing.
Institutions assigning academic degree: Vysoká škola ekonomická v Praze
Faculty: Faculty of Informatics and Statistics
Department: Department of Information Technologies

Information on submission and defense

Date of assignment: 28. 10. 2021
Date of submission: 30. 6. 2022
Date of defense: 2022

Files for download

The files will be available after the defense of the thesis.

    Last update: