• Код приложения должен лежать в системе контроля версий
  • Должна быть настроена автоматизированная система сборки и деплоя
  • Все сборки проекта должны быть полностью повторяемыми
  • Все зависимости проекта должны быть изолированы от операционной системы
  • В коде не должно быть хардкода настроек и доступов
  • Все настройки должны задаваться через переменные окружения
  • Продумана и реализована схема горизонтального масштабирования
  • Если ваше приложение stateless, оно должно быть готово к тому, что его могут «убить» и «поднять» в любой момент
  • Тестовые стейджи должны быть максимально похожи на боевое окружение
  • Работа приложения должна быть максимально наблюдаемой, приложение должно писать логи и экспортировать свои метрики
  • Все логи необходимо писать в stdout
  • Если в приложении есть база данных, должна быть продумана система миграций и схема релиза с учётом выкатки миграций


Мы давно придерживаемся всех этих пунктов, о части из них и некоторых дополнительных подробнее можно почитать здесь