< Return to Video

MW CAP07 2025 VA02 PADROES DE DESIGN

  • 0:08 - 0:10
    A construção de uma aplicação,
  • 0:10 - 0:14
    principalmente a que envolve o uso
    de APIs,
  • 0:14 - 0:19
    passa por entendermos diversos pilares
    que a gente tem que endereçar
  • 0:19 - 0:23
    para que toda aplicação de fato
    opere como a gente pretende.
  • 0:23 - 0:26
    Um desses exemplos
    é quando a gente começa a pensar
  • 0:26 - 0:30
    em uma arquitetura de microsserviços.
  • 0:30 - 0:32
    Eu não posso simplesmente
    deixá-la rodando.
  • 0:32 - 0:37
    Eu preciso saber, por exemplo,
    como que eu vou quebrar
  • 0:37 - 0:40
    esses serviços dentro das estruturas.
  • 0:40 - 0:44
    E aí a gente chama isso
    de desacoplamento,
  • 0:44 - 0:45
    que é basicamente a ideia
  • 0:45 - 0:49
    de sairmos quebrando serviços
    em partes menores.
  • 0:49 - 0:52
    Isso pode ser feito, por exemplo,
    por domínio,
  • 0:52 - 0:55
    pela própria aplicação,
    pela lógica de negócios.
  • 0:55 - 1:00
    A gente tem algumas alternativas
    que podemos utilizar para isso.
  • 1:00 - 1:03
    As duas alternativas principais
    é justamente a gente pensar
  • 1:03 - 1:07
    na quebra por domínios e subdomínios
    e na quebra por negócios.
  • 1:07 - 1:11
    Essas serão as formas
    mais corriqueiras da gente quebrar.
  • 1:11 - 1:15
    Mas vejam que isso
    é só um dos pilares.
  • 1:15 - 1:18
    Na prática, a gente ainda vai falar
    de muito mais coisa.
  • 1:18 - 1:22
    Um desses exemplos
    é quando a gente fala da integração
  • 1:22 - 1:23
    dessas aplicações.
  • 1:23 - 1:26
    Por mais que eu esteja falando
    em API,
  • 1:26 - 1:29
    eu tenho APIs distintas.
  • 1:29 - 1:31
    Em muitos casos,
    a gente estará falando
  • 1:31 - 1:34
    até de tecnologias mesmo distintas,
  • 1:34 - 1:37
    o que é o grande barato
    do uso de uma API.
  • 1:37 - 1:38
    E justamente aqui,
  • 1:38 - 1:40
    a gente vai ter que entender
    algumas coisas.
  • 1:40 - 1:44
    Se eu utilizo soluções
    proprietárias de API Gateway,
  • 1:44 - 1:48
    elas já terão as suas próprias
    estruturas de comunicação.
  • 1:48 - 1:51
    Esse é o caso, por exemplo,
    das soluções como a da IBM,
  • 1:51 - 1:54
    ou mesmo da WS,
    que já trazem ali
  • 1:54 - 1:57
    uma padronização de APIs
    para a gente utilizar.
  • 1:57 - 2:03
    Esses caras ainda podem ser seguidos
    dos seus agregadores de mensagem
  • 2:03 - 2:09
    ou mesmo de diversos outros recursos
    para que eu transforme um MEXE,
  • 2:09 - 2:12
    ou seja,
    uma colmeia de serviços
  • 2:12 - 2:15
    em entre aspas,
    uma estrutura unificada.
  • 2:15 - 2:16
    É através desse MEXE,
  • 2:16 - 2:20
    que vários serviços vão poder
    se comunicar e interagir,
  • 2:20 - 2:24
    para que a gente entregue
    tudo como sendo uma solução só.
  • 2:24 - 2:28
    A gente também pode falar dos pilares
    ligados aos bancos de dados,
  • 2:28 - 2:32
    principalmente quando a gente pensa
    que esses dados,
  • 2:32 - 2:36
    eles vão estar internalizados
    dentro de cada um dos serviços
  • 2:36 - 2:40
    e que eu preciso ter toda uma estrutura
    para tratá-los.
  • 2:40 - 2:43
    Dessa forma,
    a gente vai sempre pensar
  • 2:43 - 2:47
    em como que eu vou
    compartimentalizar esses dados,
  • 2:47 - 2:51
    como vamos fazer
    as nossas requisições.
  • 2:51 - 2:55
    E aí aqui a gente terá o CQRS,
  • 2:55 - 2:58
    que é basicamente
    uma estrutura de queries
  • 2:58 - 3:00
    que a gente vai conseguir utilizar
  • 3:00 - 3:04
    para conseguir chegar
    dentro do nosso dado.
  • 3:04 - 3:07
    Vejam que só no pilar de dados,
    a gente já estará falando
  • 3:07 - 3:13
    de uma infinidade de alternativas
    e montagens que a gente consegue ter.
  • 3:13 - 3:16
    Além disso, a gente ainda terá
    que falar de observabilidade.
  • 3:16 - 3:20
    Eu preciso saber se esse serviço
    é íntegro,
  • 3:20 - 3:22
    como ele está operando,
  • 3:22 - 3:25
    se ele está consumindo
    mais recursos do que deveria
  • 3:25 - 3:26
    e por aí vai.
  • 3:26 - 3:32
    A gente normalmente trata
    nesses três caras do MLT,
  • 3:32 - 3:36
    "métricas, logs e traces".
  • 3:36 - 3:40
    Ou seja,
    como eu entendo a aplicação,
  • 3:40 - 3:44
    como ela está respondendo,
    quais mensagens ela está gerando
  • 3:44 - 3:48
    para que a gente consiga, de fato,
    ter uma boa observabilidade dela.
  • 3:48 - 3:50
    E é justamente aqui que a gente
    começa a falar
  • 3:50 - 3:53
    do pilar de testabilidade.
  • 3:53 - 3:57
    Como é que eu vou garantir
    que tudo o que acontece
  • 3:57 - 3:59
    de fato está testado e validado?
  • 3:59 - 4:04
    Notem aqui que um pilar pode sempre
    complementar o outro.
  • 4:04 - 4:06
    Se a gente fala de observabilidade,
  • 4:06 - 4:09
    onde eu quero ver o que está
    acontecendo com a aplicação,
  • 4:09 - 4:13
    ela, de certa forma,
    vai depender dos testes
  • 4:13 - 4:16
    para que a gente tenha ali
    uma massa de informações,
  • 4:16 - 4:21
    que me permita entender melhor
    o comportamento dessa aplicação.
  • 4:21 - 4:25
    É justamente aqui que a gente
    vai começar a falar também
  • 4:25 - 4:30
    de outros tópicos que são transversais
    a todos esses pilares.
  • 4:30 - 4:33
    Não adianta de nada
    colocar uma aplicação para operar
  • 4:33 - 4:36
    que vai cair ao menor suspiro.
  • 4:36 - 4:37
    Justamente por isso,
  • 4:37 - 4:40
    a gente checa sempre técnicas
    de resiliência,
  • 4:40 - 4:44
    como é o caso do Circuit Breaker,
    que vai simplesmente
  • 4:44 - 4:49
    limitar o uso e o acesso
    à algumas features
  • 4:49 - 4:52
    para que eu evite desmoronar
    toda a minha aplicação
  • 4:52 - 4:54
    por um acesso de carga.
  • 4:54 - 4:56
    A gente vai ter também o Fallback,
  • 4:56 - 4:59
    que é basicamente a ideia
    do que eu faço e para onde eu vou
  • 4:59 - 5:02
    caso um serviço caia.
  • 5:02 - 5:04
    E aí eu posso levar esse serviço,
    de repente,
  • 5:04 - 5:07
    para uma versão antiga dele
    em um servidor legado
  • 5:07 - 5:10
    ou vou usar outro serviço
    alternativo,
  • 5:10 - 5:14
    mas eu sempre vou ter
    que procurar uma alternativa.
  • 5:14 - 5:18
    Além disso,
    a gente ainda possui a ideia
  • 5:18 - 5:22
    de eu trabalhar
    com Blue-Green ou Canary,
  • 5:22 - 5:24
    quando a gente fala do nosso deploy.
  • 5:24 - 5:31
    A ideia que nunca vou deployar todos
    os meus microsserviços de uma vez.
  • 5:31 - 5:35
    Na prática, a ideia é que se eu tenho
    um carrinho de compras, por exemplo,
  • 5:35 - 5:38
    eu não vou ter
    só um microserviço desse,
  • 5:38 - 5:44
    terei vários e eu mando parcelas
    de acesso para cada um deles.
  • 5:44 - 5:48
    Dessa forma, quando eu preciso
    fazer uma atualização,
  • 5:48 - 5:51
    se eu tenho, por exemplo,
    quatro carrinhos de compra,
  • 5:51 - 5:55
    eu vou atualizar primeiro
    uma parte deles,
  • 5:55 - 5:59
    depois a outra parte,
    gerando o Blue e o Green.
  • 5:59 - 6:02
    Esse é um exemplo
    de como eu consigo obter
  • 6:02 - 6:06
    o Zero Downtime Deployment,
    ou seja,
  • 6:06 - 6:10
    deployar uma aplicação
    sem nunca deixá-la fora do ar.
  • 6:10 - 6:11
    E, além disso,
  • 6:11 - 6:14
    a gente ainda tem que falar
    dos métodos de Discovery,
  • 6:14 - 6:17
    da construção das interfaces gráficas.
  • 6:17 - 6:22
    Vejam que são vários pilares
    que a gente vai discutir que uma API
  • 6:22 - 6:28
    tem que prover apenas para a gente
    falar de um mísero microsserviço.
  • 6:28 - 6:30
    Foi justamente por isso que a gente
    começou a caçar alternativas
  • 6:30 - 6:35
    para começar a simplificar
    a construção das nossas APIs.
  • 6:35 - 6:40
    Um dos grandes aliados aqui,
    foi a gente recorrer ao Restful,
  • 6:40 - 6:46
    uma API que implementa boa parte
    dessa estrutura de forma automática
  • 6:46 - 6:51
    e que já traz consigo
    uma linguagem padronizada.
  • 6:51 - 6:56
    Quando a gente pensa dessa forma,
    a gente termina construindo algo novo.
  • 6:56 - 6:58
    É justamente aqui que a gente
    começa a reparar
  • 6:58 - 7:00
    que quando eu falo de Restful,
  • 7:00 - 7:03
    eu vou estar falando não só do meio
    de comunicação,
  • 7:03 - 7:05
    mas da construção.
  • 7:05 - 7:11
    E aqui a gente trata também
    de como a gente vê os frameworks.
  • 7:11 - 7:11
    Afinal de contas,
  • 7:11 - 7:14
    são eles que ajudam também
    nesse processo.
  • 7:14 - 7:16
    Em Java,
    a gente vai ter o Node.
  • 7:16 - 7:19
    Quando a gente fala de Python,
    eu vou ter o Flask.
  • 7:19 - 7:24
    Esses caras vão trazer a estrutura
    dessa minha API
  • 7:24 - 7:28
    pré-moldada com boa parte
    desses pilares já pré-implementados.
  • 7:28 - 7:30
    De quebra,
    quando eu falo de Restful,
  • 7:30 - 7:32
    estou utilizando o HTTP,
  • 7:32 - 7:37
    que é uma linguagem padronizada
    na internet desde os anos 90,
  • 7:37 - 7:40
    então a gente começa
    a construir a API com uma linguagem
  • 7:40 - 7:43
    que todo mundo conhece,
    transacionando dados
  • 7:43 - 7:45
    em uma estrutura
    que também é pública,
  • 7:45 - 7:47
    como, por exemplo,
    o JSON,
  • 7:47 - 7:51
    e permitindo que eu trate
    toda a parte de segurança,
  • 7:51 - 7:56
    resiliência, teste, observabilidade,
    divisão de domínios,
  • 7:56 - 8:00
    utilizando um framework
    que já é de mercado.
  • 8:00 - 8:01
    É justamente aqui,
  • 8:01 - 8:05
    que a gente começa a ganhar
    tempo.
  • 8:05 - 8:09
    Se antes a gente dizia que quando
    eu trabalho com microsserviços,
  • 8:09 - 8:12
    uma arquitetura
    orientada à microsserviços,
  • 8:12 - 8:15
    ela vai ser custosa
    de começar a implementar.
  • 8:15 - 8:18
    Agora, de fato,
    vou ter um gasto de aprendizado
  • 8:18 - 8:23
    dessa nova tecnologia,
    mas muita coisa será reaproveitada
  • 8:23 - 8:27
    e o reuso vai terminar
    sendo o carro-chefe
  • 8:27 - 8:30
    de tudo o que a gente vai trabalhar
    na utilização de APIs
  • 8:30 - 8:34
    e principalmente,
    em como ela consegue utilizar
  • 8:34 - 8:37
    os microsserviços para se potencializar.
Title:
MW CAP07 2025 VA02 PADROES DE DESIGN
Video Language:
Portuguese, Brazilian
Duration:
08:40

Portuguese, Brazilian subtitles

Incomplete

Revisions Compare revisions