|
Microservices have been one of the leading trends in software development for several years now. Today we propose to find out why such architecture is needed and who it is suitable for.
dreamstime_xxl_133423891.jpg Increase
What are microservices
Microservice architecture is a development approach in which applications and software products are wordpress web design agency built from different, loosely coupled components (i.e. services) that can be deployed independently.
The components from which the product is built:
have different business functionalities;
"communicate" with each other using REST APIs, event streams and message agents;
have their own technology stack, including a database and data management model.
At the same time, the final product, i.e. the microservices application itself, has no scale limitations. It can be complex and large, or it can be quite modest - it all depends on its tasks and intended functionality.
Microservices vs. Monoliths
Typically, applications based on microservice architecture are contrasted with monoliths. We compared the advantages and disadvantages of both approaches in detail in another article on our blog. Now, let's briefly go over the differences between the architectures.
Monolithic applications were originally designed as whole and indivisible. Of course, they can have a modular structure ( include different Namespaces, classes, objects, etc. ). However, the connection between these components is so strong that changes in one will certainly affect the operation of the software product as a whole.
An application with a monolithic architecture is like a solid brick wall. Even though it is made of individual blocks, you cannot simply replace any individual brick. The connections between the bricks are so strong that you will most likely have to take a sledgehammer, knock down the old wall or part of it, and then build everything from scratch.
In practice, it might look like this.
Let's say you have an online store. It consists of:
frontend ( user interface );
backend ( the server part that is responsible for processing requests );
databases ( DB ).
The business functionality of an online store as an application is quite diverse:
adding/removing product cards;
payment and processing of orders with their subsequent tracking;
user management and so on.
24_1.png Increase
At the application level, the functionality of this application will be executed in a single monolithic block. And when hosting an online store on the hosting provider's side, all the code will have to be placed on one server.
|
|