Microservices

The architecture described in the previous chapter is not a clean microservice architecture. You will never meet one in its pure form in any enterprise. It is more like something that we really meet in a real company moving from monolithic to microservices.

We talk about the microservice architecture when the application is developed in the form of many small services that communicate with each other using some simple API, usually over HTTP and REST. The services implement business functionalities and can be deployed independently. Many times, it is desirable that the service deployment is automated.

The individual services can be developed using different programming languages, can use different data storage, and can run on different operating systems; thus, they are highly independent of each other. They can be, and usually are, developed by different teams. The important requirement is that they can cooperate; thus, the API one service implements is usable by the other services that build upon it.

The microservice architecture is not the Holy Grail of all architectures. It gives different answers to some problems from monolithic architectures, and many times, these answers work better using modern tools. The applications still have to be tested and debugged, performance has to be managed, and bugs and issues have to be addressed. The difference is that testing can be separated along different technologies; debugging may need more network-related work. These may be good, bad, or both at the same time. For the developers, however, the advantage is clear. They can work on a smaller unit independently and can see the result of their work faster. When developing a single module of a monolithic application, the result can be seen when the entire application gets deployed. In the case of a large application, that may be rare. A typical deployment cycle in a large corporate developing monolithic is every few months, say 3, but it is not rare to see the release development twice or even once a year. Developing microservices, the new module can be deployed as soon as it is ready and tested.

If you want to read more on microservices, the first and the most authentic source is the article by Martin Fowler (http://www.martinfowler.com/articles/microservices.html).

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.123.155