Isso não é microsserviço!
Publicado em: domingo, 21 de jul de 2019

No post passado eu introduzi uma analogia sobre o automobilismo profissional, e como os avanços tecnológicos chegam ao nosso dia-a-dia como consumidores de automotivos, carros de passeio.

A ideia foi contrastar duas realidades: Early Adopters com dinheiro infinito e nós, mundanos com orçamentos apertados.

Esse contraponto tenta trazer para a luz da discussão a lembrança de que Netflix e Amazon são players que podem se dar ao luxo de terem as arquiteturas que têm, enquanto nós, na tentativa de copiar, fazendo engenharia reversa de suas estratégias, estaremos copiando superficialmente o que nos ressalta aos olhos. Se continuarmos a incentivar essa bolha ao redor de Microsserviços, vamos afundar não só nossos projetos, mas nós mesmos, nossas empresas, e o termo microsserviço será enterrado como SOA foi.

Um novo passo nessa jornada começa agora, dedico esse post à compreensão de um dos principais fatores para o fracasso dos mais variados projetos técnicos:

Incompetência técnica e incapacidade de compreensão.

Sim, é agressivo, mas uma visão míope somada à busca pelo viés de confirmação, tentando achar quem quer que seja que sustente uma ideia que se pareça com a sua, o faz sentir-se cheio de si e firma na sua visão de que seus esforços estão empenhados na direção certa, fazendo a coisa certa. Se você não for capaz de olhar o contraditório, não será capaz de avaliar sua própria decisão. E onde mora a unanimidade, mora a ignorância. Quanto mais superficial, pior.

Por isso, mesmo às vésperas do lançamento de um dos meus maiores projetos, o curso Docker Definitivo (será lançado em agosto), venho dar a cara a tapa para dizer o que muitos pensam, mas ninguém quer dizer. Continuo lutando para que ideias sejam maiores que pessoas. Ideias valem a pena serem defendidas. Ideias precisam ser amparadas e contrastadas umas pelas outras para que possamos evoluir o discurso.

O post

Tudo começa com esse o artigo Microservices do Martin Fowler (Leitura obrigatória para quem quer entender Microsserviços). Vou dedicar um post outro inteiro a dissecá-lo. Hoje vamos olhar para um material um pouco menos denso. Um vídeo da GOTO Conference, realizada em Berlin em 2014.

A apresentação

Vamos começar olhando para as características gerais dos microsserviços:

Componentization via services

3:54

Ao falarmos de componentização via service, precisamos definir o que são Componentes. É aqui reside o primeiro grande dilema de quem não quer entender os conceito de microsserviços:

Componente são é substituíveis independentemente, e são atualizáveis independentemente.

E para isso ser viável, há esforços de engenharia imensos!

Organized around Business Capabilities

6:37

8:15 – Microservices rejeitam a o approach centralizador dos ESB’s

Decentralized Data Management

9:20

Pelo ponto de vista de microsserviços, ele diz não (em contraponto aos monolitos), cada serviço é responsável pelos seus próprios dados e por sua própria persistência… Você nunca fala com o data store de outro serviço a não ser via sua API.

Pelo ponto de vista de microsserviços, ele diz não (em contraponto aos monolitos), cada serviço é responsável pelos seus próprios dados e por sua própria persistência… Você nunca fala com o data store de outro serviço a não ser via sua API.
Martin Fowler

Infrastructure Automation

11:22

Pra fazer tudo isso funcionar, é realmente importante que haja automação de infraestrutura. Várias coisas como Continous Delivery, técnicas como Blue/Green Deployment que permite por coisas online com zero downtime. Esses tipos de coisas são obrigatórios também para colocar este tipo projeto para rodar, porque você está falando sobre construir o que seria uma aplicação como uma dúzia ou duas dúzias de serviços, por isso é muito importante que você tenha uma maneira muito automatizada de fazer essas coisas rodarem.
Martin Fowler

Design for failure

12:11

Microservice e SOA

13:23

Você precisa fazer isso tudo para usar microsserviços

E não para por aí. Essa apresentação é incrível e deveria ser exibida como conteúdo introdutório ao assunto. Deveria ser assistida cada vez que se fala em compartilhamento de dados de serviço via banco.

Tanto a apresentação como o texto são incríveis pois apresentam tradeoffs  a respeito da utilização de microsserviços, apontam claramente algumas das complexidades inerentes a esse desenho.

Microsserviços é complexo, um grande problema que vejo repetidamente, hoje, ao redor do assuntos é o olhar simplista, ingênuo e permissivo sobre Componentization via services. Sobre termos como independently replaceable and upgradeable e principalmente, suas conseqüências práticas. Não consigo ver esse tipo de arquitetura trabalhando sem um Event Stream, por exemplo.

Essa permissividade, que facilmente pode ser encontrara em quem se diz fazendo microsserviços com um banco monolítico, produz aberrações que vão na contramão daquilo que toda essa complexidade se preza a resolver:

  • Deploys parciais, independentes e mais frequentes.
  • Alta disponibilidade
  • Modularidade

Conclusão

Microservices ou é necessidade fundamental, ao ponto de sua empresa ou projeto não sobreviver sem.

Ou é desnecessário!

Se inspirar em microsserviços e fazer o que é viável ou o que lhe traz maior resultado é completamente diferente de fazer algo pela metade, que não traz nem de longe metade dos benefícios, e no final dizer que usa microsserviços só para “fazer parte do clubinho”.

Outro ponto relevante: Microsserviços é mais caro, exige mão de obra especializada e Highlanders Full Stack. Suspeite de quem te vende alocação e quer te convencer a usar microsserviços, vendendo como se fosse um passaporte para a terra do nunca. Se você não tem budget para isso tudo, você não tem demanda para isso tudo!

Luiz Carlos Faria

Mensagem do Autor

Espero que goste desse post. Não deixe de comentar e falar o que achou. 

Se acha que esse post pode ajudar alguém que você conheça, compartilhe!

 

Eventos passados

setembro 2020
agosto 2020
julho 2020
Nenhum evento encontrado!
Carregar Mais

Publicidade

Assine

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.

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.

Agenda & Eventos

agosto

setembro 2020

outubro
DOM
SEG
TER
QUA
QUI
SEX
SAB
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
Events for 1st setembro
Sem Eventos
Events for 2nd setembro
Sem Eventos
Events for 3rd setembro
Sem Eventos
Events for 4th setembro
Sem Eventos
Events for 5th setembro
Sem Eventos
Events for 6th setembro
Sem Eventos
Events for 7th setembro
Sem Eventos
Events for 8th setembro
Sem Eventos
Events for 9th setembro
Sem Eventos
Events for 10th setembro
Sem Eventos
Events for 11th setembro
Sem Eventos
Events for 12th setembro
Sem Eventos
Events for 13th setembro
Sem Eventos
Events for 14th setembro
Sem Eventos
Events for 15th setembro
Sem Eventos
Events for 16th setembro
Sem Eventos
Events for 17th setembro
Sem Eventos
Events for 18th setembro
Sem Eventos
Events for 19th setembro
Sem Eventos
Events for 20th setembro
Sem Eventos
Events for 21st setembro
Sem Eventos
Events for 22nd setembro
Sem Eventos
Events for 23rd setembro
Sem Eventos
Events for 24th setembro
Sem Eventos
Events for 25th setembro
Events for 26th setembro
Sem Eventos
Events for 27th setembro
Sem Eventos
Events for 28th setembro
Sem Eventos
Events for 29th setembro
Sem Eventos
Events for 30th setembro
Sem Eventos
Share This