Microservices: Considerations before implementation

Loading...
Thumbnail Image
Journal Title
Journal ISSN
Volume Title
School of Business | Bachelor's thesis
Date
2018
Major/Subject
Mcode
Degree programme
Tieto- ja palvelujohtaminen
Language
en
Pages
23 + 6
Series
Abstract
Microservices is a relatively recent pattern in software architecture, but it is in wide use already and is used to develop the flagship products of some of the world’s most popular services, such as Netflix and Spotify. The pattern is evolving organically from the development practices so there is relatively little formal academic research on it. This thesis explains the benefits and potential risks of moving from a monolithic software architecture to a microservices architecture, in a manner understandable to non-developers. In a nutshell, microservices architecture breaks up large, monolithic software projects into small, discrete and modular ‘services’. The services can be developed separately, sometimes by different teams, and can be deployed independently of each other. Some key benefits are the possibility of using specialized tech stacks for different services, smaller and easier to understand codebases, improved productivity and collaboration between development teams and more robust and flexible systems. Microservices based software is also better suited to cloud computing, which can reduce infrastructure costs. However, this does not mean that all software projects should be microservices. There are situations in which a monolithic pattern has advantages. First and foremost, applying microservices effectively needs a certain degree of expertise, and since the trend is recent, qualified developers can be hard to find. It is also arguably easier to manage a monolithic architecture with a small team, at least in the beginning. Secondly, microservices architecture is said to move the complexity from the code base to the infrastructure. Microservices can be needlessly complex and expensive if the project isn’t meant to scale for many users or is a prototype or proof-of-concept.
Description
Thesis advisor
Bragge, Johanna
Keywords
microservices, SOA, monolithic, software architecture, modularity
Other note
Tutkielman nimiössä ja tiivistelmässä näkyvät vuosi-merkinnät ovat epäselviä.
The year entries showing in the title page and in the abstract of the thesis are unclear.
Citation