Nie zgadzam się z założeniem pytania - chodzi o bezpieczeństwo - ale nie zgadzam się również z tym, że automatyzacja sama uratuje ten dzień. Zacznę od problemu:
Nie powinieneś być w stanie przypadkowo zrobić nic do produkcji!
Obejmuje to przypadkowe wykonywanie zautomatyzowanych czynności.
Mylisz bezpieczeństwo systemu z pojęciami typu „kto może robić co”. Twoje konta programistyczne powinny mieć możliwość zapisywania tylko na swoich kopiach, serwerze kontroli wersji i bazie danych deweloperów. Jeśli potrafią czytać / zapisywać dane produkcyjne, mogą zostać zhakowane i wykorzystane do kradzieży danych klientów lub (jak wykazano) mogą zostać przypisane do utraty danych klientów.
Musisz zacząć od uporządkowania przepływu pracy.
Twoje konta programistów powinny mieć możliwość zapisywania własnych kopii, kontroli wersji i być może przejścia z kontroli wersji do środowiska testowego.
Użytkownicy kopii zapasowych powinni mieć możliwość tylko odczytu z produkcji i zapisu w magazynie kopii zapasowych (który powinien być odpowiednio chroniony).
Wszelkie inne operacje odczytu / zapisu podczas produkcji powinny wymagać specjalnego i niewygodnego uwierzytelnienia. Nie powinieneś być w stanie wślizgnąć się w to ani zapomnieć, że jesteś zalogowany. Fizyczna kontrola dostępu jest tutaj przydatna. Karty inteligentne, przełączniki typu „uzbrajanie” konta, dostęp do dwóch klawiszy jednocześnie.
Dostęp do produkcji nie powinien być czymś, co trzeba robić każdego dnia. Większość pracy powinna odbywać się na platformie testowej, a wdrażanie poza godzinami pracy w produkcji po dokładnej analizie. Trochę niedogodności cię nie zabije.
Automatyzacja jest częścią rozwiązania.
Nie jestem ślepy na fakt, że pełne przetworzenie (przesyłanie do VCS, sprawdzanie zasięgu, pobieranie do serwera testowego, uruchamianie automatycznych testów, ponowne uwierzytelnianie, tworzenie kopii zapasowej, pobieranie z VCS) to długi proces.
Właśnie tam może pomóc automatyzacja, zgodnie z odpowiedzią Bena. Istnieje wiele różnych języków skryptowych, które znacznie ułatwiają wykonywanie niektórych zadań. Tylko upewnij się, że nie ułatwiasz robienia głupot. Twoje kroki związane z ponownym uwierzytelnieniem powinny być nadal wyraźne (a jeśli niebezpieczne), powinny być niewygodne i trudne do zrobienia bez zastanowienia.
Ale sama automatyzacja jest gorsza niż bezużyteczna. Pomoże ci to w popełnieniu większych błędów przy mniejszym przemyśleniu.
Odpowiedni dla zespołów każdej wielkości.
Zauważyłem, że wskazujesz wielkość swojego zespołu. Jestem jednym facetem i narażam się na to, ponieważ wypadek zajmuje tylko jedna osoba. Jest narzut, ale warto. W efekcie powstaje znacznie bezpieczniejsze i znacznie bardziej bezpieczne środowisko programistyczne i produkcyjne.