A definição mais simplória de microservices seria a de uma abordagem para desenvolvimento de aplicações compostas por uma série de pequenos serviços.
Ao pensar rapidamente sobre essa descrição, a arquitetura SOA ressurge na mente como uma arquitetura intimamente ligada a abordagem de microservices. De fato, microservices é uma evolução do pensamento orientado a serviço tradicional da arquitetura SOA.
Os principais objetivos de SOA estão relacionados a exposição serviços a fim de melhorar e facilitar a integração, seja a partir de um legado ou de uma nova aplicação. Além disso, SOA se preocupa também com formas de organizar esses serviços e aumentar a produtividade com o reuso e composição de serviços, tudo isso com técnicas de orquestração, composição e governança.
Microservices vai um pouco mais além e diz respeito a diversas técnicas e abordagens que melhoram a orientação à serviços tradicional. Por exemplo, microservices enfatiza smart endpoints, uma abordagem que coloca mais inteligência nos endpoints para que eles não dependam de orquestradores ou service bus e o projeto voltado para falhas, enfatizando a importância dos micro serviços terem capacidade de se recuperarem de falhas de forma transparente para outros micro serviços. Além disso, outros temas relacionados aos micro serviços são descentralização da governança, descentralização do gerenciamento de dados, foco em produtos ao invés de projetos e automação da infraestrutura.
A ideia dos microservices é simplificar e melhorar a abordagem SOA tradicional por meio de diversas técnicas que melhoram diversos aspectos dos serviços expostos, tais como resiliência, gerenciamento de dados, componentização, dentre outros.