developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies. -- James Lewis and Martin Fowler
normally divided by functional layers, such as web, business, and data. You scale a monolithic app by cloning it on multiple servers/virtual machines/containers. A microservice application separates functionality into separate smaller services. The microservices approach scales out by deploying each service independently, creating instances of these services across servers/virtual machines/containers. https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-overview-microservices
development More time for settings Easier to test when having OOP knowledge or desire to know OOP More difficult to test manually because of configurations More progress