Um segredo chega a um processo em produção por uma de três vias: uma variável de ambiente, um ficheiro montado, ou um cofre consultado no arranque. As três funcionam. O que as distingue é como falham , e é por aí que se escolhe. 1. Variáveis de ambiente A via mais simples, e a mais usada. O preço é …
Ler o artigo→Num servidor pessoal não vai haver observabilidade. Não há tempo, não há necessidade, e montar três contentores de métricas para um blogue é um passatempo — legítimo, mas é um passatempo e não monitorização. O objetivo é mais modesto e mais útil: saber antes de quem visita . E isso cabe em três perg…
Ler o artigo→Começo pela parte honesta, que é a que falta em quase tudo o que está escrito sobre isto: um docker compose up -d para o contentor antigo e arranca o novo . Há um intervalo. São segundos, mas existem, e chamar-lhe «sem interrupção» é mentira. O que um guião de deploy bem feito compra não é um interv…
Ler o artigo→O programa funciona na máquina de quem o escreveu. Falta decidir quem o mantém de pé num servidor — e há três respostas comuns, cada uma com um custo diferente. 1. O que é preciso resolver A pergunta não é «qual é o melhor», é «o que é que isto tem de garantir». São sempre as mesmas cinco coisas: Vo…
Ler o artigo→«O servidor está lento» é a queixa mais inútil que existe, porque pode ser meia dúzia de coisas completamente diferentes. O que serve é uma ordem fixa para as excluir, e cinco comandos chegam. 1. Há carga? uptime # 14:03:11 up 32 days, load average: 8.42, 6.15, 3.90 Os três números são a média de um…
Ler o artigo→O programa funciona. Falta pô-lo a correr no servidor, e a primeira tentativa é quase sempre esta: nohup node servidor.js & Aguenta-se até à primeira coisa a correr mal. Se o processo morrer, ninguém o levanta. Se a máquina reiniciar, ele não volta. A saída vai para um nohup.out que cresce sem limit…
Ler o artigo→Para um contentor só, o compose parece um docker run com mais passos. E, escrito dessa maneira, é mesmo — um ficheiro a mais para dizer o que um comando já dizia. O que o torna útil é outra coisa: deixa de ser a forma de arrancar alguma coisa e passa a ser o registo de como ela corre . Rede, polític…
Ler o artigo→O docker ps diz Up 4 hours e o site não responde. As duas coisas não se contradizem: «Up» só quer dizer que o processo número um ainda não morreu . Se ele estiver encravado à espera de uma ligação que nunca chega, continua vivo, e o Docker continua a dizer que está tudo bem. É para esse vão que exis…
Ler o artigo→O servidor pára, a aplicação começa a dar No space left on device , e o df confirma: 100%. Faz-se então a conta ao que lá está — e a conta não bate certo. O du soma metade do que o df diz estar ocupado. Há três razões possíveis para essa diferença, e nenhuma delas é óbvia. 1. Primeiro, o trivial: on…
Ler o artigo→Um formulário aberto na internet acaba por receber a visita de um robô. Sem limite nenhum, uma tarde chega para encher a base de dados — e o custo de a limpar é sempre maior do que o de a proteger. 1. Janela fixa: simples, com um defeito const contagens = new Map(); function dentroDoLimite(chave, ma…
Ler o artigo→A aplicação corre em localhost:3000 , o Nginx trata do domínio e do certificado, e tudo parece bem — até ao dia em que os endereços que ela gera saem com http://0.0.0.0:3000 , e todos os visitantes ficam com o mesmo IP no registo. O motivo é sempre o mesmo: a aplicação vê o proxy, não vê quem visita…
Ler o artigo→Toda a gente sabe que deve fazer cópias de segurança. O que se descobre tarde é que uma cópia por restaurar não é uma cópia — é uma esperança . 1. A regra 3-2-1 3 cópias dos dados — a original e duas. 2 suportes diferentes — não as duas no mesmo disco, nem as duas na mesma máquina. 1 fora do sítio —…
Ler o artigo→Os registos servem para responder a uma pergunta que se faz sempre tarde: o que é que aconteceu às 3 da manhã? Um registo que não responde a isso é papel; um que responde de mais é um problema legal. 1. Níveis, e o que cabe em cada um error — falhou e alguém tem de saber. Uma exceção, uma gravação r…
Ler o artigo→Uma cópia de segurança à noite, uma limpeza ao domingo, um relatório às segundas. Há duas formas de agendar isto num servidor Linux, e a escolha tem menos a ver com gosto do que parece. 1. Cron: cinco campos e está feito crontab -e # minuto hora dia mês dia-da-semana 0 3 * * * /opt/scripts/backup.sh…
Ler o artigo→Um certificado custava dinheiro, chegava por email e renovava-se à mão uma vez por ano — normalmente no dia seguinte a ter expirado. Hoje é gratuito e automático, e vale a pena saber o que se passa por baixo. 1. Para que serve, ao certo Cifra o que vai e vem, para ninguém pelo caminho ler nem altera…
Ler o artigo→Escreve-se um endereço e a página aparece. Pelo meio há uma cadeia de perguntas que vale a pena conhecer — nem que seja para saber onde olhar quando um site "não abre só para si". 1. A cadeia O browser precisa de um número — 185.199.108.153 — e só tem um nome. Para o descobrir, pergunta a um resolve…
Ler o artigo→