Na minha experiência, empresas com uma frota de servidores tão grande estão procurando criar ferramentas de gerenciamento em massa. Essas ferramentas têm nomes diferentes, mas a essência é aproximadamente a mesma: você efetua login via ssh como root, executa um comando e, possivelmente, obtém algum tipo de código de saída e / ou resultado.
Em certas situações, esta é a única maneira de apagar rapidamente um incêndio - e nesses momentos, você fica grato pela ferramenta existir.
Mas uma nota sobre outra coisa. Ele se concentra no outro lado da moeda, quando alguém usa uma dessas ferramentas e cria um problema. Talvez ele tenha decidido implementar rapidamente algumas mudanças em todos os servidores, em vez de usar as melhores práticas (testes, execução de teste, implementação para uma parte do público, implantação gradual, etc.). Talvez eu tenha decidido enviar imediatamente um novo binário para cada máquina e, portanto, todos eles travaram ao mesmo tempo, não deixando nenhuma maneira de lançar o site real.
Há uma coisa que pedi para adicionar às minhas ferramentas para prevenir certos tipos de desastres. Isso é para resolver uma situação específica em que alguém está executando por engano um comando em muitas máquinas. Talvez ele quisesse usar um rack de hosts de teste (cerca de 40), mas escolheu acidentalmentetodo mundo .
Quando você tem essa ferramenta, você mesmo verá erros semelhantes.
Meu pedido é bastante simples: se você vai pedir uma confirmação como uma verificação de sanidade, * não * use o tipo S / N. Em vez disso, peça para ler o número na tela e digite-o novamente.
Isso parecerá assim:
<pre>-- 123456 . ?
:</pre>
Então, para executar o comando, você deve inserir precisamente "123456".
A ideia é que uma pessoa perceba esse número por meio de seus dispositivos de entrada habituais (eu diria "olhos", mas algumas pessoas usam leitores de tela ou algo semelhante), processe-o em seu programa cerebral e, de alguma forma, devolva-o ao computador. Esperançosamente, alguns passos extras como esse devem ativar massa cinzenta suficiente para a pessoa parar antes de atirar em sua perna inteira com uma arma gigante.
Obviamente, se você se deparar com essa situação com muita frequência e realmente precisar usar muitas máquinas, basta copiar e colar a figura. Nesse caso, eu diria que você usa essa ferramenta com muita frequência e deve pensar em mudar o algoritmo de ações para não depender tanto dessa ferramenta.
Mas em uma empresa real, não é fácil simplesmente “parar de usar” a ferramenta. Em tal situação, como uma opção, divida o número com espaços para que ele não possa ser simplesmente copiado e colado sem pensar.
Por exemplo, imprima um número com um dos separadores numéricos do seu idioma, por exemplo 123,456 ou 123,456, ou 123456, ou o que mais lhe convier. O truque não é aceitar isso como entrada, mas exigir que o cliente remova o separador e insira apenas números.
<pre>-- 123 456 . ?
: 123456
! .</pre>
Já vi essa técnica salvar pessoas em muitas ocasiões e a estou compartilhando aqui na esperança de que ajude outras pessoas. Se você estiver desenvolvendo algo poderoso o suficiente, considere proteger o sistema dessa forma.
Basta pensar: os números saltam da tela, saltam para uma pessoa, saltam para trás e para a frente na cabeça - e voltam ao computador. Tudo faz parte de uma rede.
Rachel Kroll, administradora de sistema do Facebook