Os microsserviços (ou a arquitetura de microsserviços) é uma abordagem de arquitetura na qual um único aplicativo é composto por muitos componentes ou serviços menores que têm acoplamento fraco e que podem ser implementados de forma independente. Esses serviços (também chamados de microsserviços) normalmente têm a própria pilha de tecnologia, incluindo um banco de dados e um modelo de dados, e se comunicam por meio de uma combinação de APIs de REST, fluxos de eventos e message brokers.
Como os microsserviços podem ser implementados e reimplementados de forma independente, sem impactar uns aos outros ou interromper a experiência do usuário final, eles são uma combinação perfeita para as metodologias de entrega iterativa e automatizada, como integração contínua/implementação contínua (CI/CD) ou DevOps.
Além de criar novos aplicativos nativos de cloud, os microsserviços podem ser usados para modernizar aplicativos monolíticos tradicionais.
Em uma pesquisa recente da IBM com executivos de TI, executivos de desenvolvimento e desenvolvedores, 87% dos usuários de microsserviços concordaram que a adoção deles oferece benefícios logísticos e econômicos.
Os desenvolvedores geralmente implementam microsserviços em contêineres, como componentes de aplicativos executáveis e leves que combinam código-fonte de aplicativos (nesse caso, o código de microsserviços) com todas as bibliotecas do sistema operacional (SO) e as dependências necessárias para executar o código em qualquer ambiente. Menores, com um consumo de recursos mais eficiente e mais móveis do que as máquinas virtuais (VMs), os contêineres são as unidades de computação mais usadas nos aplicativos nativos de cloud modernos.
Os contêineres ampliam os benefícios dos microsserviços, pois proporcionam uma experiência de gerenciamento e implementação consistente em todo o ambiente híbrido de multicloud, que contém cloud pública, cloud privada e infraestrutura local. No entanto, à medida que os aplicativos nativos de cloud se multiplicam, isso também acontece com os contêineres e com a complexidade envolvida no gerenciamento deles. A maioria das empresas que utilizam microsserviços conteinerizados também utilizam uma plataforma de orquestração de contêineres, como o Kubernetes, para automatizar a implementação e o gerenciamento de contêineres em escala.