Existe sempre uma linha tênue entre proteger dos erros e dificultar o trabalho. Embora eu seja um administrador dedicado, nossa organização é pequena o suficiente para que não seja prático implementar toda a sobrecarga e a burocracia que as grandes empresas gostam de manter sua produção segura.
Além das suas regras, também temos o seguinte:
- nunca use as mesmas credenciais para teste e produção (por exemplo, login, banco de dados), se você não puder arcar com os firewalls, coloque regras de descarte para erros comuns, ou seja, conectando ao backend de teste do frontend ao vivo, etc.
- implemente o máximo possível de gerenciamento de alterações / controle de versão, não apenas no nível do aplicativo, mas também no nível do sistema operacional. Aqui nós usamos cfengine, mas há muitas outras opções, ou seja, fantoche ou até mesmo crescer o seu próprio.
- automatize todas as tarefas de rotina, ou seja, você não deve excluir nada manualmente na produção regularmente
- mantenha uma documentação atualizada de tudo, não considere uma tarefa feita até que esteja documentada adequadamente, combine o wiki e o sistema de rastreamento de bugs. Tem que haver um "Porquê" para cada mudança e para cada esquisitice na configuração. Eu sei que isso soa como um Santo Graal, mas qualquer documentação é melhor que nada.