A microservice is a design pattern to turn complex applications into simple and fine–grained yet reusable and interoperable processes that can be modified and deployed independently of each other.
According to the book Microservices Architecture (authored by members of the API Academy), microservices display the following common characteristics:
- Bounded by contexts
- Autonomously developed
- Independently deployable
- Built and released with automated processes
An implementation of this architecture includes microservice services and patterns, and it’s those patterns that allow services to service clients and/or other services.
While you may see microservice and microservice architecture used interchangeably, they’re not quite the same. A microservice architecture is a style of engineering highly–automated, evolvable software systems that are made up of capability–aligned microservices.
As a rule, these components are deployed in a Docker container, providing a centralized runtime environment (although you can have many Docker containers). A side benefit of using Docker containersis that it somewhat eases the management burden.