If the term Microservice is new to you then chances are that you’re thinking the same thing that went through my mind when I first heard the term.
“Oh great, yet another new technology that I need to learn about!”
Thankfully you needn’t worry, as Microservices Architecture is just a new name for a concept that you’re likely already familiar with.
A Quick Introduction to Microservices:
Put simply, a microservice is a small and independently deployable service that typically sits alongside other small and independently deployable services, collectively forming a larger web application.
You could consider Microservices Architecture to be the opposite of Monolithic Architecture. Instead of a single, self contained application built using tightly coupled and interdependent components, instead an application built following the rules of Microservices Architecture would be made up of lots of smaller loosely coupled modules that run independently of each other.
Rather than scaling vertically by migrating the entire application to more powerful hardware, with Microservices it is easier to scale horizontally by identifying which services need more resources and simply spinning up more instances.
With each microservice being an independent service, it naturally becomes easier to have smaller teams working on each microservice. It also means services can be written in different languages, allowing developers to use the best tool for the job and make use of the latest technologies.
Releasing updates no longer means redeploying the entire application. Instead, only the service being modified needs to be redeployed which also means the deployment is much faster.
If one of the microservices is experiencing a problem, it no longer automatically brings the whole system down. Instead, the application may be able to continue running albeit with reduced functionality. The fault is also easier to find as each service can be individually monitored.
If you would like to learn more about microservices, a good place to start would be this guide by SmartBear, which goes into detail about the characteristics and advantages/disadvantages, as well as giving more information about how they actually work.
We have also been working on examples that show how to run our software as a microservice, so if you would like some hands-on experience then you can check out our guide for running BuildVu from other languages.