Humor me for a second and let me know if this works:
I have to confess that I would be surprised if I had answered, “Yes,” to any of the questions that I asked. And it makes a lot of sense that you answered, “No,” since everyone knows that a “microservice” isn’t even a software element (class, function, procedure, component, routine), nor is it an application or a software tool.
What I’m going to ask you next uncovers a disease that is killing me: Why do we go around proposing magical solutions based on making a microservice (as if it were a software element) or using a microservice (as if it were a tool)? I felt sick the day I heard: “Hey, we have to microservice this.” It seems it’s a verb now!! An action!! Please pardon me for a minute, I need to take my medicine.
Microservices is the name of an architecture style (or architectonic patron, if you like taxonomies). Either way, it represents a combination of design decisions conveniently grouped to build a solution that favors specific quality attributes when they present some solid problems in a determined context. Therefore, the sequence of thinking is: given a context in which certain problems are evident, it is convenient to base the solution (or one part) on a certain architectonic style to favor determined quality attributes.
Microservices aren’t made. They aren’t used. They are built solutions based on the style of Microservices. Regarding solid software, I recommend speaking in terms of the modules or components, depending on whether it refers to the programming code or what the computer executes.
To summarize:
Microservices solve a problem of Release and Deployment that favors, mostly, the modification of the system. That is to say, they satisfy the expectation of the business that the system assimilates fast changes (read: to the least cost possible). It is an intrinsic economic expectation of the business.
You likely know the recipes for implementing solutions to these problems because they aren’t new. What is happening is that technology enables us, increasingly, to reduce the costs of change.