Что ты понимаешь под жестким ревью?

Ответ

В моей практике под жёстким ревью я понимаю тщательный, принципиальный и бескомпромиссный разбор кода, инфраструктурных конфигураций или дизайна систем, где акцент делается на качестве, безопасности и долгосрочной поддерживаемости, а не на скорости принятия изменений.

На что я обращаю особое внимание в DevOps-контексте:

  1. Безопасность (Security):

    • Проверка на наличие hardcoded секретов (паролей, токенов) в коде или конфигах.
    • Анализ прав доступа в IAM-политиках (AWS, GCP, Azure) на предмет избыточных привилегий.
    • Оценка Dockerfile на использование последних базовых образов и отсутствие запуска процессов от root.
      
      # Плохо
      FROM alpine:3.7
      USER root
      CMD ["nginx", "-g", "daemon off;"]

    Лучше

    FROM alpine:3.19 RUN addgroup -S app && adduser -S app -G app USER app CMD ["nginx", "-g", "daemon off;"]

  2. Надёжность и отказоустойчивость (Reliability):

    • Проверка конфигураций оркестраторов (Kubernetes manifests, Terraform) на наличие лимитов ресурсов (resources.limits/requests), readiness/liveness проб.
    • Анализ скриптов развёртывания на отсутствие точек отказа (например, необработанных ошибок).
  3. Повторяемость и идемпотентность (Idempotency):

    • Код инфраструктуры (Terraform, Ansible) должен быть идемпотентным — его многократный запуск даёт один и тот же результат.
  4. Соответствие стандартам и best practices:

    • Соблюдение принятых в команде шаблонов для Terraform модулей, CI/CD пайплайнов (GitLab CI, GitHub Actions).
    • Проверка логгирования и мониторинга: логируются ли ключевые события, настроены ли алерты на метрики.

Баланс: Жёсткое ревью оправдано для критичных компонентов: security-related кода, модулей ядра инфраструктуры, конфигураций production-окружения. Для менее критичных изменений или hotfix-ов допустим более лояльный подход, чтобы не блокировать разработку.

Ответ 18+ 🔞

Давай я тебе на пальцах объясню, что такое моё «жёсткое ревью». Это не когда я придираюсь к запятым, блядь. Это когда я беру твой код или конфиг, кладу его на хирургический стол и начинаю вскрывать, чтобы найти раковую опухоль, которая через полгода накроет прод медным тазом. Цель — не уебать тебя морально, а чтобы система не развалилась нахуй в три часа ночи.

Вот на чём у меня горит взгляд, особенно в DevOps:

  1. Безопасность (Security):

    • Секреты в коде. Если я вижу в коде пароль или токен — это пиздец, чувак. Это как оставить ключи от квартиры в двери. Доверия ебать ноль сразу. Ищи vault или хотя бы переменные окружения.
    • Права доступа. Ты накрутил IAM-политику, где сервису дал права на *:*? Да ты что, ёпта? Это же пидарас шерстяной подход. Нужен минимум привилегий, а не «на всякий случай».
    • Dockerfile. Запускаешь всё от root? Сам от себя охуел? Это же дыра размером с мою голову боли. Создай отдельного юзера, блядь.
      
      # Плохо (Чёрта в душу, в сердцу мать!)
      FROM alpine:3.7
      USER root
      CMD ["nginx", "-g", "daemon off;"]

    Лучше (Вот теперь человек думает)

    FROM alpine:3.19 RUN addgroup -S app && adduser -S app -G app USER app CMD ["nginx", "-g", "daemon off;"]

  2. Надёжность (Reliability):

    • Kubernetes манифесты. Нет лимитов на память и CPU? Нет readiness-проб? Да ты, чувак, ходишь по охуенно тонкому льду. Один сервис сожрёт все ресурсы ноды, и остальные ебанько помрут. Так не пойдёт.
    • Скрипты. Если в bash-скрипте нет set -euo pipefail и обработки ошибок — это распиздяйство чистой воды. Упал один шаг, а скрипт дальше поехал и насрал в конфиги.
  3. Повторяемость (Idempotency):

    • Твой Terraform или Ansible должен быть как молитва: запускаешь его сто раз — получаешь один и тот же результат. Если он каждый раз создаёт новый ресурс вместо апдейта старого — это пиздопроебина. Иди учи матчасть.
  4. Стандарты (Standards):

    • У нас в команде есть шаблоны. Ты их игнорируешь и пишешь свой велосипед с хуем в пальто? Залупа ты конская. Это не из вредности, а чтобы через год любой мог разобраться, что тут происходит.
    • Логи и мониторинг. Ты ничего не логируешь и не прокидываешь метрики? А как мы потом бздеть будем, когда всё упадёт? Гадать на кофейной гуще? Ядрёна вошь!

Баланс, конечно, нужен. Я не буду впиздюрить тебя за опечатку в комментарии к hotfix'у в три ночи. Но если ты лезешь в ядро нашей сети или security-группы — будь готов, что я выверну твой PR наизнанку. Чтобы потом не было хиросимы и нигерсраков на проде. Всё просто.