Microservices

Monolith applications is now a thing from the past. In order to build scalable and efficient applications, a new architectural style has come to try and solve the problems of deploying again and again the entire  code when a single change or modifications has been made to a single part of the project. I found logically correct to segment the application into units called services (each one with a specific purpose) and handle it like an independent application. 

Web development and applications are growing, and considering that this will keep trending, HTTP is used as a communication method between services. How it is properly done? Through this incredible and standardized interfaces called APIs (Application Programming Interfaces).

Since I learned Javascript,  when defining the routes I was already thinking in the required methods (GET, POST; PUT, DELETE, etc) and the scope for each one of them. Therefore, knowing about HTTP and APis will be (if it is not now) a necessary skill. 

I was thinking, if we separate the parts of the application into services there might be one downside (just a thought, might dive more after finishing this blog). Each service must be deployed in a different server or instance, but what about the means affecting the performance of the application?

Monolithic applications clearly did not have problems of communications between their parts, but by dividing them a new player enters the game: the network. It might be irresponsible to think that there might be infinite bandwidth or zero cost in the communication. Now imagine millions of requests/jobs trying to communicate among different services... Just a quick thought, so I would recommend to also take in consideration this. 

To conclude, I see more advantages for microservices, but required preparation and  fully satisfied what it takes to build these type of applications must be taken into consideration.

Comentarios

Entradas más populares de este blog

Is Design Dead

Who needs an architect?