Microservice is one of the trendiest tech terms today, thanks in large part to DevOps and Docker containers.
What does a microservice actually entail, what do microservices have to do with platforms like containers and what can microserivices do for MSPs?
A microservice is a service that runs within an application and, when combined with other services, creates a fully functional application.
That, at least, is a general definition.
The term microservice can be tough to define with precision because there is no official authority that decides what constitutes a microservice.
Part of the challenge is that what one person views as a microservice might be defined by someone else as merely a traditional service.
The idea of breaking applications down into distinct services is not new; it became popular during the 2000s with the advent of Service Oriented Architecture, or SOA.
Defining microservices is also hard because there is no universal rule for identifying distinct services within an application.
Most applications have different layers or parts that overlap to varying degrees.
Yet despite the ambiguity that arises when trying to define microservices, you can think of them generally as any small, independent service that comprises part of an application.
Why use microservices?
If it's hard for developers to agree on what, exactly, constitutes a microservice, you might wonder why they have become so popular.
The main reason is that microservices often help to make the design and management of an application easier.
By breaking down a complex application into distinct parts, it becomes easier to write the code.
It's also less complicated for admins to manage the software when it is running.
For example, they can stop one service in order to update it without having to stop the whole application.
Microservices and Docker containers
You often hear Docker and microservices discussed as part of the same conversation.
That's because Docker containers make it easy to host microservices.
Containers provide small, portable environments in which to run distinct chunks of code.
It's worth noting, however, that you don't have to use containers in order to implement microservices.
Again, there is no official definition of what even constitutes a microservice, and there is no rule regarding how microservices have to be set up.
Instead of using containers to host microservices, you could run each microservice as a separate process directly on a host server.
You could use individual virtual machines for each microservice, if you wanted (though that probably would not be efficient).
Microservices and MSPs
So, what does all of the above mean for MSPs?
The most important thing to keep in mind is that microservice is a buzzword that your customers have probably heard by now, but that they likely don't fully understand.
As an MSP, it's your job to educate them about what microservices actually are.
You should also help them understand the ambiguity and variability regarding the way microservices are created and implemented.
In a sense, microservice is like cloud.
It's a tech buzzword that everyone has heard about and thinks they need.
But to make the most of microservices, you have to stop and think about how they actually work, whether they make sense for you and how they can best be implemented to suit your (or your clients') needs.