Aposentando sistemas legados
O curso trata de remover uma funcionalidade, um endpoint, uma tabela ou coluna, ou um serviço inteiro enquanto o código continua atendendo requisições. Começa por provar que uma funcionalidade está morta com instrumentação em produção, já que o grep só mostra que o código é alcançável. Depois vêm o padrão strangler fig ao contrário, as leituras em sombra e no escuro e a redução gradual de flags, incluindo a limpeza delas. As últimas lições tratam de APIs públicas com os cabeçalhos Deprecation e Sunset, da ordem segura para jobs, tabelas e colunas e de um runbook de aposentadoria.
O que você vai aprender
- ✓Provar que uma funcionalidade não é usada com contadores em produção e uma janela que cubra seus ciclos de uso
- ✓O padrão strangler fig rodado ao contrário, com leituras em sombra e no escuro
- ✓Reduzir uma flag de remoção em incrementos e apagá-la com um prazo acompanhado
- ✓Aposentar um endpoint público com os cabeçalhos Deprecation e Sunset e evidência de tráfego zero
- ✓Remover jobs, tabelas e colunas em ordem: parar escritas, parar leituras, remover código, apagar o armazenamento
- ✓Seguir um runbook de aposentadoria e uma árvore de decisão para os quatro alvos de remoção
A feature que ninguém admite que está morta
Uma pessoa de engenharia propõe apagar o botão de exportar CSV. Ele está quebrado há oito meses. O job em segundo plano que gera o arquivo levanta um erro em toda execução, em silêncio, numa fila que ninguém acompanha. Alguém faz um grep no código por csv_export e encontra doze pontos de chamada. O…
Ler a aula completa grátis →Currículo
7 aulasA feature que ninguém admite que está morta
Por que apagar código é mais difícil que adicionar, e os quatro alvos de remoção com a ordem comum.
Instrumentação antes de apagar
Contadores em produção e uma janela de observação adequada para provar que uma funcionalidade não é usada.
O strangler fig ao contrário, e leituras sombra
O strangler fig rodado ao contrário e as leituras em sombra e no escuro antes de cortar tráfego.
Redução gradual de flag, e a flag que sobrevive à feature
Reduzir uma flag de remoção em incrementos, apagá-la depois do código e dar uma validade a cada flag.
Aposentando um endpoint ou uma API pública
Aposentar endpoints com chamadores externos usando os cabeçalhos Deprecation e Sunset, uma janela longa e tráfego zero.
Matando jobs, tabelas e colunas em ordem
Remover jobs, tabelas e colunas em ordem: parar escritas, parar leituras, remover código e apagar o armazenamento.
O runbook de aposentadoria
Um runbook e uma árvore de decisão que organizam as técnicas, com o desfecho do exemplo da exportação CSV.