fbpx
Sobre Formula 1 e Microsserviços
Publicado em: domingo, 21 de jul de 2019
Categorias: .NET | Arquitetura

A busca pelo Santo Graal, agora personificado nos microsserviços, causa uma euforia semelhante ao que víamos nas filas de pessoas dando voltas em quadras, em véspera de lançamento do iPhone.

Hoje microsserviços virou uma febre, o que é intuitivo e natural, mas nem de longe é racional.

Antes de falar de Microsserviços propriamente, preciso fazer um paralelo com o automobilismo. Vou usar essa analogia o tempo todo, nesse post, para tentar expressar minha visão sobre o tema.

O ciclo de vida da tecnologia na Formula 1

Formula 1 e o automobilismo de alta performance, além de um esporte é um produtor de tecnologia. Desde freios, pneus e composições diferentes, passando por motores, câmbios e suspensão. Tudo isso de alguma forma sofreu algum tipo de influência por causa do automobilismo de alta performance. E é aí que mora a diferença.

Para que um carro popular tenha acesso à tecnologia produzida originalmente na F1, algumas coisas são necessárias:

  • Amortização do custo de pesquisa e desenvolvimento
  • Adaptação do produto para realidade doméstica
  • Otimização do custo de produção
  • Fabricação em série

Esse é o esforço para produzir diferencial comercial, algo comum no período de launch de cada tecnologia, mais tarde essas tecnologias tendem a virar commodities e nesse momento temos a massificação de seu uso.

Esse processo é necessário, pois no primeiro momento, temos Pesquisa e Desenvolvimento para produzir uma tecnologia para as condições extremas do automobilismo de alta performance. Sob essas condições extremas vemos como cada ideia se comporta sob condições extremas.

Quando algo se destaca, então são necessários esforços para produzir em escala. Isso acontece pois jogando o jogo da alta performance, dinheiro não é um grande empecilho. Custo definitivamente não é um problema tão grande quanto é para nós. Em 2018, Mercedes, Red Bull e Ferrari gastaram, cada uma, em torno de 450 milhões de euros/ano. Quando falamos das gigantes de tecnologia, acontece exatamente o mesmo.

Voltando à F1, primeiro essas tecnologias chegam aos esportivos mais caros, principalmente aqueles que tem representatividade direta nas pistas, como Mercedes, BMW, Toyota, Renault e Ferrari, e ao longo dos anos ou até décadas, chegam ao dia-a-dia nos carros de passeio. Essa jornada leva tempo.

Nós recebemos a mesma tecnologia?

Poucas são as chances da exata tecnologia ser fabricada em escala sem customizações:

  • Quando falamos de mecânica:
    • Matéria prima precisa ser mais acessível e barata
    • É aceitável ser menos resistente
    • O projeto precisa ser mais durável

As condições extremas do automobilismo profissional fazem com que poucas soluções sejam passíveis de serem aplicadas no automobilismo doméstico da mesma forma que foram concebidas, as que se encaixam nas nossas necessidades, são modificadas para caber na nossa realidade, inclusive de custo.

Netflix, Amazon, Formula 1 e ramo automotivo doméstico

O primeiro ponto que eu gostaria de ressaltar é:

Netflix, Amazon e afins estão para nós, como a Formula 1 está para o ramo automotivo doméstico.

Isso quer dizer que se a gente copiar só algumas coisas, sem discernimento, teremos um sistema ruim, com boas tecnologias! O ponto-chave é que não basta copiar algumas poucas coisas para achar que está se tornando Netflix. É preciso não só copiar tecnologias, mas a forma de uso e estratégia técnica. Não basta fazer um monte de API’s, isolar algumas coisas , se por baixo você está usando algum elemento de alto acoplamento, como um banco de dados único.

Eu vou detalhar esse ponto em um novo post, mas por hora essa é a mensagem.

Mas o que precisa ficar da mensagem é que:

O Netflix não é grande pelas tecnologias que possui.

O Netflix usa essas tecnologias porque é grande!

Nem tudo está perdido

O ponto positivo é que não há nada de errado em estudar o assunto, e não há nada de errado em conhecer essas tecnologias, há boas chances de você tirar bom proveito delas a curto ou médio prazos.

Ter consciência de que você não é o Netflix é importante.

Ser consciente sobre suas reais condições fará com que você tenha melhor discernimento. Esse discernimento é necessário para que possa entender como e o que lhe trará benefícios, mas o principal está longe da compreensão dos pontos positivos.

Conclusão e ponto de atenção

O mais importante de conhecer bem esses padrões e arquiteturas é entender com clareza o que pode ser o cavalo de troia para sua implantação. O que aparentemente parece ser incrível, mas por falta de outros padrões (que até podem ser impossíveis no teu cenário) se tornarão gargalo com muito potencial para afundar teu projeto e principalmente: Criar o consenso de que o padrão A, a arquitetura B não funciona, enquanto na verdade estamos lidando com inconsciente coletivo de muitos que acham que é só fazer isso ou aquilo, em vez de olhar o problema de forma profunda.

Como disse no início do texto, para que possamos usar tecnologia da F1 no nosso dia-a-dia, outros aspectos, precisam ser levados em conta.

Um volante de uma Ferrari não fará do teu fusca uma Ferrari

Se você quer implementar microsserviços, o faça com comprometimento. Faça de forma séria. Não me venha fazer concessões que fazem microsserviços ser um mero conjunto de API’s que você só consegue fazer deploy duas vezes por mês por causa de acoplamento.

Farei algumas outras abordagens para falarmos disso em detalhes nas próximas semanas, enquanto isso comente e deixe a sua opinião.

Update 11//Setembro/2019

Outro ponto interessante, pertinente, mas que não é escopo desse texto, é a escalabilidade, e nesse momento em que Microsserviços é hype número 1, falar de escalabilidade de monolitos é algo que faz sentido. Vejo muita gente nova replicando a falácia de que monolitos não escalam. Como conteúdo adicional segue o link do post MONOLITOS NÃO ESCALAM? do Andre Secco, amigo, também MVP e membro do Canal .NET, Coding Night e DevShow.

O Cloud Native .NET é meu principal projeto.

Onde empenho energia para ajudar, acompanhar, direcionar Desenvolvedores, Líderes Técnicos e jovens Arquitetos na jornada Cloud Native.

Conduzo entregando a maior e mais completa stack de tecnologias do mercado.

Ao trabalhar com desenvolvedores experientes, eu consigo usar seu aprendizado com .NET, banco de dados, e arquitetura para encurtar a jornada.

Ao restringir à desenvolvedores .NET eu consigo usar do contexto de tecnologias e problemas do seu dia-a-dia, coisas que você conhece hoje, como WCF, WebForms, IIS e MVC, por exemplo, para mostrar a comparação entre o que você conhece e o que está sendo apresentado.

É assim que construímos fundamentos sólidos, digerindo a complexidade com didática, tornando o complexo, simples.

É assim que conseguimos tornar uma jornada densa, em um pacote de ~4 meses.

Eu não acredito que um desenvolvedor possa entender uma tecnologia sem compreender seus fundamentos. Ele no máximo consegue ser produtivo, mas isso não faz desse desenvolvedor um bom tomador de decisões técnicas.

É preciso entender os fundamentos para conseguir tomar boas decisões.

0 comentários

Enviar um comentário

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

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

[docker de a a z]

Lives

Fique de olho nas lives

Fique de olho nas lives no meu canal do Youtube, no Canal .NET e nos Grupos do Facebook e Instagram.

Aceleradores

Existem diversas formas de viabilizar o suporte ao teu projeto. Seja com os treinamentos, consultoria, mentorias em grupo.