Ответ
Доступ был строго регламентирован и автоматизирован через CI/CD. Прямой SSH-доступ имели только DevOps-инженеры и тимлиды. Основной процесс деплоя в продакшен осуществлялся автоматически после прохождения code review и всех этапов тестирования в пайплайне.
Пример Jenkins pipeline для деплоя:
pipeline {
agent any
stages {
stage('Build & Test') {
steps {
sh 'mvn clean package'
sh 'mvn test'
}
}
stage('Deploy to Production') {
// Деплой только для ветки main после успешного ревью
when { branch 'main' }
steps {
// Безопасный деплой через инструменты оркестрации
sh 'kubectl apply -f k8s-manifests/production/'
}
}
}
}
Почему такой подход? Он минимизирует человеческий фактор, обеспечивает воспроизводимость и аудит всех изменений, попадающих в прод.