Bom pessoal, vamos dar sequência aqui um pouquinho mais de conceito, alguns conceitos adicionais aqui para ficar na cabeça de vocês. Então a gente vai falar um pouquinho agora sobre Black Box e White Box. Esse conceito já é bem usado quando a gente está falando de tecnologia, então a gente fala muito sobre isso em testes, a gente consegue enxergar isso quando a gente está falando de testes de caixa preta, testes de caixa branca, e aqui a gente está falando de um conceito muito parecido. Ou seja parecido ou seja no black box a gente está falando de um conceito onde eu consigo ver apenas as extremidades do meu sistema estou vendo só o que o usuário veria só as saídas do meu sistema eu não olho dentro do da caixa não consigo ver dentro dessa caixa uma forma para ver tudo o que está acontecendo ali dentro então imagina que o sistema está dentro de uma caixa você consegue ver a parte de fora dele como se fosse uma caixa preta que você não enxerga o que tem dentro. Quando você vai para um white box, você conseguiria enxergar dentro desta caixa, seria como se fosse uma caixa transparente, mais do que white, você está falando de uma caixa onde você consegue enxergar tudo o que tem dentro, você consegue ter visibilidade do core disso, de como as coisas funcionam, se correlacionam ali dentro. Então quando a gente está falando de observar o que está nas extremidades, o que está fora dessa caixa, ou seja, o que o usuário veria. A gente vai falar sobre alguns exemplos aqui, e na hora que a gente falar, vocês vão conseguir entender um pouco melhor, mas é um conceito até que bastante simples, e é importante a gente utilizar os dois ao mesmo tempo, e a gente vai falar sobre isso ao longo dessa aula aqui, beleza? De forma rápida, então, como a gente falou do Black Box, a gente já comentou aqui um pouquinho, seria olhar a parte de fora desse sistema, olhar como que um usuário conseguiria enxergar sem ver o funcionamento interno daquele sistema, beleza? E quais são as principais características que a gente tem quando a gente está falando de observabilidade dentro de um conceito de Black Box, tá? Primeiro, o foco é no comportamento externo, como eu falei. A gente quer saber como é que o sistema se comporta do ponto de vista de um usuário. Então você precisa saber o comportamento do sistema se está impactando no usuário, se ele está gerando algum tipo de problema quando a gente está falando de uma visão de usuário. Não de uma visão de time de desenvolvimento, como a gente está acostumado no dia a dia a falar mais. Aqui a gente está falando de uma visão mais alto nível, uma visão mais de usuário, beleza? Ele também simula aqui usuários, então a gente consegue colocar ali algumas automações para fazer requisições de tempos em tempos e ver se está tudo bem, se está tudo acontecendo de forma correta, se não tem nenhum problema acontecendo. Isso não só para quando a gente está falando de requisições HTTP, como eu coloquei aqui, mas a gente também pode utilizar isso quando a gente está falando de dados. Consumers de dados, as pessoas que estão consumindo dados, precisam ter uma visibilidade ali de usuário, às vezes. Então, quando você está falando de ter vários sistemas gerando vários tipos de informação de dados, um batimento ou um tipo de robô ou automação que vai conseguir bater dados para ver se está tudo ok, também pode ser um conceito de black box quando a gente está falando de monitoração de dados, beleza? Não precisa de acesso interno, então aqui tem uma sacada diferente, você não vai precisar olhar dentro daquele sistema, você consegue olhar só as partes de fora e com isso ver as extremidades dele, então para sistemas onde você não vai ter acesso interno, normalmente é bom você usar esse tipo de de instrução esse tipo de estratégia, Quando a gente está falando desse não requer acesso interno, pode estar gerando algum tipo de dúvida. Pô, mas se o sistema é meu, por que eu não teria acesso interno? A gente já fala um pouquinho disso, eu vou falar sobre um exemplo aqui de Blackbox, daí eu passo rapidamente para vocês entenderem por que às vezes a gente não vai ter acesso interno e por que é importante a gente usar a estratégia de Blackbox quando isso acontece, beleza? Quais são as vantagens do Blackbox? A vantagem do Blackbox é que você tem uma perspectiva de usuário, ou seja, você consegue enxergar o que o usuário está enxergando, você não precisa olhar componente a componente, é uma coisa mais agrupada e menos aberta, então você consegue ter menos alertas e consegue ser mais assertivo quando você está falando de onde está dando problema na visão de usuário, mas em compensação para tratar o problema é mais difícil. Então as desvantagens ali é a falta de detalhe interno, você não consegue ter aquele detalhamento para saber o que está rolando mesmo. Então você vai precisar ter outro tipo de estratégia para conseguir saber o que está rolando no sistema. Uma outra parte também é a simplicidade, então é mais fácil de você configurar porque você não está falando de vários lugares no código, você está falando de lugares mais específicos de entrada e saída, de informação direta para um cliente, beleza? Então, voltando nas desvantagens também, a gente tem um outro ponto. Como eu estou falando só de entrada e saída, essa simplicidade, eu tenho uma visão mais tarde de um problema que está acontecendo. Vou dar um exemplo, imagina que você tem lá uma API que está batendo 80% de máquina, de CPU. Aqui, no black box, você não veria isso. Então ela já está lá com a máquina batendo um valor muito alto. A gente está com muito uso de máquina. Se ela estourar e capotar, aí que você vai ver ali no usuário final possivelmente. A não ser que você tenha, óbvio, um problema aqui de latência que vai acabar impactando e você conseguiria ver no Black Box também, mas normalmente você não vai enxergar isso acontecendo e vai ter uma ação mais tardia aumentando aquele MTTR que eu falei para vocês. Bom, um exemplo prático para a gente pensar aqui, tá? Imagina que a gente tem um serviço de streaming, uma Netflix da vida, e ali você está fazendo o monitoramento da latência de carregamento de vídeo. Aquele loading que a gente vê, eu não estou falando de latência de rede eu não estou falando de latência de comunicação com banco de dados ou etc estou falando de latência total não sei o que acontece por trás, eu não sei se por trás ele tem que ir em algum banco de dados, ele tem que passar em várias regiões, em vários países eu não sei, o que eu sei é que quando está carregando, está demorando, então no black box é isso que eu falei para vocês. Por que é importante você ter esse tipo de estratégia quando você não tem acesso ao sistema? Vou dar um exemplo. Primeiro exemplo, tá? Imagina que você está em uma empresa grande. Vou usar o caso aqui desse serviço de streaming. Onde tem um grupo que é responsável, por exemplo, pelo catálogo de vídeos. Ele vai ter ali todo o filtro de catálogo de vídeo. E tem um outro grupo que cuida da legenda, por exemplo, só para a gente conseguir extrapolar aqui. Eu não sei como funciona isso dentro da Netflix, não sei como é a divisão de topologia deles, porque deve mudar toda hora, assim como qualquer lugar, mas pensando que essas equipes são separadas. O cara de catálogo de vídeo não tem que ter acesso aos bancos de dados e etc. da parte aqui, por exemplo, de subtítulo, de legenda. Quando eu estou falando desses dois caras conversando juntos, eu tenho duas áreas, possivelmente, cada uma cuidando de uma coisa. Uma outra área cuidando do financeiro, uma outra área cuidando do contábil, e assim por diante. Então, você tem várias áreas aqui trabalhando. Não faz sentido o contábil ter acesso ao streaming de vídeo, ter acesso a essa visão aqui de catálogo de vídeos. Então, esse cara, possivelmente, pela regra de segurança de dados, você não vai dar privilégio desse cara conseguir mexer no sistema da pessoa que cuida do catálogo de vídeo. Então, ele não vai ter acesso a isso. E o cara de vídeo não vai ter acesso ao conteúdo de quem cuida de legenda, por exemplo, porque ele não precisa desse acesso. Então, na ideia de menores acessos, para a gente diminuir problemas de segurança, cada equipe vai ter acesso a só um pedaço ali do sistema. Quando a gente está falando disso, para a equipe de vídeo, pode ser interessante ter uma visibilidade, como se fosse uma caixa preta, do que está acontecendo na parte de título, de título não, perdão, de legenda. Então quando você está olhando para isso, você pode falar que a parte de legenda está gerando aqui um black box para a parte de vídeo, a parte de vídeo só consegue ter uma visão da saída de legenda, o que está acontecendo para dentro ela não sabe, quem sabe é o título, é o pessoal que trabalha com isso. Agora eu vou extrapolar um pouco mais para uma coisa que é até mais comum. Imagina que você tem aqui toda a parte de front-end de um serviço de streaming. Então toda a parte ali de aplicativo, front-end, tudo está com você. O BFF também está com você. Só que você contratou por trás uma provedora de streaming. Você não está fazendo você esse serviço. Você tem alguma outra empresa que está provendo isso para você. Então você fazendo você esse serviço, você tem alguma outra empresa que está provendo isso para você então você se conecta por rede com essa outra empresa, o que acontece dentro dessa outra empresa, você não tem visibilidade, porque é dela é de domínio dela, é domínio técnico dela então o que você consegue ver é o que acontece na sua parte, a sua comunicação com o seu usuário e você pode usar esse conceito de caixa preta com a empresa que te fornece os vídeos, com você vendo como que está o tempo de resposta da empresa, mas você não sabe serviço a serviço como isso está acontecendo. Então tem algumas estratégias que você pode usar para fazer black box que não sejam só direto um usuário de ponta, uma visão de usuário de ponta, beleza? E quando a gente está falando de white box, ficou muito mais fácil de explicar agora, né? A gente está falando de tudo que a gente consegue enxergar ali dentro do sistema, Agora a gente está falando de tudo que a gente consegue enxergar ali dentro do sistema, já é aquele detalhe que a gente está mais acostumado, beleza? Então as características principais aqui é o foco no funcionamento interno, então a gente consegue monitorar métrica de CPU, memória, número de requisição, tudo aquilo que a gente vem falando durante esse treinamento. Instrumentação de código, então você precisa ter ali uma instrumentação de código maior para você coletar isso e assim por diante, ter os dados mais específicos e mais detalhados, e você consegue ter uma visibilidade completa de tudo que está acontecendo, você consegue ter mais assertividade na hora de resolver o problema e na hora de encontrar o problema também, beleza? Quais são as vantagens? Você consegue ter um diagnóstico mais profundo, como eu falei, então você consegue ter essa capacidade de identificar e diagnosticar o raiz do problema de forma mais fácil. Prevenção ao problema, então você consegue atuar de forma mais proativa, conseguindo enxergar o problema antes que ele chegue para o usuário, tá bom? Mas aqui é importante você entender que às vezes você vai pegar um problema em um componente, até você entender o impacto que dá no usuário, também tem um tempo aqui para você compreender. Mas em compensação você já sabe aonde atuar, já sabe qual é a forma de resolver. Talvez você não saiba o impacto que está sendo gerado, mas você sabe a forma de resolver. Por isso, trabalhar com os dois juntos é importante. Qual é a desvantagem? Mais complexo, você precisa instrumentar muito mais coisa, tem que ter muito mais acesso e detalhe do código ali. E maior volume de dados, você acaba gerando muito mais dados, o que acaba sendo, inclusive prático para vocês também, em um serviço de e-commerce, o whitebox pode ser usado para monitorar o tempo de consulta de banco de dados, o CPU, memória do servidor e assim por diante. Taxa de erro também. Então, vários pontos que a gente já comentou aqui. Muito mais simples da gente entender porque a gente já falou sobre isso durante todo o treinamento. É importante pensar em utilizar os dois juntos, tá bom? Então, correl É importante pensar em utilizar os dois juntos, tá bom? Então correlacionar as métricas, usar black box para identificar o problema do ponto de vista do usuário, você já sabe qual impacto está sendo gerado, você pode startar, por exemplo, uma equipe de atendimento, uma equipe proativa de resolução de problemas caso o usuário comece a ligar e achar um problema e assim por diante, e você consegue também trabalhar com isso para saber qual está sendo o impacto e dar o calor necessário para as times que estão olhando o white box. Então você usar dash que consegue correlacionar essas métricas é super importante, e os alertas também. Priorizar os alertas também, você consegue configurar alertas em black box para situações que estão afetando diretamente o usuário, com um grau de criticidade muito maior, e o white box com um grau de criticidade muito maior e o Whitebox com um grau de criticidade, às vezes, um pouco menor para pegar o problema antes de impactar o usuário, beleza? Você também pode usar os dashboards combinados, como eu falei, que é super importante para você conseguir fazer isso funcionar no dia a dia. Bom, não é nada muito complexo, mas é legal você saber que existe essa forma de pensamento e pode ser que ela apareça para você em alguma reunião, em algum debate com as pessoas, é importante você entender o conceito e a correlação. A gente já falou de tudo isso de forma prática durante o treinamento, mas de novo, é importante vocês conhecerem o conceito e os nomes que a gente acaba usando no mercado, beleza?