Latest / Entre Chaves / #246 Load Balancer: a solução para tráfegos imprevisíveis
Transcript
- 0:02Está começando mais um entre chaves, o seu podcast de
- 0:05desenvolvimento, o seu Dudu, e hoje nós vamos falar sobre 11.
- 0:09Coisinha que às vezes passa batido, né, que é o Word
- 0:12balance, que que seria esse cara?
- 0:14Para que que ele serve? Quais os?
- 0:16Os problemas que ele traz pra gente, né?
- 0:18E hoje estamos aqui na bancada, junto comigo e o Igor.
- 0:21Fala pessoal, tudo bem com vocês?
- 0:23Bom, confesso que já passei um tempinho pra não falar aí.
- 0:27Metade do dia procurando entender porque que a aplicação
- 0:30estava recebendo uma requisição e hora.
- 0:34Outra, ela recebia a mesma requisição e falhava.
- 0:37Acho que no final do dia, ali entendi que seria o Lou de
- 0:40balance um dos causadores. Exatamente, né?
- 0:43De vez em quando isso acontece. É um dos problemas comuns com
- 0:46com o Lou de balance. EE aqui pra conversar com a
- 0:49gente também temos Oo Marcos. Pra gente falar um pouquinho
- 0:53desse assunto que de vez em quando puxa o nosso tapete, né?
- 0:56Lou de balance o que seria o Lou de balance?
- 0:58Primeiro, né? Acho que é bom a gente dar um
- 0:59pequeno conceito, né? Pra quem às vezes nunca mexeu,
- 1:03né? Hoje é.
- 1:04Querendo ou não, é bem provável que todo mundo já tenha visto de
- 1:06alguma forma ou mexido em algum tipo de low de balança, às vezes
- 1:09até se entender direito, mas o low de balance basicamente pode
- 1:13enxergar ele como uma ferramenta de distribuição de tráfego, né?
- 1:16Pra gente não poder permitir que quando um usuário se conecte na
- 1:22sua aplicação, Na Na, na, na, no seu outload, na sua carga,
- 1:25aquela conversa dele com a sua aplicação seja distribuída entre
- 1:29múltiplos servidores. Hospedando a sua aplicação.
- 1:32E aí quando a gente pensa no low de bala ser beleza, ele vai
- 1:35distribuir essa essa carga. Mas pra que?
- 1:37Pra que que a gente pensa nisso? Por que que a gente precisa
- 1:40distribuir carga, né? É.
- 1:41Bom, eu gosto talvez de dar um exemplo assim, até com os
- 1:44números mais práticos, né? Porque hoje em dia fala se muito
- 1:47o low de base com aplicações ali de milhares de aquisições, com
- 1:50vários acessos, milhares de usuários simultâneos, né?
- 1:54Mas trazendo para um cenário com números menores, eu diria que
- 1:58assim hoje você constrói sua aplicação.
- 2:00Ela consegue suportar ali uma requisição por segundo e com o
- 2:05passar do tempo você está escalando isso para alguns
- 2:07usuários e você começa a receber 5 requisições por segundo.
- 2:11E acontece que o seu servidor com a sua aplicação, não está
- 2:14preparada para para esse cenário.
- 2:16E o que acontece é que os usuários que estão fazendo essa.
- 2:20Essas novas aquisições, essas aquições excedentes, fico
- 2:23esperando. Fica com um problema de
- 2:25carregando ali, fica numa filinha até que isso seja
- 2:29realmente processado. E o low de balace, ele veio pra
- 2:33que a gente possa adicionar um dos recursos, na verdade, né?
- 2:36É adicionar é mais servidores e ele gerenciar isso.
- 2:40Então a minha aplicação, que agora começa a receber 5
- 2:44requisições por segundo, eu posso trabalhar com 2
- 2:47servidores. E o low de bala?
- 2:49Se ficar servindo esses 2 servidores porque os usuários
- 2:53não fica esperando essa requisição, é ser processado.
- 2:56Eu acho legal isso que você falou, né, porque tá muito
- 2:59atrelado com a nomenclatura do momento que eles falam desse
- 3:02calor horizontal, né? Então a gente não vai parar
- 3:05necessariamente a máquina pra que ela tenha que subir com mais
- 3:09recursos e seja capaz de responder mais requisições.
- 3:13Eu vou subir outras máquinas e por trás dos panos, eu vou
- 3:16direcionar o tráfico para elas para conseguir atender a demanda
- 3:20dos nossos usuários, né? Eu acho que isso também atrelado
- 3:23com a palavra escalabilidade horizontal.
- 3:26Pessoal tem usado bastante aí para garantir a disponibilidade
- 3:29da aplicação. Eu acho até que nisso aí que
- 3:32você falou, né, de a máquina tem o tempo de subir, né, de de
- 3:35iniciar a aplicação, de configurar as coisas todas,
- 3:38então. Se eu tenho a possibilidade de
- 3:40botar mais de uma máquina ali, eu posso fazer essas essas
- 3:44atualizações por debaixo dos panos, né?
- 3:45Eu posso até, por exemplo, pensar em estratégias de rolou
- 3:48out pra minha aplicação que envolvam é algum tipo de de
- 3:52distribuição de carga. Posso fazer com que é uma
- 3:55aplicação minha. Eu pense em cara, deixa eu pegar
- 3:59esses. Eu tenho 5 servidores, eu quero
- 4:01pegar um dos servidores e atualizar.
- 4:03Por uma versão nova da minha aplicação eu consigo fazer isso
- 4:06sem tirar minha aplicação do ar, né?
- 4:08Tipo, eu vou fazendo a minha atualização passo a passo, eu
- 4:11primeiro atualizo no servidor, depois que ele tá atualizado eu
- 4:14tiro um outro servidor do balanceador de carga, o segundo
- 4:17servidor, faço a atualização lá e depois volto ele pro pro
- 4:21balanceador de carga, né? Pra que a minha aplicação esteja
- 4:24sempre disponível momentaneamente, eu tenho um
- 4:26pouco menos de servidores respondendo.
- 4:28Ou até se eu não não puder ter menos servidores, eu posso usar
- 4:31uma estratégia contrária, né? Eu posso adicionar um servidor
- 4:34novo com a versão nova da minha aplicação, uma vez que ela está
- 4:36ok, eu removo um servidor antigo, né?
- 4:39Então ao invés de 5, eu crio 1/6 servidor.
- 4:41Depois que esse servidor subiu, eu removo um, ele volta até 5,
- 4:46sendo que um desses está atualizado e faço esse processo
- 4:49até atualizar todos. Acho que isso é uma forma da
- 4:51gente garantir alta disponibilidade e fazer
- 4:52manutenção e estratégia de Rolo out pra aplicação.
- 4:55É então assim, é, esse seria +1 + 1 utilidade de fato do do Loud
- 5:00balace, né? Freud, do Canário que acho que
- 5:02seria, acho que seria. Resumindo bem, o que o Dudu
- 5:04comentou, é, é a estratégia, onde você faz um teste primeiro
- 5:08ali, vê se tá correspondendo. A aplicação corresponde do que é
- 5:12esperado e, caso necessário, faz o Rolo out sem impactar toda a
- 5:15aplicação em si. Mas nós temos também a questão.
- 5:18De como é feito esse essa distribuição do tráfego?
- 5:21Vocês chegaram? Vocês têm algum exemplo?
- 5:24Vocês já trabalharam com algum algoritmo específico?
- 5:27Como que seria hoje pra gente explicar para os desenvolvedores
- 5:30como é feito essa distribuição como o low de bala, se ele
- 5:32trabalha na hora de entregar o servidor mais saudável ou o
- 5:37servidor mais próximo? É não bacana?
- 5:39Igor eu acho que existe várias formas de se configurar um low
- 5:42de bala. Inclusive, ele é subdividido em
- 5:452 camadas principais. A gente fala camada l 4.
- 5:48A camada L7 quem viu na faculdade aí algumas coisas
- 5:51sobre redes, suas diversas camadas, vai lembrar um
- 5:54pouquinho dessas 2 etapas. Basicamente, o protocolo l 4
- 5:59está um nível um pouco mais baixo.
- 6:01Ele é um protocolo, vamos dizer assim, mais cego, que vai
- 6:04trabalhar diretamente na camada de rede.
- 6:07Ele não analisa nada. E a carga?
- 6:09Não sei se a gente pode falar assim, mas de meio que de
- 6:11maneira burra, ele vai distribuindo a carga entre as
- 6:14aplicações. Usando a camada de rede, já o
- 6:17protocolo. L7, ele é?
- 6:18Considerado o protocolo, a camada, né?
- 6:20L7 é considerado a camada de aplicação, então ela consegue
- 6:23analisar alguns dados da requisição para conseguir assim
- 6:27distribuir a carga e direcionar para uma aplicação específica.
- 6:30Então ele é subdividido dentro dessas 2 camadas e cada uma
- 6:34dessas camadas tem algoritmos específicos pra distribuição.
- 6:38Mais simples, como rodin Robin, que é um dos algoritmos que faz
- 6:42a distribuição sequencial ou ponderada por peso, até o mesmo
- 6:47algoritmo de perrech que vai fazer a distribuição com base.
- 6:51Nos ips de origem, possível teste AB, por exemplo, que é
- 6:54possível de ser configurado. E.
- 6:57Até então, chegando um pouco nisso aí que você falou a
- 6:59questão de usar os testes ABA, gente, tem alguns algoritmos de
- 7:03de de de distribuição de carga, né?
- 7:05Igual você comentou do round hobby e do iperest, já teve
- 7:08casos onde vocês tiveram que configurar algum tipo de de de
- 7:12algoritmo diferente baseado em características diferentes da
- 7:15sua aplicação? Tipo, porque igual os seus
- 7:17comentários, ler 4 ele é mais. Burro, né?
- 7:20Igual você falou o Marcos, mas até pelo fato dele trabalhar
- 7:23numa camada mais baixa do protocolo e tudo, ele
- 7:27possivelmente vai conseguir uma performance melhor, né?
- 7:31Ele vai conseguir rotear mais pacotes do que um L7, que talvez
- 7:34tenha uma carga um pouco maior ali dentro, e vai olhar dados da
- 7:38requisição de rotear. Então talvez ele sofra um pouco
- 7:41disso. Então acho que existem cenários,
- 7:44né, pra cada um dessas. É pegando assim essa essa mesma
- 7:47analogia. Eu diria que vamos supor o Loud
- 7:51balace explicando de um jeito, talvez até um pouco mais
- 7:54simples, ele seria um despachante que está entregando
- 7:56os pacotes no L4, lá ele só sabe qual que é Oo CEP, EEA entrega,
- 8:02ele só é responsável por isso, ó, eu sei qual que é o CEP, vou
- 8:05fazer A Entrega já OOL 7, ele já abre esse pacote, olha e fala
- 8:09assim, OPA, espera aí, aquele destino é o melhor para esse
- 8:12tipo de conteúdo? Ah, não é aquele outro servidor
- 8:15é, seria melhor e trazendo exemplos né, de utilizar.
- 8:18Ação, eu eu diria que assim Ol 4, por exemplo, ele poderia ser
- 8:23bem utilizado para banco de dados, por exemplo.
- 8:25Onde que a gente tá falando aqui, né?
- 8:27Da da de porta de camada, que é onde eu não preciso fazer a
- 8:31leitura desse conteúdo, eu já tenho fixo, qual é a porta, qual
- 8:35é o tipo de protocolo que eu vou estar trabalhando e eu só
- 8:38preciso redirecionar ele para os 35 servidores, os múltiplos
- 8:42servidores que eu tenho de banco de dados já o de aplicação com
- 8:45Ol 7 eu já poderia fazer algo diferente que assim.
- 8:48Olha, é quando eu tiver falando lá o barra PI barra usuários, eu
- 8:52vou pro servidor a, quando eu tiver falando do barra PI barra
- 8:56pagamentos, eu vou pro servidor b então acho que seria uma
- 9:00analogia nesse sentido. Pegando um pouquinho sua
- 9:03pergunta, Dudu, acho que assim tem um outro algoritmo que eu
- 9:06trabalhei, que foi a questão de latência.
- 9:08Ele vê qual é o servidor que tá com um response time mais
- 9:12próximo ali, mais saudável pro usuário.
- 9:15E nesse cenário, a gente trabalhou numa numa solução de
- 9:19multilígio, basicamente. Eu tinha ali 2 regiões dentro do
- 9:24da minha aplicação, eu tinha Estados Unidos e Europa e eu
- 9:27precisava identificar por onde que os usuários estavam
- 9:30acessando e entregar aquele conteúdo mais rápido Pra Ele,
- 9:33pra que ele não precisasse fazer todo o tráfico dos usuários da
- 9:36Europa. Tá acessando um servidor nos nos
- 9:38Estados Unidos, sendo que a gente já tinha o aplicação
- 9:41dentro da nuvem lá na região da da Europa que estava estaria
- 9:44mais próxima. Acho que isso é bem legal, né?
- 9:46Você falou porque isso é aplicável até para cenários de
- 9:49aplicação de negócio mesmo. Um exemplo da Black Friday ainda
- 9:52está quase chegando aí, batendo na porta.
- 9:55Você pode querer disparar campanhas específicas por
- 9:57regiões. Específicas dentro de uma mesma.
- 9:59Nacionalidade e com o de balance através de líderes específicos,
- 10:03por exemplo, o próprio bloco de usuário você consegue disparar
- 10:07essa carga sabendo que você vai ter 1 o volume maior de uma
- 10:11determinada região para um grupo de servidores específicos e a
- 10:14outra para outro. Acho que isso é legal porque
- 10:16ajuda a gente a preparar para uma sobrecarga dentro de um
- 10:19evento grande igual a isso. Exatamente.
- 10:22Eu acho que quem nunca fez isso, né, cara?
- 10:24Eu também, um projeto que eu tive, a gente faz exatamente
- 10:26isso, né? De separação multi regiões, onde
- 10:29a gente faz esse direcionamento. E é importante também que para
- 10:33que isso funcione bem, a gente tem que ter uma outra
- 10:36característicazinha que esses slow de balances principalmente,
- 10:39que atuam na camada 7 do protocolo eles.
- 10:44Conseguem ser inteligentes do tipo eu tenho meus servidores
- 10:49rodando lá, eu configurei a as regras igual vocês comentaram de
- 10:53que a uma determinada região vai receber as requisições ABC, essa
- 10:57outra, essa outra região vai receber as requisições XYZ.
- 11:00Mas eu também consigo usar Oo low de balas para saber se
- 11:04aquela região está saudável, né? Se eu fizer uma requisição para
- 11:08para região ABC, se o meu servidor tá respondendo, pode
- 11:11ser que ele. Por algum motivo, algum bug lá e
- 11:14crachô não tá recebendo requisição mais não adianta
- 11:17nada, o Lou de bala, você vai ficar julgando requisição pra
- 11:19lá, né? Porque vai só derrubar minha
- 11:21aplicação, derrubar não vai causar uma experiência ruim pro
- 11:24pro usuário, aquele famoso erro intermitente, né?
- 11:26Você dá um f 5 lá, de repente funciona, de repente não
- 11:28funciona, provavelmente é isso, é o Lou de bala ser julgando pra
- 11:31algum servidor que tá sobrecarregado ou tá com algum
- 11:34problema, e aí ele usa esses conceitos de health check.
- 11:38Né? Onde geralmente algum int point,
- 11:40alguma coisa específica da sua aplicação, onde ele faz essa
- 11:43medição, até da latência né, que você comentou né, né Igor que
- 11:47ele consegue medir a latência da da resposta para decidir qual
- 11:50que é o melhor caminho para o usuário, né?
- 11:53Isso é é a base de um desses algoritmos dele de de roteamento
- 11:56de de de pacotes, né? E.
- 11:58É assim, eu queria até talvez puxar um pouco mais do que o
- 12:02exemplo que o que o Marcos nos trouxe Black Friday é?
- 12:06Já lembra carrinho de compras, sessão de usuário, pedido de
- 12:09usuário e como que vocês lidaram com isso assim?
- 12:12Vocês chegaram já a ter algum tipo de problema?
- 12:14No sentido, acho que eu acessei o site a primeira vez minha
- 12:18aplicação loguei Do Nada. Navegando Na Na aplicação eu
- 12:22percebi que eu não estou mais logado, OPA, pera aí.
- 12:25Ou então adicionei o meu pedido lá no carrinho de compra, quando
- 12:29eu tô bem navegando para comprar um outro produto, eu vejo, bom,
- 12:32o carrinho tá zerado, como que seria isso no cenário onde eu
- 12:35tenho? Com essa troca de servidores de
- 12:38maneira com que o usuário não escolhe, né?
- 12:41O usuário não define qual servidor que ele quer conectar e
- 12:44quando ele vai trocar. Existem também uma, eu acho que
- 12:46respondendo Igor, o que você está imaginando, cara?
- 12:49Quando existe essa necessidade da da gente tentar manter algum
- 12:53tipo de, de, de de caminho aí pro usuário?
- 12:56E esse caminho precisar que esse contexto seja levado em conta,
- 13:00né? Principalmente No No meu
- 13:02servidor, no meu back end. Existe uma coisa que o pessoal
- 13:05usa que é o tal do Stick session, né?
- 13:07A sessão, a sessão Stick, né? Pegajosa.
- 13:10Eu consegui mandar o mesmo usuário para o mesmo servidor ou
- 13:13para o mesmo grupo de servidores para que ele reaproveite aquela.
- 13:17Aquela informação igual você falou Ah eu já loguei eu não
- 13:19preciso logar de novo então se toda hora me manda pra um
- 13:22servidor onde no servidor ele não acha a minha a minha
- 13:24informação de login né? De a minha informação de que eu
- 13:26estou logado a minha sessão de login eu vou ter que logar de
- 13:29novo o meu carrinho fica salvo em algum tipo de Cash no
- 13:32servidor e eu toda hora tô caindo no outro servidor que não
- 13:35tem aquele Cash eu perco meu carrinho e aí eu não consigo
- 13:38aproveitar EE fazer a. Comprar os meus filmes lá na
- 13:41Black Friday porque o carrinho já já expirou, as promoções já
- 13:44expirar, então essa questão da da da da sessão Stick é algo que
- 13:48os Wood balance tentam também endereçar.
- 13:51Principalmente fizeram algumas táticas, tipo fazendo rest de
- 13:55IP. Então Ipês com o mesmo resto vão
- 13:57para o mesmo servidor ou grupo de servidores para que as
- 14:01requisições não se percam EEOO servidor que está ali que tem
- 14:04algum Cash local ou algum Cash regional daquele grupo de
- 14:07servidores. Conseguir reaproveitar essas
- 14:09essas informações. Eu acho que isso é uma
- 14:12preocupação, que todas as os desenvolver estão trabalhando
- 14:16com uma estrutura distribuída, né?
- 14:17Eu tenho múltiplos servidores ali que podem responder.
- 14:21Tem que se preocupar ou só ele passa a picar um padrão?
- 14:24Igual o Dudu comentou aí de usar o padrões de que para poder
- 14:28garantir que sempre cai no mesmo servidor.
- 14:30A gente tem que. Desenvolver uma forma de
- 14:31compartilhar a sessão entre todas as máquinas através de um
- 14:35Cash, alguma estrutura que é a própria aplicação.
- 14:37Controle, porque se a gente não faz o controle, garante que
- 14:40sempre vai cair no mesmo servidor.
- 14:41Qualquer um dos servidores que está atrás do ludbone, você pode
- 14:44responder. E a gente precisa garantir que
- 14:46essa estrutura seja preparada para responder da maneira
- 14:49correta, sem quebrar a experiência do usuário, né?
- 14:52Então seria bacana também, tipo você ter um cenário.
- 14:54Onde que eu poderia ter um rede? Es ali como um Cash
- 14:57centralizado? EE todas as aplicações olhando
- 15:01ali meu carrinho de compras, olhando para esse Cash e
- 15:04verificando independente do servidor, conseguiria estar
- 15:06respondendo usuário legal. E sempre tem aquela questão, né?
- 15:09Se você está sempre pegando a mesma requisição e mandando para
- 15:12o mesmo servidor, e tudo dependendo da forma como se eu
- 15:14for, vai acabar trazendo 11 sobrecarga para aquele servidor
- 15:19que está recebendo sempre aquele mesmo grupo de usuários, sendo
- 15:22que você poderia estar distribuindo um pouco.
- 15:24Melhora a carga em cima ali. Então, talvez essa questão do do
- 15:27Stick session é algo que tem que ser olhado com parcimônia.
- 15:30Às vezes não pode ser muito uma bala de prata, né?
- 15:33Pra resolver esse tipo de problema, existem outras formas.
- 15:35Igual você comentou aí do do redees que é um Cash super
- 15:39distribuído, super rápido e tudo que dá pra ser colocado ali por
- 15:41trás e até. Em relação a isso, os load
- 15:44balance, eles conseguem ser um como uma porta de entrada da
- 15:47aplicação. Eles se eles trabalham bem nessa
- 15:51distribuição de carga, eles até ajudam a identificar e mitigar
- 15:56até possíveis setores de ataque, né?
- 15:57Se a gente for for pensar. Dessa forma, por exemplo, 1111
- 16:02ataque de DDoS de de, de, de de the Nine of SES, que basicamente
- 16:06é fazendo um tanto de requisição para o mesmo servidor sobre o
- 16:09servidor para ele parar de responder se eu tenho 11 load
- 16:12balancer ali que é inteligente o suficiente para conseguir pegar
- 16:16essas requisições e distribuir elas bem.
- 16:19O ataque de DDoS você tem que ser mais sofisticado que o gol
- 16:23de bala você para conseguir ser efetivo, né?
- 16:25Ou até o próprio gol de bala. Você conseguir identificar esse
- 16:27padrão e implementar algumas técnicas de reiting emite em
- 16:30algumas coisas para poder. Dar mais segurança à aplicação.
- 16:33Né? É esse exemplo que você trouxe.
- 16:34É legal porque nesse projeto mesmo que eu comentei que a
- 16:37gente trabalhou ali no com múltiplas regiões, né?
- 16:39Foi algo que a gente também adicionou.
- 16:41Como uma das preocupações foi exatamente, pô, tem uma
- 16:44aplicação com diversos micro serviços em diversas regiões,
- 16:48com diversos recursos. Foi definido que todos esses
- 16:51recursos estariam privados onde os usuários, né?
- 16:54Não teriam uma porta diretamente com com esses recursos, então
- 16:58não estaria publicamente. E eu teria um funil ali de de
- 17:02segurança ali que todo mundo deveria passar pelo low de
- 17:05balas. Ele seria a nossa única porta de
- 17:07entrada via internet. E através dessas técnicas a
- 17:11gente adicionou esses recursos para garantir que não havia
- 17:14problema, como o hate limite. A gente estava utilizando o Edge
- 17:17como nosso provedor de cloud. Foi possível adicionar dentro do
- 17:20low de balance web application fire, que aí seria mais uma
- 17:24camada de proteção que estaria através de.
- 17:27De regras de de identificações padrões, né?
- 17:31Das aquisições, está inspecionando os pacotes,
- 17:34pressionando as nossas requisições e garantindo que a
- 17:36gente não está sofrendo nenhum tipo de ataque.
- 17:39Nos primórdios, né? Isso é legal porque vamos nos
- 17:41primórdios aí, sem revelar a nossa idade, né?
- 17:44Mas quando a gente trabalhava muito com servidores on premes,
- 17:46e é a gente sempre tentava centralizar a porta de entrada
- 17:50dos servidores numa única solução.
- 17:53Pra conseguir fazer essa configuração de segurança.
- 17:56Então, no passado a gente chamava de NAT reverso, não é?
- 17:58Tudo que eu quero expor na internet.
- 18:00Basicamente vai passar por esse load balance.
- 18:03Vai aplicar todas as regras ali que precisam ser inclusive
- 18:06regras relacionadas ao SSL, proteção de certificados e
- 18:10coisas do tipo, né? Basicamente um centralizador,
- 18:14permitindo que fique fácil a configuração, tá?
- 18:17Camada de segurança. Exatamente.
- 18:19Já brinquei muito com esse net reverso com provedores de
- 18:21internet, quando vai colocar o roteador em casa entre você vai
- 18:24quer botar seu servidor. E você comentou até de de de
- 18:27questão de SSL, né? De, de certificados e tudo.
- 18:31Hoje a gente vê muito isso em alguns good balances, eles terem
- 18:35essa capacidade, né, de terminação de SSL, né, de de
- 18:39fazer esse, essa, essa última parte da validação da
- 18:41criptografia, da comunicação, né?
- 18:44É então o usuário faz uma requisição.
- 18:46Essa requisição, como ela usa o protocolo SSL OTRS, né, a sua
- 18:51requisição, ela vai criptografada até o até o
- 18:53servidor, o load balancer, ele vai receber essa requisição.
- 18:56Mas se nós estamos, se nós estamos falando de um load
- 18:58balancer de nível 7, de de camada 7, é um load balance que
- 19:02vai olhar para aquele conteúdo. Então ele tem que ter 11 forma
- 19:05de de descriptografar, digamos assim, a requisição.
- 19:08Para poder inspecionar alguns requisitos dela, para poder
- 19:11fazer, para poder fazer o balanceamento de carga, né?
- 19:14Hoje esses load balances têm essas capacidades.
- 19:16E aí que vem uma coisa interessante, se os meus
- 19:19recursos são privados, eles não estão expostos na internet.
- 19:22Eles não têm ponto de contato com a internet.
- 19:24O ponto de contato é o load balance.
- 19:25O load balance faz aquela, ele tem que inspecionar o pacote que
- 19:29chegou, ele já pode mandar o pacote ali para dentro.
- 19:32Descriptografado porque ele já garantiu a integridade, a
- 19:36validade dali. E ele tira um pouco dessa carga
- 19:38do seu servidor também, né? Um pouco de é uma otimização
- 19:41legal de performance, né? E tudo de de tirar um pouco de
- 19:44de recursos do seu servidor pro próprio lo de bala você fazer,
- 19:48né? Bom, exatamente, tá se tratando
- 19:50de um ambiente onde nós temos uma aplicação com diversos micro
- 19:54serviços e comunicando num volume muito alto de requisições
- 19:57de usuário, é uma das vantagens da gente tá adicionando esse
- 20:01tipo de recurso. Porque basicamente é tirar
- 20:04alguns 1000 segundos de processamento, que nessa
- 20:07quantidade de no nesse volume, né, de usuários de transações,
- 20:11acabam de fato respondendo de maneira mais rápida pro usuário
- 20:15e não é abrindo alguma porta de segurança, alguma
- 20:19vulnerabilidade. Porque é algo que assim já
- 20:21garantimos todo essa responsabilidade dentro do nosso
- 20:24low de balas ali, do nosso funil de segurança.
- 20:27Exatamente, às vezes até diminuir o custo, né?
- 20:28Às vezes você não precisa escalar sua aplicação por causa
- 20:31disso. Se você tivesse que processar a
- 20:34criptografia lá nos seus serviços, você teria um servidor
- 20:37a mais. Agora, você não precisa daquele
- 20:39servidor porque a quantidade que você tem que dar conta daquelas
- 20:42requisições não criptografadas. Num cenário igual, a gente
- 20:44comentou de Black Friday, por exemplo, onde tudo se escala
- 20:47absurdamente. Esse é uma é um bom ponto de de
- 20:50economia, né? Isso é legal, né, pessoal?
- 20:53Porque também tem até outras aplicações do Gold balance,
- 20:56principalmente esse da camada L7, que consegue reduzir a
- 20:59carga, por exemplo. Eu já trabalhei no projeto que a
- 21:01gente reduziu. Esse corpo de reeders das.
- 21:03Requisições antes mesmo de eles chegarem dentro dos
- 21:05microsserviços internos, dentro do próprio Gold balance, a gente
- 21:09acaba aplicando uma camada de filtro pra redirecionar somente
- 21:12aqueles reeders que são realmente importantes.
- 21:15Para aplicação interna, isso reduz o escopo e o tamanho da
- 21:18requisição que vai chegar dentro da rede interna e dos serviços
- 21:21que a gente vai utilizar. Para além desse uso do recurso
- 21:24do SSA, que a gente consegue enxugar a carga, a gente também
- 21:27consegue enxugar o volume de dados que eu vou trafegar lá
- 21:29para dentro. Qual um desses recursos?
- 21:31Até mesmo renomear, se for necessário, os próprios seaers
- 21:34que a gente recebe. E a gente até comentou em algum
- 21:37momento aqui de de microsserviços, um ambiente onde
- 21:41a gente acaba tendo muitos microsserviços, um ambiente de
- 21:44cobernetes e novo. Normalmente, resgatando o que eu
- 21:46falei lá no início, muitas vezes a gente até mexe com o Word
- 21:48balancer e nem entende direito o cobernetse.
- 21:52É muito comum, comum, né? É necessário eu ter um
- 21:55balanceamento de carga ali para eu conseguir direcionar as
- 21:58minhas requisições e os meus work loads, os meus Foods, os
- 22:01meus serviços, melhor dizendo, rodando ali do do contém, né?
- 22:04Mais comum deles é ONG nex, que tá lá ele ele é utilizado como
- 22:0911 load balance de fato, né? No No.
- 22:12As cobernetes. Hoje a pessoa às vezes configura
- 22:15e nem nem entende direito o que que está fazendo, fala, Ah,
- 22:17estou só botando meu serviço no ar aqui.
- 22:20Tudo o que ele está fazendo é configurar 11 low de bala, sendo
- 22:24um gernex ali para poder fazer o direcionamento em cada um dos
- 22:27seus serviços, né? A gente tem falado aqui de
- 22:29algumas soluções de low de balancer, por exemplo, low de
- 22:31balancer na é sintonia com o Edy farow, OMG nex rodando dentro do
- 22:35cobernetes e tudo. Mas quando a gente está falando
- 22:37disso, normalmente essas pecinhas são de software,
- 22:40existem também low de balancers. Implementados e hardware, né?
- 22:44Tipo que são realmente máquinas físicas que fazem esse esse
- 22:48direcionamento de pacote, né? Vocês já chegaram a ter alguma
- 22:51experiência com isso, a ter que mexer com isso, qualquer alguma
- 22:54dificuldade? O físico propriamente dito, não,
- 22:58eu conheço do tipo da solução que eu sabia que existia
- 23:01aplicação e se foi até trazendo a brincadeira que eu fiquei um
- 23:05bom tempo procurando. Aonde que era.
- 23:08Mas basicamente eu precisava de mexer numa configuração direta
- 23:10no servidor, na aplicação legado na web config famoso web config
- 23:14tinha um parâmetro atualizamos nos 3 servidores e esquecemos do
- 23:19quarto. Basicamente a pessoa que que
- 23:23atualizou lá deixou ele não salvo e basicamente achou que
- 23:27tinha atualizado era um mention prêmios, é foi até um dos
- 23:30primeiros contatos lá atrás. Assim, quando eu comecei a
- 23:32desenvolver, quando eu comecei a pegar uns ambientes mais
- 23:35complexos, né? 11 coisa.
- 23:37Mas assim que que aí foi de fato, eu falei assim, OPA, tem
- 23:39um carinha aqui então que na verdade não é ele, que é ele que
- 23:43tá recebendo as minhas requisições, não é o meu
- 23:45servidor direto, mas é de fato. Eles usavam o físico, mas não,
- 23:49não cheguei AA fazer algum tipo de configuração, é.
- 23:52Eu já vi uma vez. Eu tive uma experiência com isso
- 23:55em igual você, comentou por uma rede on prêmios?
- 23:57É, a gente tinha uma rede de de ti industrial principalmente,
- 24:01né? Num cliente nosso, os acessos AA
- 24:04rede de ti industrial eram eram ainda mais restritos.
- 24:07A gente estava falando de muitos dispositivos, às vezes com menos
- 24:10poder de processamento, né? A gente falando de PLC, de de de
- 24:14equipamentos desse porte. Então 111 load balancer físico
- 24:19ali para poder comunicar toda aquela planta, toda aquela
- 24:23infraestrutura ali era bem, bem necessário para eles.
- 24:27Então um balanceador de carga nessa, nessa estrutura deles era
- 24:31super importante, né? Pra pra garantir que que as
- 24:35refeições chegassem rápido e chegassem consistentes e o mais
- 24:38simples possível pra pra processamento.
- 24:41Nesse caso, usar 1111 load balancer de software seria às
- 24:45vezes mais complicado, porque eu precisaria de um servidor, eu
- 24:47precisaria de uma máquina, é aquele negócio, eu vou vou estar
- 24:50usando mais do que eu preciso seja já existe algo
- 24:53completamente especializado pra aquele problema meu ali de custo
- 24:56mais baixo em geral, né? A longo prazo, quando a gente
- 24:59está falando de. De longo prazo, né?
- 25:01De, de manutenção e tudo, já que ele é bem focado naquele
- 25:04problema e ele tinha as mesmas capacidades de qualquer Loud de
- 25:08bala. Você via software cara de de, de
- 25:10de fazer configuração de regras, de de balanceamento, de quais
- 25:14ips podiam, quais ips não podiam, né?
- 25:16Para onde ele tinha que direcionar num ambiente onde
- 25:18existe essa necessidade, um ambiente, um prêmio, se às vezes
- 25:22um Loud balance físico, ele ainda hoje é 11 boa escolha.
- 25:27E aí eu fico pensando, já que. Nesse caso que a gente tava lá
- 25:31que eu precisava fazer esse balanceamento de carga dentro da
- 25:34minha planta, ou você, Igor, falou que precisava de de de
- 25:37alguns tinham seus 4 servidores lá e só 3 estavam funcionando.
- 25:41Você ficou sem saber qual que era o problema até nisso, tipo,
- 25:44como é que a gente consegue perceber ou se planejar para que
- 25:48o nosso projeto tenha 11 load baser tem um balanceamento de
- 25:52carga ou a gente até entender, cara, o meu projeto precisa de
- 25:54um load baser, eu preciso usar alguma coisa, eu preciso criar
- 25:57uma infraestrutura. Específica para isso, seja
- 26:01viada, seja via software. Como é que eu consigo
- 26:03identificar essa situação? Eu acho que um dos primeiros
- 26:05pontos que é interessante comentar em relação a
- 26:08necessidade é olhar para o negócio, né?
- 26:10O. Primeiro aspecto.
- 26:11É, eu vou ter 1 o volume de carga muito grande que eu já
- 26:13preciso estar preparado para receber, mesmo que eu vou operar
- 26:18apenas de um servidor inicialmente.
- 26:20Eu já vou ter que estar preparado para que, dentro de um
- 26:23curto espaço de tempo, eu vou ter que escalar isso para
- 26:26receber um voo grande de carga por causa de algum cenário
- 26:29específico de negócio. Acho que esse é um dos
- 26:31principais pontos, porque se eu tenho uma necessidade, um curto
- 26:34prazo de receber essa bolometria, eu preciso deixar o
- 26:37meu ambiente preparado para eu não ter um esforço muito grande.
- 26:41De fazer essa escala. E o segundo aspecto, eu acho que
- 26:44pelo menos os projetos que eu passei que são importantes, é a
- 26:47camada de segurança. E se eu tenho a necessidade de
- 26:49centralizar e configurar a camada de segurança em cima de
- 26:53algum recurso, alguma ferramenta, naturalmente o lol
- 26:56de Bauer passa a ser uma opção viável para que essa
- 26:58configuração seja. Pegando esse, essa informação,
- 27:01essa primeira dica que o que o Marcos passou?
- 27:04Eu acho que é legal, porque já aconteceu também da gente
- 27:07chegar, desenvolver uma aplicação e determinado momento
- 27:10tu vê, OPA, espera aí. Estou com um alto uso aqui de
- 27:14CPU, de memória, o volume está muito alto, de de requisições.
- 27:18Precisamos escalar essa aplicação.
- 27:20Chegamos lá e olhamos para o OPA, não tem recurso físico
- 27:24mais. Precisamos fazer com que ela
- 27:26fique, ter várias instâncias. O horizontal OOO Marcos
- 27:30comentou, né? E de fato, quando fomos olhar
- 27:33para aplicação não era possível porque ela não foi construída de
- 27:36maneira que permitia esse tipo de de abordagem, de ter
- 27:39múltiplas instâncias. Então acabou que atrapalhou
- 27:43assim o Plug do do low de balance, porque eu eu precisaria
- 27:46de ter várias instâncias naquele momento.
- 27:48Então nós tivemos que voltar, dar 11 pezinho atrás.
- 27:51Vamos preparar aqui, vamos avaliar o que que dá pra colocar
- 27:55numa história de compartilhada num Cash, né?
- 27:58Ou a gente comentou do redees, o que que a gente vai fazer de
- 28:01sessão, oportunidade e tal pra de fato ir e conseguir plugar o
- 28:06low de balas? Então essa primeira abordagem já
- 28:09chegar no requisito de negócio. Já avaliar, ter esse aspeto,
- 28:13acho que é muito importante porque no primeiro momento que a
- 28:15gente vê e telepou, precisamos começar a escalar essa
- 28:18aplicação. Ela tem que ter esse
- 28:21comportamento, ela tem que ter algo nisso.
- 28:22E é algo que assim mesmo que a gente está trabalhando em nuvem,
- 28:25é os recursos. Eles não são infinitos. 1 hora a
- 28:29gente vai esbarrar no último dia e aonde que a gente vai precisar
- 28:33de ter esse tipo de de abordagem, então?
- 28:36Acho que talvez assim, primeira pergunta que eu faria era
- 28:38realmente se o negócio conseguiria escalar e se a gente
- 28:42teria essa essa abordagem já já começar a se preocupar com esse
- 28:46tipo de desenvolvimento ali, permitindo múltiplas instâncias.
- 28:49É isso. É legal que você falou, né?
- 28:50Porque não é só recurso, tá envolvido com aplicação.
- 28:53A aplicação precisa ser construída orientada, com
- 28:56recurso distribuído, né? Não é simplesmente espetar o
- 29:00long balance e sair usar. Preciso preparar a minha solução
- 29:03para que ela seja distribuída e conseguir receber cargas em
- 29:07diferentes instâncias, então isso é muito importante também.
- 29:10Aquela velha discussão do state full versus state less, né?
- 29:13De poder construir sua sua aplicação state full, você joga
- 29:16tudo numa sessão lá do servidor, mas se essa sessão não for
- 29:19compartilhada, não vai adiantar nada, né?
- 29:21E aí, tá comentando, cara, a gente falando, né, de poxa.
- 29:24De escala horizontal que eu estou botando mais servidor, que
- 29:28eu estou aumentando minha capacidade e tudo.
- 29:30Hoje a gente vê na nuvem muitos recursos de auto scaling.
- 29:36Eu consigo chegar lá, criar 11 aplicação e falar cara, beleza,
- 29:40aqui eu vou marcar aqui com moto scaling até 481216 distâncias.
- 29:45Ou até no recursos serveles, por exemplo, uma funcions ou uma AWS
- 29:50lambda que o meu provedor de nuvem.
- 29:53Já está me falando, cara, que isso aqui vai escalar, que nesse
- 29:55caso, em teoria, eu não preciso de mexer com o load balancer.
- 29:59Tipo, eu posso esquecer que o load balancer existe, é, é algo
- 30:03factível, é algo que eu realmente não preciso me
- 30:05preocupar, então. Existe a preocupação pelo fato
- 30:07que esses recursos ele eles não respondem imediatamente, então
- 30:11um cenário de alta performance. Contar com esse tipo de recurso
- 30:15pode trazer alguns tipos de problema, que é a function no
- 30:18lambda, no. Eu tenho um tempo ali de start
- 30:22do reconhecimento do tipo óleo, eu preciso escalar, eu preciso
- 30:25avaliar. É pra que eu de fato coloque
- 30:28mais um servidor, mais um recurso pra pra estar
- 30:31processando essas requisições. Eu vou ter um dos cenários que o
- 30:34pessoal comentou na utilização de você provisiona ali um
- 30:38servidor, os recursos é que estejam já é não totalmente
- 30:43aido, né, parado ali ocioso, mas esteja rodando algum alguns
- 30:47processos de baixa prioridade. Para fazer com que na no momento
- 30:52que eu preciso escalar eu não ter essa preocupação do do conto
- 30:56start, né, que é o que que é o termo técnico que a gente
- 30:59utiliza bastante. Eu já garanto que eu tenho
- 31:01alguns recursos pré provisionados que ele vai me dar
- 31:04um tempo de resposta até mais rápido.
- 31:05Realmente num cenário de alta performance eu tenho esse esse
- 31:08problema, né? Lidar com esse tempo de de
- 31:11criação, trazendo isso por um de balas.
- 31:13Eu acho que assim é um cenário até já viria como um tipo de
- 31:16abordagem também se um cenário se.
- 31:19É possível esperar um tempo? Se realmente esses segundinhos
- 31:22de início é aceitável, ótimo, tranquilo.
- 31:25Mas no cenário de alta performance que eu realmente
- 31:27estou, eu estou lidando com dados financeiros, um cenário um
- 31:30pouco mais crítico. Eu optaria talvez até por uma
- 31:32utilização dessa, deixar o low de balas já com um processo meio
- 31:36que ali de baixa prioridade, que eu possa a qualquer momento
- 31:39falar assim, ó, porque essa é uma roda nessa máquina aí que
- 31:41ela já está provisionada ali para mim, sabe?
- 31:44Agora, ele não projeta nem. Similar com isso que você falou
- 31:46que é legal de comentar. A gente tinha uma aplicação que
- 31:49ela basicamente não poderia ter um bom time na escala.
- 31:52Ou seja, enquanto o serviço estava subindo, eu não poderia
- 31:55responder negativamente para o cliente.
- 31:57Porém, o serviço demorava muito a subir, porque naturalmente era
- 32:00um serviço pesado. Tinha muita coisa ali que estava
- 32:03passando por um processo de repaturação.
- 32:05A gente está usando AWS com SSE, basicamente a gente configurou
- 32:08um load balance para garantir que as testes que estavam sendo
- 32:12autoprovisionadas pela própria cloud estavam totalmente, em
- 32:15tese, disponíveis para receber a as requisições, ao invés de
- 32:19deixar a própria cloud gerenciar isso.
- 32:21Acho que é interessante o que você falou, porque nesse caso,
- 32:23por exemplo, o cenário de negócios exigia uma alta
- 32:27disponibilidade. E é para garantir alta
- 32:30disponibilidade a configuração dele através do Lu de babas.
- 32:33Bom, então a gente comentou muito sobre sobre essa questão
- 32:35de escalabilidade de performance, né?
- 32:37De coisa um prêmio se de coisa na nuvem.
- 32:39Só que hoje tem a tal da palavrinha que é AIA, né?
- 32:44Tudo gira em torno de a de agentes, né?
- 32:47A gente criando muitas aplicações agendicas o Lu de
- 32:50balance. Onde é que ele entra nisso na
- 32:52hora que eu ficar digitando o meu chat lá para conversar com
- 32:55com AIA? É dependendo do hoje a gente tem
- 32:58orquestração de agentes, onde agentes conversam uns com os
- 33:01outros e tudo o lo de bala. Você tem alguma ajuda nisso?
- 33:04Tem algo que o lo de bala você pode fazer especificamente para
- 33:07esse cenário de a? É, recentemente até estava num
- 33:10cenário onde que a gente estava fazendo um experimento aqui por
- 33:13muitos clientes e houve esse questionamento, como eu garantir
- 33:17que usuário está acessando aplicação?
- 33:20Eu estou trabalhando ali, respondendo, fazendo todo o
- 33:23processamento com LLME. Não cheguei no limite.
- 33:26De tokens que a minha região tem disponível ou com meu com meu
- 33:30serviço dentro do da cloud é disponibiliza e através disso,
- 33:34no desenvolvimento do experimento, a gente esbarrou em
- 33:37alguns recursos que hoje já tem. Ele tinha já políticas para que
- 33:41a gente pudesse fazer essa divisão de carga.
- 33:44Tem a política, né, que eu poderia estar implementando no
- 33:46sentido de. OPA, eu fiz uma requisição pra
- 33:49LLME. Ela me retornou falando que já
- 33:51tinha excedido o meu limite de cotas ali de cota que eu tenho
- 33:55ali pra aquela, pra aquele modelo específico, e baseado
- 33:59nesse tipo de erro eu iria em outra, em outro modelo, em outra
- 34:03região e faria esse tipo de consulta.
- 34:05Então assim pra não retornar pro usuário que assim, OPA, a gente
- 34:08não tem ele disponível, é então era baseado nesse nesse tipo de
- 34:13cenário, né? E também na questão de custo.
- 34:16Hoje eu posso ter um modelo que ele está provisionado numa
- 34:20região que ele custa XE. Esse mesmo modelo numa outra
- 34:23região que custa y poderia estar balanceando isso até pelo fato
- 34:27assim, pô, essa segunda região, que é um pouco mais barata, ela
- 34:30está mais longe do usuário. Mas eu não preciso passar com
- 34:32que todas as as respostas ou eu posso pegar algum tipo de
- 34:37resposta e acabar acessando esse tipo de modelo.
- 34:40Pra que eu possa economizar nos tokens, economizar nesse é nesse
- 34:43tráfego, sabe? Já existe, é já vi que as
- 34:46cláudes hoje realmente precisam é estar olhando pra esse lado já
- 34:50que é o cenário igual você comentou, né?
- 34:52Hoje em dia tudo e a é é a palavra do momento, é, é, é o
- 34:56hype, então assim. E está saindo aí bastante coisa
- 34:59legal nessa parte. Eu eu lembro que pra esse
- 35:01experimento a gente foi esses 2 que eu comentei, né?
- 35:04A questão do pra fazer a utilização do de escolher qual
- 35:08modelo ali por base No No uso é, nós tivemos também a questão até
- 35:11de Cash, então assim, OPA, estou recebendo uma requisição aqui,
- 35:15eu sei que tem esses tokens, esses tokens aqui, eu já fiz uma
- 35:18consulta, eu sei que eu já utilizei ele anteriormente e ao
- 35:22invés do ir na LM direto, vem aqui.
- 35:25E respondeu pro usuário, então é algo que assim, eu estou
- 35:27economizando numa ponta através da aplicação em si, e o usuário
- 35:30está recebendo uma resposta mais rápida, né?
- 35:32É, isso é bem legal, né? Eu estava fazendo experimentos
- 35:35também, basicamente para o outro projeto, fazer 11 esquema de
- 35:39região de código. Eu vi, por exemplo, que as APIs
- 35:41da open AI, elas já devolvem readers específicos com volume
- 35:45de tokens que você tem disponível, então você
- 35:46conseguiria o download baser, por exemplo?
- 35:49Falando já numa configuração mais padrão para todos os os de
- 35:52balas cis da camada L7, baseado nesses heaters para definir qual
- 35:56provedor de API que você vai usou.
- 35:58Qual modelo, né? Então as próprias provedoras de
- 36:02LME de modelos específicos ali já fornecem algumas informações
- 36:06que permite usar esse recurso. Eu achei bem legal também que dá
- 36:09para aproveitar bastante coisa. Bom, então acho que é isso, né?
- 36:11Acho que a gente conversou bastante aqui sobre os low de
- 36:14balas, que eles são. Como funcionam, né?
- 36:17Alguns casos de uso que são bem. Antes da gente saber, né?
- 36:21Até como usar, como configurar em ambientes cobernetes, né?
- 36:24E tudo. E tá atento a isso.
- 36:26Foi uma conversa bem legal. Acho que a gente conseguiu falar
- 36:28bastante coisa conceitual, algumas coisas.
- 36:31É eu, por exemplo, como um dinossauro do desenvolvimento
- 36:33aqui já, já tive que mexer algumas vezes, espero que todos
- 36:36tenham curtido. Também é.
- 36:38E agora, para aqueles que estão nos ouvindo?
- 36:40Depois o episódio sabe que se uma requisição funciona na sua
- 36:43máquina e a mesma requisição não funciona na máquina do
- 36:46coleguinha ao lado, pode ser um problema.
- 36:48E o low de bala você está enviando para o exatamente?
- 36:51Deu errado? Exatamente.
- 36:52Ou você deu algum problema? Ou aquele famoso carrinho que
- 36:55some os itens, né? Na durante a Black Friday
- 36:57chegando aí? Muito obrigado, viu, Marcos?
- 36:59Valeu muito. Obrigado, Marcos.
- 37:00Muito obrigado pessoal. Mais uma.
- 37:01Gente, o convite, viu? Aquele abraço para todos.
- 37:04Então, até a próxima. Abraço pessoal.