Что представляет собой prod-версия на вашем текущем проекте?

«Что представляет собой prod-версия на вашем текущем проекте?» — вопрос из категории DevOps, который задают на 25% собеседований C# Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Prod-версия (production) — это финальная, стабильная сборка приложения, развернутая для реальных пользователей. Её ключевые отличия от dev/stage:

  • Код: Минимизирован и оптимизирован (удалены debug-символы, включены оптимизации компилятора, минифицированы JS/CSS).
  • Конфигурация: Используются строгие production-настройки (отключен debug-режим, включено кэширование, правильные строки подключения к БД).
  • Инфраструктура: Развертывается на выделенных, отказоустойчивых серверах или в облаке (Kubernetes, Azure App Service).
  • Безопасность: Включены HTTPS, WAF, валидация входных данных, секреты хранятся в vault (Azure Key Vault, HashiCorp Vault).
  • Мониторинг: Настроен сбор метрик, логов и трейсов (через Application Insights, Prometheus/Grafana, ELK).

Пример конфигурации для ASP.NET Core (appsettings.Production.json):

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "ConnectionStrings": {
    "Database": "Server=prod-sql;Database=MyApp;Integrated Security=true;Encrypt=True"
  },
  "Kestrel": {
    "Endpoints": {
      "Https": {
        "Url": "https://*:443"
      }
    }
  }
}

Развертывание обычно автоматизировано через CI/CD пайплайн (GitHub Actions, Azure DevOps) с контролем версий через Git tags или семантическое версионирование.