Microservices are an architectural approach that allows the development of physically separated modular applications which are autonomous, enabling agility, rapid development, continuous deployment, and scaling.
An application is built as a set of services, similar to SOA, such that services communicate through standard APIs, for example, JSON or XML, and this allows the aggregation of language-agnostic services. Basically, a service can be written in the best language for the task the service is being created for.
Each service runs in its own process and is location neutral, thus it can be located anywhere on the access network.