3 pontos importantes sobre arquitetura de microserviço.

A arquitetura de Microserviços não é a solução para tudo, o bom e velho monolítico continuará sendo utilizado por muito tempo. A pergunta que vem é: Por que devo utilizar uma arquitetura baseada em Microserviços? Antes de responder a isto, vamos à algumas considerações muito importantes nas quais você deverá considerar e analisar antes de partir para uma arquitetura em Microserviços.

  1. Falta profissionais qualificados para arquitetar e desenvolver aplicações neste modelo: Para mim este é o principal ponto, embora o mercado tenha melhorado muito em relação aos profissionais qualificados, ainda assim é muito difícil encontrar empresas e parceiros de desenvolvimento que de fato sabem o que estão fazendo. E por que é tão difícil encontrar estes profissionais? Primeiramente porque além de ter domínio sobre algum framework de desenvolvimento, este profissional também precisará ter conhecimentos profundos em serviços e desenvolvimento de arquiteturas em nuvem, principalmente sobre os serviços ofertados no modelo de PaaS (Plataforma como Serviço). Este profissional deverá ser capaz de criar arquiteturas considerando desde o Frontend até o Backend, conhecidos também como Full Stack. Não basta saber programar, tem que saber programar para este modelo de arquitetura para que se possa tirar o melhor de cada serviço da nuvem em relação a disponibilidade e escalabilidade de maneira automatizada. A definição do nível de acoplamento de funcionalidades também é um fator crítico na fase de definição desta arquitetura, principalmente se você espera e busca na essência Microserviços passíveis de ser reutilizados. Microserviços altamente acoplados dificilmente servirão para outras soluções se não, para aquela na qual ele foi concebido.
  2. É complexo para desenvolver, complexo para operar e pode se tornar extremamente caro: Sim, leve isto em consideração! O desenvolvimento, principalmente no modelo Serverless (Sem servidor), requer o uso de diversos serviços da nuvem e qualquer erro de estruturação da sua aplicação fatalmente irá resultar em custos imprevistos. Decidir qual serviço utilizar e como utilizar será um fator crítico de sucesso, assim como, definir o correto nível de acoplamento de cada serviço. A operação também é complexa, requer investimentos em ferramentas para automatização do deploy da aplicação, da infraestrutura como código e também da escalabilidade e elasticidade, claro desde que o desenvolvedor tenha de fato criado algo “serverless” e escalável. Viu como o primeiro ponto é o mais importante de todos? Se o primeiro falhar tudo irá falhar em sua arquitetura, projeto e operação.
  3. Integração é ponto chave: O mínimo que espera de arquitetura de microserviço é o reuso, então cada microserviço deverá expor serviços (obviamente) nos quais precisarão servir para outras aplicações. Parece trivial e, conceitualmente é, mas na prática não é tão simples assim. Como um jogo de Lego, cada pecinha (microserviço) deverá ser capaz de se encaixar as demais peças do seu Lego (Sua aplicaçã0 ou demais aplicações). Já pensou desenvolver um microserviço para autenticação via Single Sing-on que serve apenas para uma única aplicação? Será tempo e dinheiro jogado fora. Aqui entra um componente importante a ser considerado, uma plataforma ou serviço de gerenciamento de APIs. Não para tratar as intercomunicações entre os serviços, mas para expor serviços para aplicativos móveis, portais ou outras aplicações que necessitem. E porque é importante considerar um barramento ou gerenciador de APIs? Primeiramente para que você possa expor serviços reutilizáveis de maneira segura, adicionando controles de segurança e controle sobre o consumo do seu Backend. Outro ponto sobre APIs está relacionado a estratégia da empresa quanto a monetização que este modelo pode gerar para a empresa.

Voltando a pergunta inicial agora: Por que devo utilizar uma arquitetura baseada em Microserviços?

  1. Para oferecer agilidade e flexibilidade necessária para o negócio, afinal é muito mais fácil mexer numa peça deste Lego do que na estrutura inteira. A flexibilidade aqui está relacionada a capacidade de aprimorar ou desenvolver novos serviços que futuramente serão incorporados a uma ou mais soluções.
  2. Plano de continuidade de negócio, uma arquitetura baseada em microserviços tende a ser mais escalável e mais disponível, dada sua característica de que cada serviço deverá funcionar de maneira autônoma, então em caso de falha de um serviço provavelmente sua aplicação não ficará 100% indisponível. Não se esqueça do primeiro ponto deste artigo!!!
  3. Por ser escalável, poder começar pequeno, gerar valor e depois escalar. Sim, projetos experimentais vão bem com microserviços, ainda mais quando a empresa já conta com um portfólio de microserviços desenvolvidos e expostos via APIs. Isto vai acelerar seu processo de transformação digital.

Os microserviços vieram para ficar e já são uma realidade em muitas empresas, seus benefícios para o negócio valem muito a pena, mesmo diante dos desafios apresentados aqui. Só cuidado para não contratar gato por lebre!

Abs!

Por: Daniel Rosa

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *