Modern day businesses requires agility to survive and to be a leader. If you translate this business requirement into technology requirement, this means X Deploys a day (Time to market).
The big bloated, complex applications that we have built over a period of time is not allowing us to meet this X Deploys a day without compromising quality. If there is a way to decompose the big bloated monolith application blocks into smaller chunks it will help the business to extend, manage and deploy and eventually the X Deploys a day could become a reality.
How do we get there? Is there a way to achieve this? Microservices (lots of small applications) is one of the ways that could help in achieving this.
Microservices means developing a single, small, meaningful functional feature as single service, each service has its own process and communicate with lightweight mechanism, deployed in single or multiple servers.
Additional Reading List
The Twelve-Factor App
Microservices Reading List
Microservices Architecture and Scalability
Simon Brown’s Video : Software Architecture & Balance with Agility