76 views 5 mins

O que o monólito tem a ver com a migração para microsserviços?

em Artigos
sexta-feira, 08 de fevereiro de 2019

João Victor Maia (*)

No universo da geografia, um monólito é uma estrutura geológica, como uma montanha, por exemplo, constituída por uma só pedra ou rocha maciça.

Também pode ser uma estrutura esculpida em peça única a partir de uma matriz rochosa. Como exemplos, podem ser citados a Pedra da Gávea, no Rio de Janeiro (considerado o maior monólito a beira mar no mundo), e a Esfinge de Gizé, no Egito. Mas, o que esta definição geográfica tem a ver com o mundo da tecnologia?

O simples fato de que pode ser feita uma analogia com o que ainda é visto em muitas empresas: assim como os monólitos, seus ambientes continuam em um só bloco. No entanto, nos últimos tempos, o que mais tem se ouvido falar é uma mudança neste paradigma: a migração de
arquitetura para microsserviços. Ao optar por fazer uma migração, uma empresa passa a “queimar” dinheiro por um determinado período para, mais à frente, ter retorno como um case de sucesso.

Ao começar a desacelerar o desenvolvimento de seu produto a fim de entregar valor para os consumidores, o negócio entra em uma guerra sem fim de débitos técnicos, cujo objetivo é transformar um grande e complexo sistema em diversos microssistemas especializados. Além de todo esse processo, que envolve altos custos quando o assunto é migração, também é normal a equipe começar a se particionar, ou seja, se subdividir em especialistas. E como para toda ação há uma reação, consequentemente, isso acabará por acarretar em um aumento do custo fixo da empresa.

Vamos a um exemplo disso. Antes, a infraestrutura era apenas um load balance, com algumas instâncias, banco de dados e um só custo. Com a divisão, ela passa a contar com vários load balances, resultando em API Gateway para coordenação de todos, além de mais serviços e bancos, ou seja, fazendo crescer o custo fixo.

Mas, embora os microsserviços tenham essa tendência de aumentar os custos de uma empresa, eles também têm as suas vantagens e, básica e genericamente falando, são duas: 1 – fim de um sistema legado muito complexo com alta curva de aprendizado para novos membros; e 2 – evolução ágil do novo sistema que tinha alto débito técnico por conta do elevado acoplamento do monólito.

Os ganhos também não param por aí. Eles também vão desde a velocidade de evolução do negócio até a saúde do ambiente de desenvolvimento e dos seus colaboradores. Porém, sem nunca deixar de considerar o custo fixo atual e se, principalmente, tem gordura para aumentá-lo a fim de custear tal migração. Como se pode perceber, o particionamento do sistema, e consequentemente o das equipes, consegue, por um lado, proporcionar não só uma maior diversidade de tecnologia à empresa. Mas, por outro, torna impossível a fuga da geração de custos.

É importante ressaltar, também, que cada empresa, ao partir para os microsserviços, pode escolher o que está mais de acordo com as suas necessidades. Não deve, nunca, haver a obrigação de que todos devem usar a mesma coisa, pois, quanto menores os sistemas, mais fácil será a manutenção, evolução e aprendizado sobre ele.

Afinal, como já diz uma velha e conhecida premissa, o que é bom para um não será, necessariamente, bom para outro. Evitar a síndrome da grama do vizinho (a dele é mais bonita do que a minha) não irá fazer mal a ninguém.

(*) – É Data Engineer do pag!.