Production спря за 2 часа. Причина: една печатна грешка.

Промяната:

# ConfigMap промяна
                                    data:
                                    DATABASE_CONNECITON_TIMEOUT: "30000" # Печатна грешка: CONNECITON

Какво се случи:

  • Приложението търсеше DATABASE_CONNECTION_TIMEOUT
  • Не го намери (печатна грешка)
  • Нямаше стойност по подразбиране
  • Таймаут = null → интерпретирано като 0
  • Всяка заявка към базата данни изтичаше веднага

Защо не беше уловено:

  • ConfigMaps са просто YAML—без схема
  • Kubernetes не валидира имена на ключове
  • PR прегледът пропусна грешката
  • Интеграционните тестове използваха различна конфигурация

Решенията:

  • Приложението валидира задължителни env променливи при стартиране
  • Бърз отказ ако критична конфигурация липсва
  • Валидация на схема за ConfigMaps в CI
  • Canary внедрявания за ранно улавяне на проблеми

Урок: ConfigMaps не са код—третирайте ги сякаш са.


← Назад към Научени Уроци