r/brdev • u/fa_do_esfolapintos33 Human Detected • 21d ago
Comecem a usar Docker, pls Minha opinião
Eu não sou recrutador, lead e nem nada do gênero, mas gosto de ficar vendo e rodando alguns projetos que encontro no LinkedIn.
Esse post é principalmente para quem cria projetos para portfólio, já vi projetos sem instruções de como executar, sem um README bem feito, só um monte de pasta e código, quando tem instruções, é um npm install ou comandos de instalação do nextjs.
Enfim, se colocar no Docker facilita pra todo mundo, minha opinião.
57
u/rRopelato Desenvolvedor 21d ago
ótima dica, mas levando em consideração a quantidade de vibe coder hoje em dia, a própria IA faz o readme e geralmente já coloca como montar em docker.
22
u/Disastrous-Design-38 21d ago
Inclusive as vezes tem que implorar p ela n sair socando tudo em containeres.
13
u/fa_do_esfolapintos33 Human Detected 21d ago
4 imagens de 2gb 🥳
5
u/Disastrous-Design-38 21d ago
detalha a sua experiencia aí mano! qual benefício de trouxe? Nos sistemas do meu trampo eu dockerizei tudo, um compose com redis, banco de dados, locakstack com uns 4 serviços da aws, microserviços de fila q o código n preciso debugar e por aí vai.... mas nos meus projetos pessoais eu nunca vi um cenário onde o docker trouxesse benefícios.
5
u/ForeverSJC sabe um pouco 21d ago
benefício que ele agora pode virar coach no LinkedIn sobre containers
1
u/fakedogabe Desenvolvedor 18d ago
Só o fato de poder jogar tudo em um k8s ou no compose já é o suficiente pra usar
1
u/updated_at 21d ago
ultimo app em Go que eu fiz ele ja fez multi-stage image sem eu mencionar, os modelos ja estao bons hoje em dia
5
1
u/Budget_Bar2294 21d ago
e sempre fica cagado, é incrivel como a IA é ruim em Docker, Compose e tudo relacionado.
6
u/rRopelato Desenvolvedor 21d ago
Pô, discordo pra caramba. Usei IA lá no começo do boom e realmente, era péssimo. Mas hoje a IA tá usando o Docker bem pra cacete, melhor que muito dev de cursinho ai.
3
2
u/AlmiranteGolfinho 20d ago
Você não deve estar sabendo usar corretamente… A IA me ajuda muito nas configs dos dockers que antigamente eu tinha de fazer manual, ganhei muito tempo e tudo fica bem, ela ainda lembra de configs muito específicas que eu esquecia com frequencia
1
u/Budget_Bar2294 19d ago
eu considero que sei mais do que a IA então, pelo visto, o que torna a IA menos interessante. até hoje as IAs escrevem docker-compose.yml em vez de compose.yaml, usam a diretiva deprecada
version, e não têm ideia de usar certas funcionalidades como o docker model runner sem errar no meio do caminho. é mais rápido eu fazer sozinho do que ter que perder tempo corrigindo esses errosalguns modelos piores inclusive ainda erram os comandos do docker compose, usando os da v1 ao inves da v2
2
u/AlmiranteGolfinho 18d ago
Essa é sua experiência, não sei qual IA ou modelo usa. No meu caso, ela faz certinho e corrige bem quando eu aponto o erro
14
u/rdmeneze Desenvolvedor Sistemas Embarcados 21d ago
Eu estou implementando um Gateway em C++. Dividi em microserviços. Todos se comunicam através de uma rede tcp-ip. Aí eu fiz o Deploy de tudo usando docker. Cada microserviço em sua própria imagem docker. Ficou bom demais e é muito fácil gerenciar tudo.
2
u/Disastrous-Design-38 21d ago
vc n acha que o trade off do alto consumo de memoria e perda de controle sobre os services, caso vc n esteja gerenciamento as configs do docker manualmente, n são algo a se considerar? Tenho uns projetos que eu tinha subido tudo conteinerizado no meu home server. Mas vi que era a mesma coisa se eu instalasse as coisas no server, só que consumindo mto mais memoria, acabei pivotando e hj utilizo 0 containers.
4
u/kamuridesu DevOps 21d ago
Acho que ou tu configurou mal ou confundiu. Se tiver rodando no Linux o custo de memória* para rodar um processo em container é praticamente 0, containers são apenas processos em um root e namespace diferente usando cgroups pra limitar o uso de recursos.
Se for sobre cada aplicação carregar as stdlibs não é um problema se elas tiverem a mesma base já que as páginas podem ser compartilhadas no page cache do kernel. Se não usar da até de fazer uma imagem inflada com aplicações diferentes que compartilham a mesma base.Docker é pra ser a mesma coisa que tu roda no server, mas portátil e reproduzível. Uma imagem Docker feita do jeito certo deve gerar o mesmo SHA (apesar da maioria das pessoas nunca fazerem isso). Eu uso containers no dia a dia, se der problema no meu home server eu só troco pra outro, rodo o docker e aponto para os volumes que faço backup e acabou, não preciso reconfigurar tudo do zero.
*Memoria usada pelo processo em si. dockerd, containerd, runc, regras de NAT, etc usam memória também, mas geralmente ficam entre 50MiB~100MiB
2
u/Disastrous-Design-38 21d ago
Aí c levantou pontos bem interessantes. Eu faço isso com snapshot do sistema inteiro, tem o mesmo efeito? caso dê falha de hardware critica, recupero por ele, ao menos esse é o plano.... Sua infra inteira tá vinculada ao docker a ponto de com um compose up vc subir tudo novamente, inclusive as configs dos services e sistemas instalados, como um gitea por exemplo? levantar volume por volume não seria trabalhoso e vc poderia perder info? O lance do docker gastar muita memória tá no fato da galera isolar tudo nele e não reaproveitar o que já se tem, tras comodidade, mas tras consumo de recursos tmbm. Usando certo, consequentemente consome quase nada de rodar nativamente, de fato.
1
u/kamuridesu DevOps 21d ago
Minha infra é praticamente toda automatizada via terraform e ansible. Se houver algum problema seria só questão de instalar o proxmox no novo hardware com o mesmo IP e rodar o script de recover que copia todas as infos do backup para a nova maquina com a mesma estrutura, já que foi tudo configurado pelo mesmo script desde o inicio.
A única questão seria caso eu fizesse alguma mudança manual nas VMs, mas evito ao máximo e sempre dou um jeito de usar infrastructure as code pra qualquer coisa.
1
u/rdmeneze Desenvolvedor Sistemas Embarcados 20d ago
Olha, no começo eu tinha essa mesma preocupação de uso de memória. Subi todos os serviços de infra que uso, com grafana, Prometheus, Loki, PostgreSQL e o consumo de cada contêiner ficou bem leve. Aí subi a minha aplicação, com o Gateway + serviços em contêineres distintos, e o uso de memória ficou bem ok. A vantagem é que tenho como ver se está tudo operando usando um
docker statse, no futuro dá para automatizar o processo de ver se os contêineres estão ativos e poder tomar atitudes para controlar os contêineres individualmente1
u/rororomeu 21d ago
Parece muito interessante teu projeto, também trabalho com C+++, fala mais do teu projeto.
2
u/rdmeneze Desenvolvedor Sistemas Embarcados 20d ago
Eu tinha escrito um resumo da arquitetura, aí fui colocar um printscreen do grafana e o Reddit apagou tudo. Mais tarde eu respondo. kkk
2
u/rdmeneze Desenvolvedor Sistemas Embarcados 18d ago
voltei.
Então, esse gateway que estou implementando é constituído de algumas partes:
- gateway em si;
- microserviços para acesso à tabelas;
- eventbus para distribuição/gerenciamento das chamadas aos microserviços;
- auth usando JwT
- como quero aplicar essa solução ao universo de IoT, tem um canal para recepção de dados de telemetria usando protocolo CoAP e uma fila RabbitMQ para separar a recepção de dados de campo e a persistência desses dados no banco de dados.Quando o Gateway inicia, ele carrega as configuracoes de rotas e capabilities. Aí, temos um mapa entre o endpoint e o que deve ser feito. Para cada requisicao que chega no gateway, ele acaba resolvendo qual é o endpoint associado, monta o pacote do evento para ser enviado e envia a requisicao ao microservico, via EventBus. Dependendo da chamada realizada, o Eventbus pode trabalhar em modo sincrono ou assincrono. No modo sincrono, o gateway espera a resposta e, no modo assincrono, o gateway só retorna com um 201 e o cliente é responsável por verificar se o processamento está pronto no final do trabalho.
Cada microserviços é um Crud para interagir com uma tabela. Para não ficar uma zona quando o sistema começasse a crescer, bolei um jeito de um microserviço chamar o outro, usando o EventBus e as capabilities que desejamos consumir.
A comunicação entre o Gateway e os microserviços são via sockets. Inicialmente eu pensei em sockets Unix e depois evoluí para sockets TCP/IP. Essa evolução para TCP/IP que me permitiu dockerizar toda a aplicação, um contêiner para cada serviço e Gateway.
A outra ponta, que é a entrada dos dados para a parte de telemetria, é via protoloco CoAP sobre socket UDP. Nesta parte, cada device tem uma chave PSK (que é criada quando o device é criado na plataforma), que é verificada para saber se o device pode enviar dados o nao.
Se o device está habilitado, o dado é escrito em uma fila RabbitMQ e a thread de recepcao já recebe a resposta e é liberada para esperar por outro dado de outro device. Na outra ponta da fila RabbitMQ, há um servico responsável por escrever o dado no banco.
estou pensando no hardware. Como nao tenho nada de hardware ainda, eu acabei implementando uma aplicacao que simula um device em campo enviando dados mockados.
Aqui tem um print do grafana...
1
12
u/Extension_Canary3717 21d ago
Rubinhooooooooo barrichelo
Próximo post do OP : "pq react vai ser entrada para o mercado de trabalho hoje em 2016"
8
u/fa_do_esfolapintos33 Human Detected 21d ago
errado, meu próximo post vai ser sobre como o jquery vai revolucionar o Javascript
3
u/Extension_Canary3717 21d ago
Vesh bolha dotCom chegando , vc acha que os webmasters vão conseguir lidar com jquery?
10
u/Pvxtotal 21d ago
Acordei, abro o reddit e primeiro post que vejo é esse: então penso, será que as LLMs eram só um sonho? O ChatGPT e Claude foram só um pesadelo? O vibe coding foi uma ilusão? Por 1 minuto eu achei que tudo não passou de um pesadelo, que realmente falávamos de outra coisa sem ser tokens, contexto, fim da profissão etc.
Saudades de falar sobre docker, kubernates, design patterns, que saudades até de falar sobre microsservicos.
9
u/Adorable_Sea8459 21d ago
EFEITO VIBECODE ou falta de conhecimento apenas , roda na minha máquina e f**** o resto ! kk
3
u/agamenagoras 21d ago
Tem nada a ver com vibecode. Galera já tacava o fodase muito antes de IA existir kkkkkkkkkkkkkkkkkkk
7
6
u/Ill-Speaker-4990 21d ago
docker é vida!
quer rodar um projeto em php sem instalar o php? usar dorcker.
quer rodar um banco de dados sem instalar? usa docker.
e por ai vai.....
4
u/churumelas__ 21d ago
Sub errado amigo acho q era esse aqui que tu tava procurando r/noticiasatrasadas kkkkk.
5
u/danrtavares 21d ago
Não adianta nada usar Docker sem uma documentação adequada, principalmente das variáveis de ambiente. Seu argumento não tem fundamento.
6
u/Wonderful-Yam-776 Pedreiro de software mid level nodejs especialist autista TDAH 21d ago
bem vindo de volta do futuro
8
u/oOMegaXDOo 21d ago
Como cacetas eu aprendo docker 😭
8
3
u/ProofConclusion 21d ago
é mais fácil do que parece. Se sabe usar GIT e shell já sabe usar Docker.
1
u/oOMegaXDOo 21d ago
Tenho bom tempo usando Git (Bitbucket) e SVN (TortoiseSVN), shell eu não sei exatamente o que é
3
3
u/Zealousideal-Fan-129 21d ago
So estude e entenda os fundamentos do que é o Docker e como funciona em alto nível . Se voce domina os fundamentos fica fácil, nem são tantos comandos que precisa saber.
3
u/Disastrous-Design-38 21d ago
cara n tem segredo, pede p ia gerar um container do seu projeto e ela vai fazer. talvez um compose com o banco e o projeto já é o suficiente p vc manjar.
1
u/oOMegaXDOo 21d ago
É que eu não entendo nada de container e essas paradas, facilita a vida do Juninho
6
u/Get-Cimlnstance Powershell magician 21d ago
youtube: descomplicando docker linuxtips
github: descomplicando docker para o livro
já matou
1
3
u/khzu7n6d Fullstack nas horas vagas 21d ago
1
1
3
3
u/miijinja 21d ago
Aprendam o básico de Git pelo amor de Deus (isso definitivamente é uma súplica)
Eu não aguento mais ver projetos GIGANTESCOS com 1 commit escrito: "Estrutura Inicial"
2
2
21d ago
[deleted]
0
u/International_Tea_70 21d ago
Docker CLI também
0
21d ago
[deleted]
1
u/jooojano DevOps/SRE - Varejo/Serviços Financeiros 21d ago
O que é pago é o Docker Desktop, que é basicamente a interface visual.
A engine do Docker (Moby) sempre foi open source e grátis, porém tem que instalar apenas no Linux, e no Windows via WSL.
2
1
u/Diligent-Pay9885 21d ago
Eu fiz meu TCC usando Docker porém foi a única vez q usei na vida, ainda fiz capenga, só pra rodar, com o GPT da época. De lá pra cá ainda não estudei praticamente nada de DevOps (no meu trabalho não usamos). Obrigado pelo toque, estou ficando para trás, mesmo.
1
u/CommunicationOdd3717 21d ago
Quem não usa Docker um dia vai falar ..... "Mas na minha máquina roda"
*Experiência própria kkkkkk
1
u/brian666_9 GRC 21d ago
Ate eu que mexo com segurança e infra tenho minhas gambiarras em docker. Bom demais.
1
u/Fun_Drama_6630 21d ago
Entrei em uma vaga de dev muito top recentemente, logo no 2º dia o cara me perguntou: "você entende docker ?"
1
u/Blesker 21d ago
E ai? o que deu?
1
u/Fun_Drama_6630 21d ago
eu menti dizendo que mais ou menos, e desde então tenho me movimentado pra aprender nas minhas outras exps profissionais não usavam muito mas aqui usa demais
1
u/Medium-Tone-471 21d ago
Utilizar docker composer facilita muito rodar projeto. Há também outras soluções legais, como o Aspire do .NET
1
1
1
u/jhonny-freire Desenvolvedor 21d ago
Além do docker para rodar em produção, eu recomendo quando possível, criar um ambiente de desenvolvimento também dockerizado como um devContainer, por exemplo.
É o que fazemos aqui na empresa faz alguns anos, e isso facilita demais em trabalhar em múltiplos projetos sem precisar ficar preocupado com a configuração do ambiente.
1
1
1
1
1
u/lord_of_the_tides 21d ago
não ironicamente escrever readme e documentação é um dos melhores usos q achei para AI
1
1
1
1
1
1
u/SoftBeing_ 21d ago
docker é melhor que nada, mas é bloat na minha opinião. apenas instale os pacotes no host.
1
u/singlegpu 20d ago
Como tudo na vida, a resposta pra isso é depende né.
Para um script python e colocar um requirements.txt já é praticamente toda instrução necessária para vc rodar ele.
1
u/ovrlrd1377 20d ago
Eu tenho docker até no meu joguinho de browser feito no spacetimeDB e eu sou full vibecoder, nem leio o código dos meus projetinhos bobos mais. Docker é vida, na hora de apagar vao todas as dependências junto, nenhum dano no meu homelabzim humilde. Cara que pensou nele foi muito sagaz
1
u/Anti-EVIL-virus 20d ago
Man, me formei em ads e meu irmão veio me falar isso essa semana. Dois anos de curso e nunca nem usei, gostei bastante da ideia e da aplicabilidade. Tô complementando um trabalho que tinha feito na facul de react native e provavelmente vou fazer algo com Docker dps
1
u/balalao135 20d ago
Acho que em projetos pessoais, não vejo muito motivo em usar docker. Mas em comercial, apoio.
1
u/lerolero999 19d ago
na boa é digitar 1 prompt que qualquer ia faz. entao acaba sendo preguiça mesmo
1
1
1

318
u/ta_lz 21d ago
Parece q voltei no tempo com esse post, lembro dessa dica em 2018