Latest / Entre Chaves / #238 Dev Container: unificando o fluxo de desenvolvimento
Transcript
- 0:02Está começando mais uma entre chaves, o seu podcast
- 0:06desenvolvimento de software. Eu sou a Rafa e hoje a gente vai
- 0:09falar sobre uma implementação, uma tecnologia que está mudando,
- 0:13né? A forma como a gente gerencia
- 0:15ambientes de desenvolvimentos, que são as containerização de
- 0:19desenvolvimentos famosos da Eve containers, é que mudam aí, né?
- 0:23Essa tiram essa complexidade da gente ter que lidar com
- 0:27diferentes versões, diferentes configurações.
- 0:30De um ambiente para isso, estou aqui com a minha colega de
- 0:32bancada, Fernandinha. E aí, Rafa?
- 0:34Pois é, estou animada para esse papo.
- 0:36Quem nunca, né? Como você já falou, quem nunca
- 0:38teve que lidar com os problemas de múltiplas versões,
- 0:42bibliotecas e, enfim, fremox No No computador, né?
- 0:46Falar que merda podia ter um contêiner?
- 0:48Eu já perdi a conta de quantas versões do pai tô, tô, eu, tenho
- 0:50instalado. Exatamente, então estou animada
- 0:53para esse papo. E para isso a gente trouxe aqui,
- 0:55né, 2 presenças icônicas, 2 arquitetos de soluções aqui da
- 0:59DT. E o Dudu e o Igor bem vindos.
- 1:02Muito obrigado botar aqui de. Novo?
- 1:04Muito obrigado. Aí é acho que terceiro é pedir
- 1:06música, né? Já é a terceira presença.
- 1:08Agora eu já posso pedir música e vamos lá, vamos para um papo que
- 1:11acho que é bem legal mesmo o assunto.
- 1:13Acho que a gente pode começar então com a clássica pergunta,
- 1:15né, o que é e para que que serve um deve contêiner?
- 1:18Deve contêiner. Ele é basicamente você criar 111
- 1:21contêiner, né? Onde o seu ambiente de
- 1:24desenvolvimento está lá dentro. Então, quando você vai
- 1:26desenvolver, você roda aquele contêiner na sua máquina ou na
- 1:29sua máquina, ou. Na nuvem, existem algumas
- 1:30tecnologias na nuvem para isso e a partir dele você se conecta
- 1:34nesse contêiner e o seu meio desenvolvimento está tudo ali.
- 1:36A ideia é que o seu desenvolvimento com isso seja
- 1:39padronizado, seja repetível, para que quando você vai fazer
- 1:42um boarding de novas pessoas no projeto tudo, você não precisa
- 1:45ficar configurando, a máquina instala isso, instala a versão
- 1:48de dote, net tal, instala, node tal e igual.
- 1:50Você comentou várias versões de Python, né?
- 1:52Você fala cara, todo mundo vai usar a mesma versão para evitar
- 1:55o famoso Na Na minha máquina funciona?
- 1:57Você vai garantir que todo mundo tenha aquele mesmo, aquela mesma
- 1:59configuração. E aí com isso, você diminui a
- 2:02chance de ter problemas de de de setup, né?
- 2:05Aí que você consegue agilizar o início de uma pessoa dentro do
- 2:07do projeto. É em um caso assim, talvez até
- 2:09complementando um pouco do dos exemplos que o que o Dudu
- 2:12passou. Mas eu diria também aquele caso
- 2:14que se você precisa ficar troca de projeto a cada semana, todos,
- 2:17às vezes, até mesmo no próprio, no mesmo dia, né?
- 2:19Você ter contextos diferentes ali.
- 2:21Então isso traz um ganho ali, porque você já vai ter o seu
- 2:25ambiente. E não vai ter o conflito de
- 2:29versões e de instalações. Então não só porque eu tenho
- 2:32várias versões do pai, então eu tenho várias versões do Java,
- 2:35mas para que nenhuma outra linguagem vai impactando ali no
- 2:38na questão das dependências e conflitos na máquina.
- 2:40Ainda mais o arquiteto, né, que geralmente está em mais de um
- 2:43projeto. E é difícil gente começar a usar
- 2:46o deve contêiner, porque eu mesma, né?
- 2:48Já já conversando com alguns times aqui, eu falei, mas por
- 2:51que que vocês não usam deve contêiner?
- 2:52Ninguém sabe muito bem. Falar assim, hã?
- 2:55Mas normalmente é, não conheço ou não sei.
- 2:58Sei lá, me parece difícil, não sei.
- 2:59E aí é difícil. A maior dificuldade para começar
- 3:03a usar o deve contêiner era você ter a sua máquina preparada para
- 3:06isso, com um ambiente de virtualização configurado, EEEE
- 3:09funcionando ali para que você possa rodar um contêiner na sua
- 3:11máquina. Sabe?
- 3:12Eu acho que essa é a única coisa que que você é o é o pré
- 3:15requisito para você rodar um deve contêiner.
- 3:17Então essa parte talvez seja uma Barreira, porque as pessoas têm
- 3:21que ter um pouco desse conhecimento, tem que ter isso
- 3:22lá, tem que ter 111 ambiente de virtualização funcionando pra
- 3:27que você possa pegar principalmente as ideias hoje
- 3:29que suportam o uso de deve container, que possam usar
- 3:32dessa, dessa, desse ambiente de virtualização pra pra poder
- 3:36criar um novo deve container, uma vez que isso está feito, por
- 3:39exemplo, usando um vs code cara, é extremamente simples.
- 3:42Ele tem os wizardzinhos, cara control, shift p, né?
- 3:46Barra de comando lá do do do verso code, novo Dev container.
- 3:49Ele já te fala, cara, que que você quer?
- 3:51Você vai começar com uma versão de node de Python de DOT net.
- 3:54Você escolhe, você escolhe as ferramentas que você quer
- 3:56instalar em cima daquele seu ambiente de desenvolvimento e
- 3:58pronto, já está lá. E a partir do momento que você
- 4:01tem nisso, aquilo ali vira um artefato do seu, do do seu
- 4:05desenvolvimento, né? Ele gera 11 arquivo Jason com
- 4:08essas configurações e Como Ele É um artefato, ele está comitado
- 4:10no meu positório. Ele está lá dentro para você
- 4:12usar e para você evoluir ele. Então você pode começar de forma
- 4:15super simples, só com uma imagem padrão.
- 4:18E a partir do momento que você vai precisando de outras coisas,
- 4:20que você vai colocando outras ferramentas lá dentro, você vai
- 4:23evoluindo. Ele colocando script de de
- 4:25inicialização de customização que você pode colocar também e
- 4:28falar na hora que o deve conter for criado.
- 4:30Pela primeira vez você vai fazer essa e essa, essa e essa
- 4:32configuração, por exemplo, gerar uma chave que vai ser usada como
- 4:35um secret na sua aplicação local.
- 4:37Para autenticação com banco alguma, com algum banco local,
- 4:40alguma coisa assim é bem simples.
- 4:42Costuma ser ser bem, bem direto. Para quem está acostumado a usar
- 4:45essas ideias, a única questão é você ter esse ambiente na sua
- 4:48máquina. É, eu acho que o maior medo das
- 4:50pessoas hoje, que está quando fala de Dev contêiner, é o
- 4:53famoso DOC, o DOC assim, às vezes tem muito desenvolvedor,
- 4:59ainda que que que vai dormir sonhando com um DOC.
- 5:01Ali. O se teve que configurar
- 5:04volumes, teve que configurar network portas.
- 5:07Enfim, mas é, é igual o Dudu, comentou.
- 5:09Acho que hoje você tem na sua máquina uma máquina que suporta
- 5:13a configuração de DOC, né? A virtualização e um editor de
- 5:16de uma ideia, um editor de texto que consiga dar o suporte pra
- 5:20Dev container que hoje a maior, a maior parte do mercado já
- 5:24possui. Esse é é esse suporte, né?
- 5:26Então a gente está falando o Dudu comentou de verscode a
- 5:29gente, nós temos também Oo as as idees da da Dead brains.
- 5:34Então você tem lá OTLJE as outras ideias que que fazem
- 5:38parte ali da dash brains, né? Que possui esse suporte, então
- 5:42acho que fica mais a cargo assim.
- 5:44Hoje eu tenho uma aplicação, ela pode rodar em em Doctor, tô ali
- 5:48com tenizando a aplicação, porque não fazer esse tipo de
- 5:51abordagem também para o desenvolvimento, né?
- 5:53E tem as vantagens, como a gente comentou, de de ganho ali do
- 5:56processo de onboard e a padronização.
- 5:59Porque vira e mexe aconteceu até mesmo distensão quebrar a parte
- 6:02lá do versus codium usa a deitação de um jeito, outro usa
- 6:05do outro. Acontece.
- 6:06E com e assim isso ainda parece que fica mais fácil ou não de?
- 6:11Criar esse primeiro deve container esse essa versão
- 6:13inicial. Eu nunca tentei para falar a
- 6:16verdade porque é tão fácil, tipo assim, lá no esse code, next,
- 6:19next, net finish e acabou. Eu nunca tentei chegar e pedir
- 6:22para um copaylet da vida falar, cara, cria isso aqui pra mim,
- 6:25porque às vezes a gente gosta desse negócio, às vezes vamos
- 6:27usar EAE tudo que esquece que às vezes tá tem um jeito até um
- 6:29pouco mais fácil do que a iaa vai ajudar em tantas outras
- 6:32coisas, igual eu, eu brinquando, comecei a mexer que eu fiquei
- 6:34empolgado com o usar e a que eu. Pedir AIA para fazer o puxo para
- 6:38mim No No no guit é EE no VS. Conto, você dá um clique, você
- 6:41faz isso? Pronto, mas.
- 6:43Mas você quer pedir AIAI? Exatamente.
- 6:45Então eu fiz a criação de um deve container.
- 6:48Mas, cara, você usar AIA em cima de um deve container vai te
- 6:51ajudar no sentido de que você pode pedir para IA interagir com
- 6:55as ferramentas que você colocou lá no deve container também é?
- 6:58Você consegue abstrair um pouco mais dessa?
- 7:00Dessa questão você só fala, cara, eu vou precisar de ter
- 7:03isso aqui, eu vou precisar de ter um redies rodando o local,
- 7:05alguma coisa assim e tudo. Então você cria lá, AAO seu deve
- 7:09container, fala que seu deve container, vai ter um redees.
- 7:11Os negócios lá tem, já tem suporte a isso e você consegue
- 7:14falar depois que você criou, eu falei, ya configura o redees
- 7:17assim, assim, assim já insere pra mim uma chave no redees
- 7:20desse, desse jeito aqui, com esses desses valores, algumas
- 7:22coisas assim. Então você.
- 7:24Consegue usar o melhor dos 2 mundos?
- 7:25Eu acho dentro dentro disso, porque tanto faz como tanto fez
- 7:29para ir a se está rodando, deve container, se está rodando o
- 7:31local, o que que é basta é o seu amigo desenvolvimento ali para
- 7:33todos os efeitos. Mas talvez assim, fazendo um
- 7:35pouco do. Do papel do advogado, do diabo,
- 7:38querendo tirar de vocês. Quais são as desvantagens disso?
- 7:41Eu queria comentar uma experiência que eu tive assim,
- 7:44quando eu usei pela primeira vez, foi inclusive num projeto
- 7:46que eu estava com o Dudu. E a sensação que eu tive é, eu
- 7:49tinha um conhecimento muito superficial de Dave container na
- 7:52época, e aí eu fui é rodar pela primeira vez Dave container.
- 7:56Aí eu simplesmente era um script infinito que que começava a
- 7:59rodar e começava a instalar tudo ali.
- 8:01E eu tava é tendo que esperar aquilo ali ser gerado de alguma
- 8:06forma e pra mim parecer uma caixa preta.
- 8:09E eu senti que cara, eu não faço a mínima ideia do que que
- 8:12aconteceu aqui. Eu não faço a mínima ideia de
- 8:15como configurou, mas configurou. E eu fico pensando, se pra um
- 8:19desenvolvedor Júnior isso não pode trazer um impacto negativo
- 8:22dele, simplesmente também não saber fazer ideia do que que
- 8:25aconteceu ali, porque como a gente funciona, o que que tem
- 8:28que configurar? Quais dependências eu preciso
- 8:30para rodar alguma coisa? O que que vocês acham assim,
- 8:32essa curva de aprendizado para o Dave Júnior, para alguém que
- 8:36poderia tirar o benefício de ter, que é instalar o ambiente e
- 8:40configurar tudo na mão? Bom, eu acho que assim eu faço a
- 8:44diferença é trago um cenário que é um pouco diferente, no sentido
- 8:48de o mesmo. Dave Júnior.
- 8:50Ele configurando 56 microsserviços na máquina dele.
- 8:54E que na maioria dos casos ele vai estar rodando algum script
- 8:56que ele não está conhecendo ou que dá 11 output diferente e do
- 9:02que estava esperando ali naquele script, naquele no, na tarefa
- 9:06dele. Então eu acho que assim hoje a
- 9:08gente mantendo uma documentação, acho que nada de da mesmo
- 9:12utilizando o deve contêiner, nada impede da gente ter uma
- 9:15documentação no reading ali que possa ter AAO.
- 9:19Quais são as ferramentas hoje? O arquivo do da dav contêiner,
- 9:23ele é um arquivo de a zoom, então é um arquivo teoricamente
- 9:25simples da gente estar lendo ali um jeito mais é visível para um
- 9:30desenvolvedor. Mas a gente atualizando isso No
- 9:33No arquivo rede, me trazendo esses.
- 9:35Essa documentação também facilita no dia a dia até mais.
- 9:39Do que fazer com que a instalação seja em repositórios
- 9:42separados, sabe? Até pegando.
- 9:44No No que você falou, Igor, eu acho que tipo assim, é super
- 9:46importante a gente ter 11 Reed me para poder ter a explicação
- 9:50de cara do que como que funciona aquele projeto, né isso Oo Reed
- 9:53me, ele tem que existir, tipo assim, essa, essa
- 9:55direcionamento, ele vai existir para qualquer tipo de projeto.
- 9:57Quando a gente falou que o Dev container vai ajudar, ele vai
- 10:00ajudar no onboard, diminuir o tempo de onboard também não quer
- 10:03dizer que a pessoa não vai ter onboard nenhum, já chegou, cara,
- 10:05já cospe código, aí você tem que explicar para ela, cara, qual
- 10:07que é o contexto, como é que você vai botar seu projeto para
- 10:09rodar? Você vai ter que ter essa, essa,
- 10:11esse passo de de explicar e de de mostrar qual que é o caminho
- 10:15das pedras para você começar a cuspir código ali dentro.
- 10:18Então, seja um reading, seja uma explicação presencial, seja
- 10:21alguma coisa assim você vai ter que dar esse contexto para
- 10:24pessoa. Não é só atacar, ela vai, se
- 10:26vira, sabe? E aí vem uma outra coisa, que é
- 10:28outra coisa que você comentou também, que isso que você
- 10:30sentiu? Rafa, às vezes é muito pelo fato
- 10:33de que o deve contêiner, ele é um poker, ele é um container que
- 10:35tá rodando ali, então tem muita coisa relacionada aquilo.
- 10:38Então, a pessoa que vai estar desenvolvendo usando um, deve
- 10:40conter, né? Ela tem que ter um pouco desses
- 10:42conhecimentos. Ela falou, você sentava ali e
- 10:43ficava vendo um tanto de coisa acontecendo e não, não entendi,
- 10:46cara, o ele está baixando uma imagem, DOC, tá executando
- 10:50aquela imagem, DOC. Então, cara, vai depender muito
- 10:52do tamanho de cada layer, da, da, da, eu fui.
- 10:54Aprender DOC depois disso? Inclusive eu percebi que eu.
- 10:57Precisaria aprender na marra. Eu acho isso até um cenário até.
- 11:01Que dar mais confiança para o time na instalação, mesmo que a
- 11:04gente esteja aguardando a execução, por estar repetindo
- 11:08aquilo, é várias vezes, né? Os mesmos passos ali.
- 11:12É é algo que assim é diferente do que eu ter um script que
- 11:15estava versionado em algum lugar e eu tentar rodar isso na minha
- 11:18máquina, sendo que eu poderia ter alguns resultados
- 11:20diferentes. Então isso é é até um nível de
- 11:23maturidade que traz disputivo assim, pô, eu tenho confiança do
- 11:25meu processo de onboard. É algo bom.
- 11:27Isso é muito assim. Eu não tive a sorte de trabalhar
- 11:31com container na minha época, né?
- 11:33Mas assim, eu acho que eu seria muito feliz trabalhando com com
- 11:37uma tecnologia dessa, porque uma das coisas que eu acho mais
- 11:39chatas no mundo é você ter que fazer instalação de preparação,
- 11:43de ambiente, de projeto. Assim eu peguei e recentemente,
- 11:47assim um time né, que estava estava auxiliando esse time com
- 11:51outras coisas, né? Mais relacionadas, AEAE tudo
- 11:53mais. E aí eu resolvi baixar esse
- 11:56código do do time para minha máquina.
- 11:58Meu Deus do céu, e aí eu tive um tanto de problema, um tanto
- 12:02mesmo, vários, vários EEO. Time teve um pouco de
- 12:04dificuldade de me ajudar, sendo que uma deve.
- 12:07Eu tinha acabado de entrar no time há pouco tempo, sabe assim?
- 12:11Então ela também teve que passar pelo procedimboard.
- 12:13Ela também teve outros erros diferentes dos meus, ou seja, 2
- 12:16pessoas em muito pouco tempo perderam muito tempo para a
- 12:19preparação de um ambiente, sabe? Então assim, eu eu vejo muitas
- 12:23vantagens realmente assim. Exatamente, e já é algo que eu
- 12:26já já tenho visto em. Os projetos às vezes muitas
- 12:29bibliotecas, muitos fremons que eu vou baixar pra porque eu sou
- 12:32o doidão que quer aprender alguma coisa.
- 12:34Eu baixo o código lá do GitHub e vou lendo lá e vou abro No No na
- 12:38minha ideia e vou, vou vendo. Eu já vejo que já tem vários que
- 12:41já tem isso, que já tem os leve containers configurados lá, que
- 12:43se você quiser pegar e rodar o local, essas bibliotecas você já
- 12:46consegue fazer diretamente. Então eu acho que isso ajuda pra
- 12:49caramba nessa, nessa parte cara, é muito bom você já pegar, abriu
- 12:53o código, baixou o clonou, o repositório, um comandinho, já
- 12:56tá rodando tudo, sabe? Isso é isso.
- 12:58É muito bom, é muito pouco. Frustrante, né?
- 13:01Isso em. Contribuição de projeto a pessoa
- 13:03ser excelente, porque já é algo que você quer contribuir.
- 13:06Às vezes muitos governador falar não, não quero fazer.
- 13:09Até sei o que eu posso contribuir ali, mas então eu
- 13:11instalar na minha máquina, fazer um processo.
- 13:14Ainda tem alguns projetos que pedem algum formato de cometi um
- 13:18formato além do do, do da alteração em si, né?
- 13:22Um documento para falar o que que foi feito.
- 13:24Então esse já é uma etapa que facilita e até faz com que a
- 13:28pessoa fala, Ah, não, pera aí, tá?
- 13:29Tá fácil de de realmente instalar aqui, de baixar na
- 13:33minha máquina, deixa eu, deixa eu aproveitar e investigar um
- 13:36pouco mais? Exatamente.
- 13:37Vou fazer uma pergunta. Para vocês, existe alguma
- 13:39limitação, algum fator crítico que vocês olham e fala, não dá
- 13:42para usar, deve contêiner nesse será?
- 13:44Ou a gente? Teve um caso prático num
- 13:46penúltimo projeto, que que eu estava lá, onde a gente
- 13:49precisava de ter acesso à parte gráfica da máquina, a parte de
- 13:53tela, né? Enfim, a parte de de, de
- 13:55monitor, de, de, de tela e tudo, principalmente relacionado a
- 13:58cypress de de fazer teste que captura a tela que está
- 14:01executando o local. Então, para isso a gente teve
- 14:03que tentar se virar para instalar toda OOOO, arcabouço de
- 14:08drivers gráficos, dessas coisas todas dentro de um deve
- 14:11contêiner. A gente conseguiu sair do outro
- 14:12lado, conseguiu gerar uma parte. Uma telinha bem bem simples, bem
- 14:16limitada, digamos assim. Conseguimos.
- 14:19Não foi fácil um Monte de pesquisa na internet nos aí sim,
- 14:22foram. Foram uns 2 dias de de de de
- 14:25configuração para. Que a gente conseguisse rodar
- 14:27isso. Então tem essa essa questão que
- 14:31que talvez seja algo a se pensar, se o seu projeto depende
- 14:34muito disso, sabe? Depende muito de de coisa
- 14:36relacionada ao processamento gráfico, se depende de um de um
- 14:38ambiente gráfico rodando ali pro seu projeto para capturas e
- 14:42essas coisas todas. Então eu acho que qualquer
- 14:44ferramenta que, por exemplo, vai abrir 11 navegador que vai rodar
- 14:4811 Chrome e tudo no seu ambiente lá, dependendo do que for, você
- 14:52pode ter algumas dificuldades. Então esses essas ferramentas de
- 14:55teste ponto a ponto. Tudo é algo a se a se avaliar ou
- 15:00quais os recursos efetivamente necessários ali dentro para você
- 15:04ter e quando você. Roda, né?
- 15:05Beleza? Você configurou, convenceu o
- 15:08time lá, ensinou. Até configurado lá o Dev
- 15:11contêiner para aquele projeto, ele impacta em algo na
- 15:14velocidade do desenvolvimento. Ou seja, né, fica mais difícil,
- 15:17fica mais lento a máquina, como que é bom a gente.
- 15:20Tá falando de rodar um contêiner na sua máquina?
- 15:22É um ambiente virtualizado. Toda virtualização ela vai.
- 15:26Ter 111 impacto de recursos na sua máquina.
- 15:30Então ela vai precisar de um dependendo do que você for ter,
- 15:33dependendo do que você for rodar cara, se você quiser abrir 34,
- 15:38você tá em 4 projetos ao mesmo tempo.
- 15:39Querer abrir os 4 junto ali vai depender da da máquina que você
- 15:43tem. Pode ter um impacto.
- 15:45Se você fosse abrir eles sem fórum de deve conter, né?
- 15:48Abrir os 4 projetos simplesmente rodando na sua máquina local.
- 15:51E você configurar sua máquina local para rodar os 4 ao mesmo
- 15:54tempo, com certeza vai ter menos impacto de recurso.
- 15:57Então isso é 11 contraponto que a gente tem que estar, tem que
- 16:01pensar um pouco nisso, mas até para isso, Ah, dependendo.
- 16:04A minha empresa tem muito disso, tem vários contextos, pessoas
- 16:08têm que abrir vários projetos ao mesmo tempo.
- 16:10Existem formas de você executar os deve containers na nuvem?
- 16:14Forma virtualizada o GitHub code SPACE é uma da das formas de se
- 16:17fazer isso, é uma forma padronizada de você ter esses
- 16:19ambientes lá. E que você estando dentro de um
- 16:22de um ambiente desses do GitHub, você vai rodar o seu deve
- 16:25contêiner na nuvem e você vai se conectar via sua ideia nesse
- 16:28nesse nesse ambiente rodando na nuvem não é nacional nada.
- 16:31Instalado na minha máquina, não. Ele está rodando, está conectado
- 16:35lá quase como se você fizesse um SSH 13 assim, fazendo um
- 16:38paralelo bem grande. Eu tenho uma experiência assim,
- 16:41tão não distante, mas. É, foi um projeto que eu estava
- 16:44fazendo na faculdade, eu pra matéria eu precisava rodar uma
- 16:47aplicação em DOT net, uma aplicação empae, então e uma
- 16:50falar um pouquinho sobre a diferença dessa aplicação nas 2
- 16:53linguagens, por exemplo, surpresa, eu fiz a em casa lá
- 16:56como eu, como eu deve conter né? Como eu já estava fazendo, só
- 16:58que na faculdade não tinha as versões instaladas e eu não não
- 17:02estava conseguindo rodar de fato o que eu tinha na minha máquina,
- 17:05mas como o código já estava no GitHub, era algo que através do
- 17:09do próprio navegador eu já pude abrir o cold SPACE.
- 17:13E está desenvolvendo lá dentro. É claro que assim a internet
- 17:17teve que me ajudar, que era algo que é importante, mas a
- 17:20configuração da máquina foi até melhor do que estava na máquina
- 17:25do host, digamos assim, que aí eu pude rodar, pude fazer meus
- 17:28experimentos, fazer minha apresentação.
- 17:31De forma que como a gente utiliza a nuvem, como os
- 17:34recursos, hoje normalmente sabe consumir recursos de computação
- 17:37através do do browser, do navegador, sobre essa questão.
- 17:40De ser computacionalmente custoso.
- 17:43Você ter um deve? Contêiner é você acha que.
- 17:46Você está na situação de monohepo.
- 17:47Você tem um deve contêiner pra tudo.
- 17:49Você acha que pode piorar o problema ou você pode quebrar em
- 17:53mais de um deve contêiner? Isso é possível?
- 17:55Acho que não, acho que. Nem o objetivo vou dar um.
- 17:57Exemplo, focado no que a gente trabalha.
- 18:00Só pra talvez ficar clara a pergunta, a gente era um time
- 18:03multifuncional, então tinha o time de desenvolvimento e tinha
- 18:06aplicação e tinha a parte engenharia de dados.
- 18:08E eu era a única engenheira de dados assim desse time.
- 18:10Então e aí eu cheguei a um determinado momento que eu
- 18:13precisei começar colocar minhas coisas no deve contêiner.
- 18:16E aí eu tinha tudo aquilo ali, né, dentro da aplicação, dentro
- 18:19rodando junto com as com as minhas coisas, que eram pínfim,
- 18:21era um DBT, era 11, país, parque, enfim, as as bibliotecas
- 18:25do pai. Então a gente, você acha que
- 18:26nesse caso poderia ter 11? Deve container por papel, né?
- 18:30Sei lá, dinheiro de dados, o que eu diria?
- 18:32É só aproveitando que esse é um cenário que aí a gente volta um
- 18:35pouquinho lá falando do DOC, que aí eu acho que é a base do, do,
- 18:39do, do Dave container em si é algo que assim, no mono rap,
- 18:43você pode ter vários containers lá dentro.
- 18:46Então é um deve container, só que internamente ele tem vários
- 18:49containers e você tá fazendo 11 separação de papel ali dentro.
- 18:53Então assim, é algo que Ah, eu preciso gerenciar aquele
- 18:56container específico pra que ele tenha as suas configurações.
- 18:59Não, não há problema, você pode tá falando Ah, eu quero
- 19:02priorizar um pouco mais o meu recurso de computação aqui pra
- 19:05parte de banco, por exemplo, do que do meu container de
- 19:08aplicação, já que o meu container de aplicação ele vai
- 19:10subir. Mas eu não vou estar trabalhando
- 19:12100% nele, até porque, tipo. Assim, quando a gente está
- 19:15rodando, quando a gente define, quando a gente faz um deve
- 19:17container, você pode falar para ele, cara, usa essa imagem aqui,
- 19:22mas ele também te dá a opção de você passar um Doctor fire e ele
- 19:25já pegar daquele Doctor fire que você configurou e criar o da
- 19:27conta em cima daquele. Ou você pode usar um Doctor
- 19:29Compose. Onde você pode subir vários
- 19:32componentes, você vai falar lá no seu Jason dentro daqueles
- 19:35vários containers dentro do Doctor composto, qual que é a
- 19:37sua máquina? Onde ele vai falar, cara, esse
- 19:39aqui é o container de desenvolvimento e os outros
- 19:40containers e que ele vai subir você com coisas do seu ambiente
- 19:43igual do exemplo do redes que a gente pode ter rodando, do
- 19:46projeto seguinte ao que a gente trabalhou.
- 19:48Rafa, a gente tinha lá um container para o azurite, que é
- 19:51um esquema de virtualização do de de recursos da Azure, né?
- 19:54De de é juro stories tinha 11 scarserver local, que era o que
- 19:58o pessoal precisava na ideia era fazer realmente tipo 11. 11
- 20:01airplain mode para você desenvolver totalmente offline.
- 20:03Então ele rodava um banco de dados local ali também, então
- 20:06você pode ter os seus vários containers de acordo com com os
- 20:09serviços que você quer. E como é um Doca Compose?
- 20:11Você consegue gerenciar ali igual Oo, igual falou,
- 20:13quantidade de recursos, os starts top, essas coisas de como
- 20:16você vai estar coordenando aquele ambiente.
- 20:19Então você consegue falar igual você falou, estou no Chapeuzinho
- 20:21de dados, eu consigo, mas você starta só o.
- 20:23Que você quiser lá. E tudo.
- 20:24E fazer essas configurações dá para ter isso, né?
- 20:26Acho que é tipo assim, nunca pensei em ter vários deve
- 20:29containers diferentes para o mesmo projeto.
- 20:32Gostaria de saber se existe alguém usando dessa forma, sabe?
- 20:35Seria, seria interessante, é até bom.
- 20:37Né, se alguém estiver nos ouvindo e usa dessa forma e
- 20:40quiser, como? Comentar, né?
- 20:41Nas nossas redes, no Spotify. Fiquem à vontade que a gente vai
- 20:45gostar assim de saber. É que eu trouxe um.
- 20:47Cenário muito específico também são poucos times que você tem a
- 20:51engenharia de dados dentro do dentro do time de
- 20:54desenvolvimento, né? Com os deves um uso.
- 20:56Recente até tinha até comentado. Peguei essas ideias com com o
- 21:00Dudu. A gente estava conversando sobre
- 21:01um assunto um pouco diferente, que era Terra form.
- 21:04E como otimizar AAA configuração do terraform de como garantir os
- 21:09processos ali de estar utilizando OOO estado remoto do
- 21:13do terraform? E foi algo que na hora do
- 21:16projeto eu comecei a construir aí algo que dentro do verscode
- 21:20que eu estava utilizando na época, já tinha por você, Ah, eu
- 21:23quero comentar quais são as extensões que eu vou estar
- 21:26utilizando aqui nesse projeto? Tudo certinho.
- 21:28Quando eu vi falei assim, OPA, só falta uma coisa, eu colocar
- 21:31Oo Dev container de fato. É onde eu vou garantir.
- 21:35Qual é a versão do do Terra form?
- 21:37Qual é a versão do terragrau? Hoje você utilizando o Dudu, que
- 21:40comentou há pouco, você precisa de você pode estar utilizando
- 21:44ali, instalando pacotes dentro da sua imagem.
- 21:46Então você pode startups de uma imagem já de template da
- 21:49Microsoft ou de outras empresas e que você vai adicionando seus,
- 21:53ou então pode ser uma imagem customizada e você adiciona os
- 21:56seus pacotes. Nesse caso eu fiz a instalação
- 21:58usando as features do AZ CLI. Que basicamente, toda vez que
- 22:03tivesse que aquela imagem fosse iniciada, ela já tinha aquela
- 22:06versão própria do as vezes, sei lá.
- 22:08Com isso, conectando na versão específica do Terra forma, eu
- 22:11sei que meu projeto vai estar rodando todo mundo e não só de
- 22:13desenvolvimento, né? Não?
- 22:14Só um. Ah, então c Sharp, mas um
- 22:18projeto relacionado à IACA infraestrutura como um código?
- 22:21Sim, exatamente. É e essa e essa facilidade é que
- 22:24te ajuda a ter o seu, o seu deve conter todo configurado nas suas
- 22:27diferentes sabores de desenvolvimento ali dentro do do
- 22:30projeto. Igual a esse projeto que a gente
- 22:31estava, né? Ravac, a gente tinha é serviços
- 22:34em node, a gente tinha serviços em DOT net, a gente tinha a
- 22:37parte de dados que eu mexi muito com Python.
- 22:39Então, cara, como é que a gente faz?
- 22:41Mexe nessa salada, não deve contêiner, só sabe.
- 22:43Então a gente definiu a nossa imagem base, cara, a nossa
- 22:45imagem é essa e usando esse esse conceito que o deve contêiner
- 22:48traz de feature, você consegue falar essa imagem, além dela já
- 22:52ter tudo que ela tem, você vai botar feature a feature b é
- 22:55feature CA, feature a era o DOT net na versão 7 a feature berol
- 22:59terraforme lá Oo Python, sabe? São formas padronizadas de você
- 23:04colocar mais ferramentas, mais recursos, você instalar outras
- 23:07coisas dentro do seu deve contêiner, então é igual.
- 23:09Ou ele falou assim, começou lá, o dedo container já está lá, eu
- 23:12posso rodar o DOT net cielai, eu posso rodar OOO node desde que
- 23:17estejam configurados dentro de feature dentro da imagem própria
- 23:19já está tudo rodando o Azure cielai, então já te deixo está
- 23:23com com o seu ambiente todo preparado já para para isso eu
- 23:27tenho a confissão. A fazer.
- 23:28Eu demorei a colocar ODBT no deve container, eu fiquei
- 23:31instalando ele localmente. Até quando não dava mais, mas eu
- 23:34acho que isso é uma. Coisa legal do deve container,
- 23:36porque o deve container ele não te obriga a usar ele, ele está
- 23:41lá no repositório se você quiser usar, se você quiser é trabalhar
- 23:45com todas essas ferramentas dele, você vai trabalhar agora o
- 23:48seu em teoria continua sendo o seu código, seu repositório,
- 23:50você pode instalar tudo na sua máquina também não tem problema.
- 23:52Quem não gosta ou não consegue ou tem algumas dificuldades com
- 23:56o recurso da da máquina mesmo está numa máquina que às vezes
- 23:58não não está suportando tanto, pode usar fora do deve container
- 24:01o seu repositório. Vai ter todo OOO.
- 24:04Trabalho de instalar essas ferramentas que o deve container
- 24:06já te dá, mas quem não quiser usar tranquilo.
- 24:08No projeto que a gente estava tinha pessoas que não usavam
- 24:10deve container, tinham pessoas que preferiam trabalhar.
- 24:13Tudo instalado na sua máquina é, e eu fiquei muito.
- 24:15Tempo no meio que numa fase de poc, né?
- 24:17Que eu estava testando ODBT, então estava até ir para a
- 24:20produção. Ali eu estava experimentando.
- 24:22Eu estava trabalhando sozinha, então.
- 24:24É, pareceu mais simples, né? De ter que enfrentar o monstro
- 24:27do deve. Contar eu fico.
- 24:28Eu fico pensando justamente nisso, em quais são os
- 24:30argumentos, né? Que as pessoas que não, que têm
- 24:33um projeto com deve container configurado, mas ainda assim
- 24:36escolhem não utilizar e instalar.
- 24:39Por si só, é só o consumo de recurso da máquina ou facilidade
- 24:42igual a Rafa falou alguma outra coisa?
- 24:45O que que vocês acham na época, o problema?
- 24:47Específico que a gente teve, isso aí, nós estamos falando de
- 24:49coisa de 2 anos, 2 anos e meio atrás.
- 24:51Foi do gerenciamento do ambiente, de virtualização mesmo
- 24:54que a gente teve, que foi bem no momento de transição daquela
- 24:57questão da licença do docker desktop, onde se poderia usar,
- 25:00se não poderia usar e tudo, aquela coisa toda.
- 25:02Então, durante essa transição que a gente não tinha mais é a
- 25:05possibilidade de usar o docker desktop naquela época, como que
- 25:08a gente usava o ambiente de? De virtualização ali.
- 25:10Então a gente tinha OWSL do Windows, que 2 anos e meio atrás
- 25:14também não era tão estável, igual é hoje já.
- 25:16E dentro do WSL, você tinha que instalar o docker lá dentro.
- 25:20Você gerenciar o docker lá dentro que não tinha o docker
- 25:23desktop dentro do Linux que você gerenciava.
- 25:25Para que através do WSL você conseguir usar a sua ideia e
- 25:30criar um ambiente de de de deve container lá dentro dele?
- 25:33Então, nessa desse gerenciamento, desse tanto de
- 25:35coisa aí a gente tinha algumas dificuldades, vira e mexe a
- 25:38gente perdia a configuração de DNSE tudo e tal.
- 25:42Aí o pessoal, alguns envolvedores, fala cara, não pra
- 25:44gente não, não ficar agarrado aqui tentando resolver e tudo.
- 25:47Vou continuar o desenvolvimento. A pessoa já tinha as ferramentas
- 25:49instaladas, na verdade só seguiu a vida sem usar OOOO deve
- 25:53contêiner. Com o tempo a gente foi
- 25:55descobrindo outras ferramentas. Hoje a gente usa uma ferramenta
- 25:58chamada ranger desktop, que ela é uma ferramenta que faz essa
- 26:02configuração para você. Ele faz exatamente isso, ele
- 26:04instala o DOC no WSWSL para você, ele instala uma imagem
- 26:08específica do WSL lá dentro, ele instala o Doctor e cria um turno
- 26:12do Doctor na sua máquina Windows e ele faz todo esse
- 26:14gerenciamento para você, então ele consegue fazer isso tudo.
- 26:17E desde então a gente não teve problema mais quando a gente
- 26:19começou a usar essa ferramenta e a gente não teve mais problema
- 26:22com essa questão de de de de manter esse ambiente de
- 26:25virtualização rodando localmente.
- 26:27Então, não é aquilo que a gente falou mais cedo, o problema é o
- 26:29ambiente de virtualização. É esse conceito, essa curva de
- 26:32aprendizado, que traz um pouco de desafio para isso.
- 26:34É igual ela. Falou, né?
- 26:35Assim, na facilidade de fazer o que eu também já conheço, já
- 26:39faço, já fiz 15, 500 anos. Às vezes é, você tá na pressa,
- 26:43né? Quer fazer um negócio rápido?
- 26:45Você fala assim, Ah. Eu não vou gastar um tempo, né?
- 26:48Apesar de que eu sei, eu tenho certeza que no futuro esse tempo
- 26:51vai valer a pena. Peop está, gente?
- 26:53Peop está ODBT pelo amor de Deus.
- 26:55Nossa, exatamente. No meu caso foi exatamente isso,
- 26:58assim, acho que eu rodava já OWSL na minha máquina.
- 27:01Eu falei, para que que eu vou ficar fazendo isso, já que já
- 27:03está Oo Bum tu lá tudo certinho, não precisei fazer tanta
- 27:06configurações assim no Bum. Só que aí eu comecei, pô,
- 27:09preciso instalar uma versão do pyto.
- 27:10Ah, tá, não vou colocar o pai Evil lá, que eu vou gerenciando
- 27:13as minhas versões do pyto e está tudo tranquilo.
- 27:16Ah, não, agora espera aí, tem o node, Ah, não, o node, tem o
- 27:18node version. Aí foi tratando, Ah, não, agora
- 27:21eu preciso subir o peito mais uma versão específica do node.
- 27:24Aí você vai adicionando compleção dele e fala assim,
- 27:26agora realmente faz sentido eu eu ir lá para o Dev contêiner,
- 27:30porque realmente esse aqui já vou conseguir fazer, mas o
- 27:32gerenciamento vai ser ainda maior, vai ser uma complexidade
- 27:35maior. É, você está dizendo assim.
- 27:36Que se um projeto talvez é muito simples ou tem coisas que,
- 27:40enfim, não tem tanta. Ah, toda instalação, toda
- 27:43versão, tanta tanta coisa envolvida que eu realmente
- 27:46preciso de preparação de um ambiente.
- 27:47Talvez não é um candidato bom para eu ter um deve contêiner,
- 27:50porque eu vou criar simplesmente uma complexidade que às vezes
- 27:53não vale a pena. Acho que verdade.
- 27:55Mas se for um projeto. 100% Python que eu gerencio.
- 27:58Todas as bibliotecas ali dentro do pai estão usando o PIP.
- 28:02Aí eu tenho OV, por exemplo, eu tenho o poitre que eu consigo
- 28:05usar, mas hoje é tão. Simples, você começar um
- 28:07projeto, basicamente, a gente já tem algumas imagens, já é
- 28:10verificadas, você já consegue. Segue garantir ali as suas
- 28:14extensões. Então, se a gente está falando
- 28:15de um projeto simples, 2 minutos, a gente consegue criar
- 28:18uma versão, principalmente que quando a gente está.
- 28:20Falando de 1/01/1 projeto assim, você não vai ter só o Python, Ah
- 28:23beleza, você não vai ter o Python mais DOT net, mas você
- 28:25vai ter o Python, você vai ter um ambiente de CICD, então você
- 28:28geralmente vai ter algumas coisas relacionadas àquilo.
- 28:30Você vai ter um ambiente de nuvem, você vai ter que se
- 28:32conectar com esse ambiente de de nuvem.
- 28:33Você precisa de um Ager CLI, você precisa de um GitHub CLI
- 28:36ao. Alguma coisa assim.
- 28:37Então essas coisas, a configuração e o gerenciamento
- 28:40de todo um ferramental que você precisa não só do sua, do seu,
- 28:44da sua ferramenta de execução, da sua linguagem.
- 28:46Ali já pode estar ali dentro, sabe?
- 28:48Então, dependendo, igual o Rio falou, é super rápido e super
- 28:51simples de você colocar lá dentro.
- 28:53Pode ser que seja um bom candidato mesmo você começar
- 28:55numa coisa simples. Uma imagem básica pronto, está
- 28:59ali, não sem, não precisa instalar fit nenhuma, instalei,
- 29:02criei uma imagem básica de Python, Ah, no futuro comecei a
- 29:05precisar disso, bota lá, depois ajusta lá depois, sabe?
- 29:08Tipo assim, hoje é extremamente simples, é extremamente
- 29:10intuitivo você criar isso lá dentro do do, do da sua ideia,
- 29:14você gerar esse ambiente de de virtualização que geralmente
- 29:17você vai fazer isso a primeira vez, depois você vai só ir
- 29:20adicionando configurações. Ah, o time chegou numa
- 29:23determinada num determinado acordo sobre algumas
- 29:25configurações do ambiente de de de igual igual falou de dentação
- 29:29de não sei o quê. Você pode pegar a configuração
- 29:31da sua ideia e colocar dentro da configuração do deve container
- 29:34para quando você criar um deve container já criar com aquela
- 29:36configuração então da. Dá para fazer também ao invés de
- 29:38você. Geralmente, as ideias permitem
- 29:39que você tenha configurações pessoais, configurações do
- 29:42workstein, figurações do projeto como é que você?
- 29:44Equilibra isso, essa questão de personalização e de
- 29:48configurações do ambientes obrigatórias, eu acho que tipo?
- 29:51Assim, o cara prefere ter a árvore de passas do lado
- 29:55esquerdo ou do lado direito, é. Escolha pessoal, padronização
- 29:58disso, vai usar espaço, tab e tudo.
- 30:01Aí eu acho que para a legibilidade de código deveria
- 30:04ser compartilhado entre todos os, não esse.
- 30:06Não o COVID vira o inferno, né? Até.
- 30:09Porque, por exemplo, é isso, até é um caso.
- 30:11Eu participo de projetos que a gente tem dentro do CI,
- 30:14ferramentas para verificar a formatação do do código.
- 30:18Então, se ele não tiver bem formatado, vai quebrar Oo
- 30:21pipeline EE ser de desenvolvedor lá.
- 30:24Pô, meu pipeline não está rodando, não está passando nem
- 30:26quando ele Ah, não, espera aí esqueci dessa configuração,
- 30:29dessa formatação. Que já poderia ter sido
- 30:31antecipado? Então acho que hoje, nessa
- 30:33parte, é algo que já é natural, né?
- 30:35Pro time que quando começa a lecionar e analisar esse tipo de
- 30:38de estilo de codificação, quem nunca fez?
- 30:40Um comit que alterou todas as aspas simples.
- 30:42Para duplas, acontece uma. Coisa que eu estava.
- 30:44Pensando aqui é que a gente falou um pouco sobre o deve
- 30:48container, se é um pouco do da caixa preta, né?
- 30:50Que OA pessoa que está entrando no time às vezes não conhece bem
- 30:53como que funciona ou como que aquele ambiente se preparou
- 30:56magicamente, né? Esse tipo de coisa.
- 30:58Mas eu fiquei pensando que às vezes.
- 31:00Às vezes também começar, né? A usar o deve contêiner num time
- 31:04também traz para esse time conhecimentos, né?
- 31:07A respeito de DOC, a respeito de containerização que esse time só
- 31:11teria contato na publicação, né? Ou seja, ele vai começar a ter
- 31:15que se preocupar com coisas na hora de desenvolver ao ao invés
- 31:19de ser só na hora de publicar e que em projetos.
- 31:22Grandes. Muitas vezes essa etapa de
- 31:24publicação ela é, ela é separada, né?
- 31:26Apartada do time desenvolvimento.
- 31:28Eu conheço muitos em outras empresas, muitos times.
- 31:30Que nunca tocaram num outro ambiente que não seja
- 31:33desenvolvimento, que está ali na bolhazinha ali dele e não sabe
- 31:38nem distanciar um recurso na nuvem e não tem acesso para
- 31:41isso? Exatamente, é.
- 31:41Hoje é muito difícil você fazer um projeto e não ter nada de
- 31:45conteinização no próprio projeto, sabe?
- 31:46Você vai fazer a publicação do seu código, muito provavelmente
- 31:49seu código vai ter um tipo de conteinização, mesmo que seja
- 31:52alguma coisa serverlest tenha conteinização por trás alguma
- 31:55coisa assim, então. Ter esses conhecimentos,
- 31:57começaram AA ter contato, né EE cara e bater pensando na parede
- 32:02mesmo e ter essas dificuldades, é assim que a gente vai
- 32:04aprendendo e melhorando e ganhando conhecimento aquele
- 32:06negócio, se tudo está sempre funcionando, você não está
- 32:08aprendendo nada, né? Você vai aprender quando tem
- 32:10aquele bug difícil lá que você vai falar Ah, que legal, é assim
- 32:13que isso aqui funciona, então o que você estiver em.
- 32:15Produção, você vê que o pacote não instalou corretamente e você
- 32:18falou, OPA, espera aí, tinha que ter colocado isso aqui no DOC
- 32:20fire. Exatamente nossa.
- 32:22Eu lembro, me lembrei que agora de já teve umas épocas que eu
- 32:25precisava trabalhar. Que eu tentava gerar uma máquina
- 32:27virtual para ficar tentando compartilhar, cara, e aí você
- 32:30ficava tentando instalar coisa naquela máquina virtual.
- 32:32Depois que ela tinha tinha um, tinha uns padrões, até esqueci o
- 32:35nome que que o pessoal usava lá Na Na Azure, lá para você
- 32:38colocar extensões e você ficava botando script lá.
- 32:40É nossa, era um inferno fazer esse negócio funcionar direito.
- 32:43Hoje, quando deve container, cara, é igual você falou o Igor
- 32:46featur DOT net versão 7. Pronto.
- 32:49Acabou tá lá e tudo e já e já está funcionando, sabe?
- 32:51Então é, é, é bem bom isso aí. Acho que a gente estava
- 32:54comentando aqui. Acho que eu sou um dos maiores
- 32:55defensores de deve container que a gente eu não consigo fazer
- 32:59nada sem deve container, né? É, eu fiquei.
- 33:01Até pensando justamente nisso, se você começasse um projeto
- 33:03agora, qualquer que fosse eu. Comecei na semana passada.
- 33:06Deve container você? Também foi sim.
- 33:09Hoje é, é. Por todas essas vantagens é EE,
- 33:12acho que o mais importante, como eu estou num papel que estou
- 33:14mudando bastante. Essa essa flexibilidade, né?
- 33:17Eu acho que. É algo que é mais importante ter
- 33:20esse tipo de de troca do que de fato as funcionalidades em si,
- 33:25como já é tão fácil criar. Né, cara?
- 33:26A chance de você ter um problema de compatibilidade nessa troca
- 33:29de contexto lá na frente. O tempo que você vai perder para
- 33:31resolver isso provavelmente vai ser muito maior do que o tempo
- 33:33que você vai perder, entre aspas, bem grande.
- 33:36De criar um deve container novo antes de vir para.
- 33:38Gravação a gente estava brincando.
- 33:39A gente falou assim, não vamos parar parar.
- 33:41Vamos um sprint aqui pra gente colocar um deve container.
- 33:43Dudu falou assim, um sprint? Não.
- 33:46Coisa de de? Um dia, 2 dias, 2 horas está
- 33:48sendo. Conservadora porque ele me
- 33:50vendeu com com 2 horas bom assim.
- 33:53Então eu fiquei bem convencida. Não sei se todos ficaram, né?
- 33:57Todas as pessoas que estão nos ouvindo.
- 33:59Mas eu fiquei bem convencida. De que se eu começasse um
- 34:01projeto hoje, eu começaria com a deve container.
- 34:04E é isso. Espero que todo mundo aí tenha
- 34:06gostado e que estude mais sobre deve container e aplique na
- 34:09prática. Então, até a próxima, pessoal,
- 34:11tchau, tchau, obrigada. Muito obrigado gente.
- 34:13Tchau.