In a microservices application architectural style, an application is composed of many discrete, network-connected components, termed microservices. Microservices architectural style is an evolution of SOA (Services Oriented architecture) architectural style. Applications built using SOA services tend to become focused on technical integration issues and the level of the implemented services are often fine-grained technical application programming interfaces (APIs). In contrast, the microservices approach implements clear business capabilities through large-grained business APIs.
The biggest difference between the two approaches is how they are deployed. For many years, applications have been packaged in a monolithic fashion, a team of developers construct one large application that does everything required for a business need. Once built, the application is deployed multiple times across a farm of application servers. In the microservices architectural style, developers independently build and package several smaller applications that each implement parts of the application.