What is Microservices and Microservices Architecture ?

What are Microservices?

The term “Microservices” is a modern term used to describe a traditional “separation of concerns” pattern within a distributed, networked project. Microservices is an idea that follows an old fundamental unix philosophy “of small, sharp tools”.  Both concepts build on another foundational computer science pattern of “composition” which means that complex systems are the sum of lower level composable entities.
Composition occurs through all layers of a software project. At the lowest level, the “unit level”,  individual independent code functions interact with each other over a shared interface to create collections or “libraries” of code. At the operating system shell level, shell commands can be composed to created a pipeline of higher-level functionality. Microservices are a level of composition that happens between Web Services. A Microservice is a web service that is responsible for one piece of domain logic. Microservices interact with each other via simple network protocols like REST to complete actions but they have no knowledge of how other services work internally. This harmonious interaction between microservices is a microservice architecture.
Microservices architecture or (MSA) has been getting a lot of attention as software teams are looking for new ways of improving their release workflows. Amazon, Netflix and Ebay are among the companies that are openly embracing this way of building software and they've contributed back to the community by publishing their own experience and developing tools that can help others to adopt.
The guiding principle of microservices is to build an application by splitting its business components into small services that can be deployed and operated independently from each other.
Developers can then organise in smaller teams specialising on different services, with different stacks and decoupled deployments. This separation of concerns and decoupled independent function, enables streamlined agile software development practices like continuous delivery and integration.

Monolith Application vs Microservices

Service Oriented Architecture (SOA) Vs Microservices

How Microservices Architecture Works

Pros & Cons of Microservices

Future of Microservices