Veuillez saisir le nombre exact de voitures pour continuer

Au cours de ma carrière, j'ai dû administrer plusieurs grandes entreprises. Nous parlons d'un million de serveurs Linux et plus. Lorsque vous avez tant de chats à votre charge, vous devez parfois agir avec un grand groupe. De temps en temps - avec tout le monde à la fois.



D'après mon expérience, les entreprises disposant d'un parc de serveurs aussi important cherchent à créer des outils de gestion de masse. Ces outils ont des noms différents, mais l'essence est à peu près la même: vous vous connectez via ssh en tant que root, exécutez la commande et, éventuellement, obtenez une sorte de code de sortie et / ou de résultat.



Dans certaines situations, c'est le seul moyen d'éteindre rapidement un incendie - et dans de tels moments, vous êtes reconnaissant que l'outil existe.



Mais une note sur autre chose. Il se concentre sur l'autre côté de la médaille, lorsque quelqu'un utilise l'un de ces outils et crée un problème. Peut-être a-t-il décidé de déployer rapidement des changements sur tous les serveurs, au lieu d'utiliser les meilleures pratiques (tests, essai, implémentation pour une partie du public, déploiement progressif, etc.). Peut-être ai-je décidé d'envoyer immédiatement un nouveau binaire à chaque machine, et donc ils plantent tous en même temps, ne laissant aucun moyen de lancer le site réel.



Il y a une chose que j'ai demandé d'ajouter à mes outils pour éviter certains types de catastrophes. C'est pour résoudre une situation spécifique où quelqu'un exécute par erreur une commande sur trop de machines. Peut-être qu'il voulait utiliser un rack d'hôtes de test (environ 40), mais a accidentellement choisitout le monde .



Lorsque vous disposez d'un tel outil, vous verrez vous-même des erreurs similaires.



Ma demande est assez simple: si vous allez demander une confirmation à titre de vérification de santé, * n'utilisez pas * le type Y / N. Au lieu de cela, demandez à lire le numéro sur l'écran et entrez-le à nouveau.



Il ressemblera à ceci:



<pre>-- 123456    . ?

    :</pre>


Ensuite, pour exécuter la commande, vous devez saisir avec précision "123456".



L'idée est pour une personne de percevoir ce nombre à travers ses périphériques d'entrée habituels (je dirais «yeux», mais certaines personnes utilisent des lecteurs d'écran ou quelque chose de similaire), de le traiter dans leur programme cérébral, puis de le renvoyer d'une manière ou d'une autre à l'ordinateur. Espérons que quelques étapes supplémentaires comme celle-ci activent suffisamment de matière grise pour que la personne s'arrête avant de tirer sur toute sa jambe avec un pistolet à jambe géante.



Bien sûr, si vous rencontrez une telle situation trop souvent et que vous avez vraiment besoin d'utiliser autant de machines, vous pouvez simplement copier et coller la figure. Dans ce cas, je dirais que vous utilisez cet outil trop souvent et que vous devriez penser à changer l'algorithme des actions pour ne pas trop vous reposer sur cet outil.



Mais dans une vraie entreprise, il n'est pas facile de simplement «cesser d'utiliser» l'outil. Dans une telle situation, en option, divisez le nombre par des espaces afin qu'il ne puisse pas être simplement copié et collé sans réfléchir.



Par exemple, imprimez un nombre avec l'un des séparateurs numériques de votre langue, par exemple 123.456 ou 123.456, ou 123456, ou ce qui vous convient. L'astuce n'est pas d'accepter cela comme entrée, mais d'exiger du client qu'il supprime le séparateur et n'insère que des nombres.



<pre>-- 123 456   . ?

    : 123456
! .</pre>


J'ai vu cette technique sauver des gens à plusieurs reprises, et je la partage ici dans l'espoir qu'elle aidera les autres. Si vous développez quelque chose d'assez puissant, pensez à sécuriser le système de cette façon.



Pensez simplement: les chiffres sautent de l'écran, sautent dans une personne, sautent d'avant en arrière dans la tête - et reviennent à l'ordinateur. Tout fait partie d'un même réseau.



Rachel Kroll, administrateur système Facebook



All Articles