< 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 eu posso 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 observabilidade boa 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:45
    como é o caso do Circuito Breaker,
    que vai simplesmente limitar
  • 4:46 - 4:51
    o uso e o acesso a algumas fichas
    para que eu evite de desmoronar
  • 4:51 - 4:54
    toda a minha aplicação
    por um acesso de carga.
  • 4:54 - 4:56
    A gente vai ter também o Fall Back,
  • 4:56 - 4:58
    que é basicamente a ideia
  • 4:58 - 5:01
    do que eu faço e para onde eu vou
    caso um serviço caia.
  • 5:02 - 5:05
    E aí eu posso levar esse serviço de
    repente para uma versão antiga dele
  • 5:06 - 5:07
    num servidor legado?
  • 5:07 - 5:10
    Ou vou usar outro serviço
    alternativo,
  • 5:10 - 5:13
    Mas eu sempre vou ter
    que procurar uma alternativa.
  • 5:14 - 5:16
    Além disso, a gente ainda
  • 5:16 - 5:22
    possui a ideia de eu trabalhar
    com Blue Green ou Canary.
  • 5:22 - 5:27
    Quando a gente fala do nosso deploy,
    a ideia que eu nunca vou de apoiar
  • 5:27 - 5:30
    todos os meus microsserviços
    de uma vez
  • 5:31 - 5:35
    na prática, a ideia é que soltei
    um carrinho de compras, por exemplo.
  • 5:35 - 5:40
    Eu não vou ter só um microserviço
    desse, eu vou ter vários
  • 5:40 - 5:44
    e eu mando parcelas de acesso
    para cada um deles.
  • 5:44 - 5:47
    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:58
    depois a outra parte,
    gerando o Blue e o Green.
  • 5:59 - 6:02
    Isso é um exemplo
    de como eu consigo obter
  • 6:02 - 6:06
    o Zir ou o downtime deployment,
    ou seja,
  • 6:06 - 6:10
    de apoiar uma aplicação
    sem nunca deixá la fora do ar.
  • 6:10 - 6:14
    E além disso, 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:27
    tem que prover apenas para a gente
    falar de um mísero microserviço.
  • 6:28 - 6:30
    Foi justamente por isso que a gente
    começou a caçar alternativas
  • 6:30 - 6:34
    para começar a simplificar
    a construção das nossas APIs.
  • 6:35 - 6:39
    Um dos grandes aliados aqui
    foi a gente recorrer ao RESTful,
  • 6:40 - 6:43
    uma API que implementa boa parte
  • 6:43 - 6:46
    dessa estrutura de forma automática
  • 6:46 - 6:50
    e que já traz consigo
    uma linguagem padronizada.
  • 6:51 - 6:53
    Quando a gente pensa dessa forma,
  • 6:53 - 6:56
    a gente termina
    construindo algo novo.
  • 6:56 - 6:57
    É justamente aqui
  • 6:57 - 7:00
    que a gente começa a reparar
    que quando eu falo de RESTful,
  • 7:00 - 7:04
    eu vou estar falando não só do meio
    de comunicação, mas da construção.
  • 7:05 - 7:07
    E aqui a gente trata também
  • 7:07 - 7:10
    de como a gente vê os Frey Mocks.
  • 7:11 - 7:14
    Afinal de contas, são eles
    que ajudam também nesse processo.
  • 7:14 - 7:18
    Em Java a gente vai ter um nome de
    quando a gente fala de Python,
  • 7:18 - 7:19
    vou ter o Flask.
  • 7:19 - 7:23
    Esses caras vão trazer a estrutura
    dessa minha API
  • 7:24 - 7:27
    pré moldada com boa parte
    desses pilares já pré implementados.
  • 7:28 - 7:30
    De quebra,
    quando eu falo de REST fruto
  • 7:30 - 7:34
    utilizando o HTTP, que é uma
    linguagem padronizada na internet
  • 7:34 - 7:37
    desde os anos 90,
  • 7:37 - 7:40
    então a gente começa
    a construir a API com uma linguagem
  • 7:40 - 7:44
    que todo mundo conhece transar
    somando dados em uma estrutura
  • 7:44 - 7:47
    que também é pública,
    como por exemplo o Jeison
  • 7:47 - 7:51
    e permitindo que eu trate
    toda a parte de segurança,
  • 7:51 - 7:55
    resiliência, teste, observo,
    habilidade, divisão de domínios
  • 7:56 - 7:59
    utilizando um framework
    que já é de mercado.
  • 8:00 - 8:01
    É justamente
  • 8:01 - 8:04
    aqui que a gente começa a ganhar
    tempo.
  • 8:05 - 8:08
    Se antes a gente dizia
    que quando eu trabalho
  • 8:08 - 8:11
    com microsserviços, uma arquitetura
    orientada a 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 vai ser reaproveitada
  • 8:23 - 8:26
    e o seu uso 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:35
    e principalmente, em como ela
    consegue utilizar os microsserviços
  • 8:35 - 8:36
    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