Microsserviços: o que são, quando valem e quando não valem

O que são microsserviços? Microsserviços são um estilo de arquitetura em que a aplicação é construída como um conjunto de serviços pequenos e independentes, cada um responsável por uma parte do negócio e conversando com os outros por interfaces definidas, em geral APIs. Cada serviço é desenvolvido, implantado e escalado por conta própria.

O resto deste texto trata do que a maioria dos materiais não trata: o que essa escolha custa depois de pronta, e em que situação ela não compensa.

O que se entende por microsserviços

A mudança em relação ao modelo anterior é essa: o software deixou de ser uma peça única.

Isso significa dizer que, com o surgimento dos microsserviços dentro da tecnologia da informação, os softwares não são mais projetados para serem monolíticos. Antes dessa inovação que é tema central deste artigo, a maioria dos softwares era construída de forma ampla, como se fosse um grande serviço, onde pequenas partes tinham integração entre si.

Mas no modelo antigo, não existia apenas a integração entre as partes, como também uma relação de interdependência, de forma que os resultados dos projetos executados pela equipe muitas vezes eram prejudicados por essa questão.

Ocorre que, com o avanço do setor, o mercado percebeu que é muito mais vantajoso em diversas vertentes, que os softwares sejam criados de forma desmembrada, com a criação independente de cada parte de um sistema.

Essas partes ainda se comunicam entre si, obviamente, caso contrário seria inviável. No entanto, são independentes e podem ser executadas como tal ou como parte de um mesmo serviço.

Além disso, como os microsserviços são independentes, isso trouxe uma melhora na forma como ocorrem implementações de atualizações e melhorias nos sistemas de TI. Porque, você pode realizar atualizações por cada parte, sem que haja interferência nas demais.

Assim, uma atualização que antes poderia melhorar determinada função de um software, mas que causaria problemas a outra função, agora não é mais um problema. Cada parte funciona de forma autônoma, o que permite ampla utilização dos serviços sem preocupações de incompatibilidade, atualizações, panes gerais e outras questões.

Isso quer dizer que diversas etapas do trabalho de sua equipe podem ser realizadas separadamente, mas unidas se necessário. Além disso, ao mesmo tempo em que tudo está ligado entre si, não há uma relação de dependência, fazendo com que o trabalho possa ser realizado de forma muito mais livre.

Papel dos microsserviços de TI na sua equipe

Depois de adentrar um pouco mais no conceito dos microsserviços, você deve estar pensando formas que esse novo conceito de sistemas pode melhorar o desempenho de sua equipe.

Para saber como isso pode acontecer, é preciso olhar para as diversas vantagens que essa inovação traz ao mundo de TI.

Inicialmente, uma das grandes vantagens é a escalabilidade, pois os microsserviços permitem que ocorram adições e modificações dos serviços que integram um sistema, sem que ocorram falhas ou comprometimento de funções conjuntas.

Com isso, o trabalho de sua equipe não é afetado cada vez que uma parte do software que você utiliza precisa ser atualizado. Assim, não há perda de tempo e atrasos nos desenvolvimentos dos trabalhos em andamento, pois não precisa encerrar as atividades por um período enquanto melhorias são feitas.

Isso é crucial, principalmente em grandes projetos, pois a perda de um dia de trabalho, por menos significante que possa parecer, pode atrasar todo o cronograma de entrega e ocasionar prejuízos financeiros.

E quando se trabalha com sistemas tecnológicos nunca se sabe quando será preciso realizar reparos, atualizações e melhorias nos sistemas atuais. Isso porque, cada dia surge novas demandas e necessidades de compatibilidade que precisam ser seguidas para atender o negócio, e obter o melhor desenvolvimento da equipe e do trabalho gerado.

Ademais, os microsserviços são muito mais leves, de modo que realizar modificações ou implementações se torna uma tarefa muito mais simples e ágil. Mais uma vez, isso melhora o desempenho da equipe que não tem o fluxo interrompido ou atrasado.

Além disso, sua equipe vai poder utilizar tecnologias distintas a partir das partes independentes dos microsserviços. Isso ocorre porque, justamente por não haver interdependência, podem utilizar programações diferentes sem a intercorrência de conflitos entre os sistemas.

Essa parte é essencial para que cada indivíduo trabalhe de forma autônoma, porém em consonância com o projeto e com as necessidades que o trabalho todo possui.

Outra forma com que essa inovação vai poder tornar sua equipe mais eficiente é em relação à construção de sistemas. Quando se constrói sistemas por partes pequenas, o resultado é obtido de forma mais fácil e eficiente. Porque, depois de construir basta que sejam unidos para que funcionem de forma coabitada.

No entanto, para que isso funcione de forma plena e tenha, de fato, um papel fundamental na melhoria da sua equipe de TI, os microsserviços precisam ter formas de comunicabilidade eficientes.

Para isso, você precisa ter microsserviços desenvolvidos por profissionais de alto nível, com ferramentas que tenham grande impacto dentro da equipe de TI e que sejam realmente eficientes.

O que é simples de encontrar desde que você considere qualidade e experiência como fatores cruciais no momento de contratar empresas que fornecem microsserviços e serviços em geral.

Microsserviço e monolito: a diferença que importa

No monolito, a aplicação é um código só, que sobe de uma vez. Mudar uma função obriga a reimplantar o conjunto, e escalar uma parte significa escalar tudo.

Em microsserviços, cada serviço sobe sozinho e escala sozinho. O catálogo pode receber dez vezes mais máquina na Black Friday sem que o cadastro receba nada.

A diferença que decide, porém, não é técnica. É quem consegue entregar sem pedir licença a quem. Num monolito, duas equipes que mexem no mesmo código precisam combinar a subida. Separadas em serviços, cada uma entrega no seu ritmo. Microsserviço é uma fronteira organizacional antes de ser uma fronteira técnica, e é por isso que resolve pouco em empresa com uma equipe só.

Quando microsserviços não valem a pena

Quatro situações em que a conta não fecha:

  • Equipe pequena. Mais serviços do que pessoas significa que todo mundo cuida de tudo. É o monolito de volta, agora com latência de rede no meio.
  • Sem automação de implantação. Dez serviços são dez esteiras para manter. Sem isso pronto antes, o ganho de autonomia vira trabalho manual multiplicado.
  • Domínio ainda mal entendido. Fronteira errada entre módulos se corrige refatorando. Fronteira errada entre serviços se corrige com migração de dados e acordo entre equipes, e é muito mais caro.
  • Volume que o monolito aguenta. Escalabilidade independente só paga quando as partes crescem em ritmos diferentes.

Quem se arrepende de microsserviços quase nunca se arrepende da tecnologia. Se arrepende de onde traçou as fronteiras.

O custo que aparece depois: a visibilidade

No monolito, quando algo quebra, o rastro de erro diz onde. A requisição nasceu e morreu no mesmo processo.

Distribuído em onze serviços, “está lento” deixa de ter endereço. O usuário espera 8 segundos, cada serviço responde em tempo aceitável, e nenhum painel mostra onde o tempo foi gasto. Essa é a conta que chega depois da migração, e quase nunca entra no cálculo de quem decide migrar.

É exatamente o problema que o rastreamento distribuído existe para resolver, e por que o que é observabilidade virou assunto obrigatório em arquitetura distribuída. Quem vai para microsserviços sem resolver isso troca um problema de entrega por um problema de diagnóstico.

Como decidir

A pergunta não é se microsserviços são melhores. É se o custo de operar vários serviços é menor que o custo de manter equipes esperando umas pelas outras. Em empresa com uma equipe e volume estável, raramente é.

A Integrity-UX cuida da camada que a decisão deixa para trás: monitoramento de infraestrutura e de serviços, com alerta e atendimento. Para saber o que o seu ambiente deixa de enxergar hoje, fale com a gente.

Este conteúdo foi produzido pela equipe da Integrity-UX, consultoria de TI especializada em infraestrutura, nuvem, segurança e continuidade de negócios para médias e grandes empresas.

Fonte: Martin Fowler, Microservices.

Facebook
Twitter
LinkedIn

Confira também

Observabilidade é determinar o que acontece dentro de

Solicite um orçamento