Who have not heard about microservices ?
Picture




Microservices is a software architecture approach which tries to decouple functionalities which will be served by very focused and small systems. When I say small I mean smaller. These systems will provide their functionalities through a known API .

Therefore this approach will help us to scale up our software systems by breaking them up (good bye to monolithic system problems !!) and having several independent systems very focused on their tasks (hello to distributed computing problems !!). It is important to say that any approach will have its advantages and disadvantages.

How is microservices very popular even for non-heavy systems if we have to be aware of more systems? In my opinion two factors: The Internet service providers and the container technology.


Internet Service Providers

Nowadays is too easy to get a server through any of the available Internet service Providers: Amazon Web Services , Digital Ocean , OVH , ... (Easier in some of them, like AWS or Digital Ocean) But it is also very cheap (a OVH instance per 2,99€ !!). We don't need to buy very expensive servers and having skilled people only to prepare and take care. This reduces a lot our IT infrastructure costs and gives us the opportunity of taking advantages of our skilled people to create amazing things instead of wasting time with boring tasks.


Container Technology

Linux Containers or LXC gives us the possibility of running several isolated Linux systems within an unique Linux machine. Just the idea is awesome. We can have our applications saved in images and create as many containers (running applications) as we need, hence; the same behavior that we obtain in our development machine will be the behavior that we will see in the production machine.

Although was the Docker birth which opened the world of containers to everybody. Docker makes very easy the handling of images and containers and even they offer you an open images store, Docker Hub , by free. But we all agree that we need a private images store because all our code is not open source. In this case, we can install Docker registry in our private server.

Conclusion

Nowadays is too easy having small focus applications running in containers which have been created from images in very cheap servers (usually VPS ). That is all we need to build great things using a microservices architecture, the rest depends on you !!