Как был организован доступ к продакшн-серверам на последнем проекте?

«Как был организован доступ к продакшн-серверам на последнем проекте?» — вопрос из категории DevOps, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Доступ был строго регламентирован и автоматизирован через 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/'
            }
        }
    }
}

Почему такой подход? Он минимизирует человеческий фактор, обеспечивает воспроизводимость и аудит всех изменений, попадающих в прод.