Microsserviços

Neste artigo, daremos continuidade à nossa discussão sobre arquitetura de software, com foco na arquitetura de microsserviços. Além disso, exploraremos seus princípios fundamentais, bem como os benefícios e desvantagens associados a essa abordagem.

1 . Arquitetura de Microsserviços

A arquitetura de microsserviços estrutura um sistema como um conjunto de microsserviços com escopo bem definido, fracamente acoplados, independentes e que implementam uma funcionalidade ou operações específicas do negócio (RICHARDSON, 2018).

Esta arquitetura de software foi projetada para acelerar os ciclos de desenvolvimento e implantação, promover a inovação, melhorar a capacidade de manutenção e a escalabilidade do software. Além disso, ela contribui positivamente com diversos aspectos sistêmicos como testabilidade, capacidade de manutenção, escalabilidade e melhoria nos ciclos de desenvolvimento e implantação. Assim sendo, como um dos efeitos de sua utilização, é proporcionada à organização que emprega esse tipo de arquitetura o desenvolvimento de software com mais qualidade e rapidez (RICHARDSON, 2018 e FARSI et al., 2021).

O microsserviço é um componente de software independente que provê funcionalidades através de comandos, consultas (queries) e eventos por meio de APIs e sistemas de mensageria (como por exemplo Apache Kafka e RabbitMQ). Nesta arquitetura, APIs possuem um papel vital, pois através delas há a exposição de funcionalidades e, também, há a exposição de operações que suportam a colaboração entre os demais componentes da arquitetura para realizar os workflows de negócio (RICHARDSON, 2018).

A Figura 4 mostra uma organização típica de uma arquitetura de microsserviços. Vários microsserviços compõem o sistema, cada um exercendo uma função específica. Cada microsserviço possui seu próprio banco de dados e se relacionam uns com os outros através de APIs REST ou filas provenientes de sistemas de mensageria. As requisições de clientes são feitas para um API-Gateway que é responsável por redirecionar a requisição para o microsserviço correto.

Figura 4 – Exemplo de uma arquitetura de microsserviços. Fonte: (RICHARDS; FORD, 2020), adaptado pelo Autor.

Referências

FARSI, Hassan et al. Following Domain Driven Design principles for Microservices decomposition: is it enough? 18th International Conference on Computer Systems 147 and Applications (AICCSA). IEEE, 2021

RICHARDS, Mark; FORD, Neal. Fundamentals of Software Architecture. 1st ed. Sebastopol: O'Reilly Media, 2020. 419 p. ISBN: 978-1-492-04345-4.

RICHARDSON, Chris. Microservices Patterns: With Examples in Java. 1st ed. Shelter Island: Manning Publications Co. 2018. 520 p. ISBN: 978-1617294549.

Last updated