Often times, specially around developers, the discussions around Microservices is goes around the underlying technology: “I have a [technology related] microservices that…” where the technology is usually the leading / bleeding edge of the technology that makes developers excited about their code. This, in fact, is the wrong perspective on looking at things, since the cornerstone of Microservice is the business capability.
We need to keep in mind that the code, the architecture and the ultimate software is there to address a business need. The fact that we are using one architecture style or the other makes no difference.
So what is a business capability? “A business capability is a concept from business architecture modeling. It is something that a business does in order to generate value.” (Richardson, 2018)
This also means that having a component run in a docker container, cloud edge or a Kubernetes cluster, it does not automatically become a microservice as it violates what in my opinion is the most important rule of the design. After all, your business does not generate a value by running, as an example, docker containers, unless that is the core of your business.
Citations
Richardson, C. (2018). Microservice Patterns (1st ed.). Manning Publications.