Executando verificação de segurança...
12

Por que o gRPC, essa tecnologia sensacional, ainda não é tão comum no mundo corporativo?

Recentemente, durante uns estudos, me deparei com um conceito que eu já tinha visto na faculdade, mas sempre deixei pra depois — sabe aquela coisa de “um dia eu entendo”? Pois é, mas dessa vez o assunto me pegou! Resolvi mergulhar de cabeça nos tais sistemas distribuídos e, pra não ficar só na teoria, parti pra ação: criar meu próprio sistema distribuído do zero.

Foi aí que descobri uma tecnologia que me deixou de queixo caído: o gRPC. Pra quem não conhece, ele é um framework open source criado pelo Google que facilita — e muito — a comunicação entre serviços, especialmente em sistemas distribuídos. Ele roda em cima do HTTP/2, o que traz um monte de vantagens legais: multiplexação de conexões (várias chamadas rolando ao mesmo tempo sem engasgar), compressão de dados e comunicação bidirecional — ou seja, cliente e servidor podem trocar mensagens ao mesmo tempo. Tudo fica mais rápido e eficiente.

Além disso, o gRPC usa Protobuf, um formato de serialização de dados super leve e eficiente, que deixa as mensagens compactas e o tráfego mais rápido. Perfeito pra sistemas que precisam conversar muito e sem enrolação.

Achei tudo isso incrível e com um potencial enorme pra turbinar a performance e a escalabilidade dos sistemas. Mas aí veio o plot twist: quando comentei com uns amigos da área e até com gente que trampa em empresas de verdade, ouvi algo que me surpreendeu — “Nunca vi gRPC sendo usado na vida real, só nos vídeos do Wesley Willians”.

E isso me fez pensar: se a tecnologia é tão boa e traz tantos benefícios, por que será que ainda não é tão popular no mercado, especialmente nas empresas mais “pé no chão”?

Será que é falta de divulgação? Ou de conhecimento? Ou será que a infra e a cultura das empresas ainda estão muito apegadas a métodos e tecnologias mais tradicionais — mesmo que sejam menos eficientes?

Enfim, acho que vale muito a pena abrir esse debate. Quanto mais a gente explorar e entender essas ferramentas, mais preparados vamos estar pra construir sistemas rápidos, confiáveis e que escalam sem medo.

E aí, você já usou gRPC ou brincou com sistemas distribuídos? Por que acha que essa tecnologia ainda não decolou de vez no dia a dia das empresas?

Carregando publicação patrocinada...
12

por que será que ainda não é tão popular no mercado, especialmente nas empresas mais “pé no chão”?

gRPC só se destaca em ambientes com alto tráfego. Para a maioria das empresas é matar uma formiga com uma bazuca.

gRPC tem seus problemas:

Falta de visualização clara das mensagens

gRPC transita informações binárias, você tem que decodificar para visualizálas, não tem como decifrar as mensagens em transito

Difícil configuração

gRPC é mágico no papel, no mundo real encontra desafios, precisa-se de um proxy que suporte HTTP/2 e que esteja corretamente configurado para usar o máximo da tecnologia

Arquitetura complexa

gRPC só brilha quando as conexões são reutilizadas de forma eficiente. Abrir uma conexão a cada mensagem torna-a mais lenta que uma chamada HTTP.

Para ter o desempenho máximo você precisa reutilizar essas conexões de forma inteligente.

Simplesmente não é necessário

Porque uma aplicação pequena (99% de todas as aplicações) usaria essa tecnologia?

Http é muito mais fácil, é só chamar uma URL, qualquer ferramenta lida bem com JSON. gRPC é muito mais difícil de otimizar.

Se você não tem uma aplicação sensível a latência e de larga escala simplesmente não precisa utilizar

1

Olha, muito provavelmente é porque não chrgou no mainstream, algumas pessoas e principalmente a maioria das empresas prefere não correr riscos e optar por tecnologias já bem conhecidas ou criar suas próprias...

1
1

se a tecnologia é tão boa e traz tantos benefícios, por que será que ainda não é tão popular no mercado, especialmente nas empresas mais “pé no chão”?

Considerando que sua premisa é verdadeira e que o gRPC não é tão popular no mercado. Eu pergunto porque ela deveria ser popular? Porque uma ferramenta deveria ser popular? Deveríamos escolher uma ferramenta pela popularidade dela ou pelo problema que ela resolve? Se eu quero montar um computador e preciso parafusar os componentes no gabinete eu deveria escolher um martelo porque é mais popular (do meu ponto de vista) ou uma chave de fenda? E se eu escolher uma parafusadeira para agilizar o trabalho? Mas e se eu nunca usei uma parafusadeira eletrica antes? Eu poderia espanar os parafusos, apertar de mais e quebrar algum componente.

Quando debatemos ferramentas sempre chegamos naquela maxima do Fred Brooks de que não existem balas de prata. Existem diversas opções de ferramentas que vão servir para resolver o seu problema e nenhuma delas vai ser perfeita para o seu caso. Cada escolha vai ter seus tradeoffs e o nosso trabalho é identificar eles e escolher qual deles vamos aceitar em nosso projeto.

Ja trabalhei em um projeto que usava gRPC e embora ele tenha sido muito util em varias partes do sistema, principalmente nas comunicações entre processos, ele também era um gargalo em outros momentos, dificultando o trabalho de construção de certos serviços que precisavam de maior flexibilidade nos schemas o que forçava o time a fazer gambiarras para ter um schema mais dinâmico dentro da estrutura engessada dos protocol buffers.

Não sei se realmente o gRPC não é popular no mercado, mas não acredito que esse deva ser a razão para usá-lo ou não em um projeto. Bom, espero ter contribuído com o debate de alguma forma.

1

No fim das contas, não existe solução perfeita. Nosso trabalho como desenvolvedores e arquitetos é justamente esse: entender os prós e contras de cada ferramenta, saber onde ela funciona bem, onde pode atrapalhar, e escolher aquilo que faz mais sentido para o que o projeto realmente precisa.