Je ne suis pas d'accord avec l'hypothèse de la question - c'est la sécurité - mais je suis également en désaccord avec le fait que l'automatisation va sauver la situation toute seule. Je vais commencer par le problème:
Vous ne devriez pas pouvoir accidentellement faire quoi que ce soit à la production!
Cela inclut de faire des choses automatisées accidentellement.
Vous confondez la sécurité du système avec des concepts comme «qui est autorisé à faire quoi». Vos comptes de développement ne devraient pouvoir écrire que sur leurs copies, le serveur de contrôle de version et la base de données de développement. S'ils peuvent lire / écrire la production, ils peuvent être piratés et exploités pour voler des données client ou (comme vous l'avez démontré) peuvent être maltraités pour perdre des données client.
Vous devez commencer par trier votre flux de travail.
Vos comptes de développeur doivent pouvoir écrire sur leurs propres copies, contrôler la version et peut-être passer du contrôle de version dans un environnement de test.
Les utilisateurs de sauvegarde ne doivent pouvoir lire qu'à partir de la production et écrire dans votre magasin de sauvegarde (qui doit être correctement protégé).
Faire toute autre lecture / écriture sur la production devrait nécessiter une authentification spéciale et peu pratique . Vous ne devriez pas pouvoir y glisser ou oublier que vous êtes connecté. Le contrôle d'accès physique est utile ici. Cartes à puce, interrupteurs à bascule pour "armer" le compte, accès à double clé à tour simultané.
L'accès à la production ne devrait pas être quelque chose que vous devez faire tous les jours. La plupart du travail doit être effectué sur votre plate-forme de test et les déploiements en dehors des heures d'ouverture doivent être effectués en production après un examen minutieux. Un petit inconvénient ne vous tuera pas.
L'automatisation fait partie de la solution.
Je ne suis pas aveugle au fait que le retournement complet (téléchargement vers VCS, vérification de la couverture, traction vers le serveur de test, exécution de tests automatisés, réauthentification, création d'une sauvegarde, extraction depuis VCS) est un long processus.
C'est là que l'automatisation peut aider, selon la réponse de Ben. Il existe de nombreux langages de script différents qui rendent l'exécution de certaines tâches beaucoup plus facile. Assurez-vous simplement que vous ne faites pas trop facilement des choses stupides. Vos étapes de réauthentification doivent toujours être prononcées (et si elles sont dangereuses), elles doivent être incommodes et difficiles à faire sans réfléchir.
Mais seule , l'automatisation est pire qu'inutile. Cela vous aidera simplement à faire de plus grosses erreurs avec moins de réflexion.
Convient aux équipes de toutes tailles.
J'ai remarqué que vous montriez la taille de votre équipe. Je suis un gars et je me suis mis à travers ça car il n'y a qu'une seule personne pour avoir un accident. Il y a des frais généraux mais ça vaut le coup. Vous vous retrouvez avec un environnement de développement et de production beaucoup plus sûr et beaucoup plus sécurisé.