
Я работал над несколькими проектами, в которых я перенес приложения из PoC в производство.
Это контрольные списки, которые я подготовил для себя и своей команды, чтобы убедиться, что мы готовы к производству.
Здесь в центре внимания контрольные списки, поскольку приложение написано на языке программирования Python и развернуто на AWS через Kubernetes.
Не все из них являются обязательными, но именно они кажутся мне наиболее полезными.
1. Оповещения и показатели
- [ ] Настроены ли оповещения о проблемах с инфраструктурой (например, увеличение использования памяти или ЦП, недоступность службы)?
- [ ] Настроены ли оповещения о критических логических сбоях конкретного приложения?
- [ ] Можем ли мы просмотреть исторические данные (за последние несколько часов/дней) об использовании инфраструктуры и ресурсов?
- [ ] Имеется ли панель мониторинга в режиме реального времени?
2. Панель мониторинга и СОП
- [ ] Существует ли документ СОП для обработки предупреждений и известных проблем?
- [ ] Существуют ли модули Runbook для распространенных сценариев?
- [ ] Существует ли план реагирования на инциденты?
3. Картирование дежурств и частота звонков
- [ ] Существует ли карта дежурных по вопросам, возникающим на уровне приложения?
- [ ] Существует ли карта дежурных по вопросам, связанным с инфраструктурой?
- [ ] Существует ли определенный график ротации и политика эскалации?
4. Развертывание
- [ ] Определен ли соответствующий тип экземпляра (GPU или CPU)?
- [ ] Указан ли требуемый тип сервера?
- [ ] Имеется ли поддержка зон множественной доступности для аварийного переключения?
- [ ] Есть ли поддержка нескольких регионов?
- [ ] Настроено ли автоматическое масштабирование (например, HPA, Keda) на случай пиков трафика?
- [ ] Настроены ли проверки работоспособности сервера?
- [ ] Были ли определены и задокументированы ограничения ресурсов?
- [ ] Существует ли сине-зеленая или канареечная стратегия развертывания?
- [ ] Существует ли определенный план и процедура отката?
5. Наблюдаемость и отслеживание
- [ ] Имеется ли панель мониторинга, показывающая соответствующие показатели (например, количество запросов, коды состояния HTTP, использование)?
- [ ] Можем ли мы сквозно отследить один запрос в целях отладки?
- [ ] Имеется ли система агрегирования и анализа журналов?
- [ ] Реализована ли распределенная трассировка?
6. Нагрузочные тесты
- [ ] Было ли выполнено планирование мощности для определения возможностей обработки нагрузки сервера?
- [ ] Существуют ли определенные критерии производительности?
- [ ] Проводилось ли стресс-тестирование?
7. Качество
- [ ] Существуют ли автоматизированные модульные тесты?
- [ ] Существуют ли автоматические интеграционные тесты?
- [ ] Выполняется ли статический анализ кода (например, проверки сложности)?
- [ ] Измерено ли покрытие кода и находится ли оно на приемлемом уровне?
- [ ] Существуют ли тесты на работоспособность производства?
- [ ] Имеется ли конвейер CI/CD?
- [ ] Регулярно ли выполняются проверки безопасности и оценки уязвимостей?
8. Релиз
- [ ] Доступна ли и актуальна ли документация Swagger/OpenAPI?
- [ ] Существует ли система управления версиями API и выпусков?
- [ ] Имеется ли налаженный канал связи для планового технического обслуживания?
- [ ] Существует ли процесс управления изменениями?
- [ ] Используются ли флаги функций для постепенного внедрения новых функций?
9. Аварийное восстановление и непрерывность бизнеса
- [ ] Установлены ли и проверены ли процедуры резервного копирования и восстановления?
- [ ] Существует ли стратегия репликации данных?
- [ ] Определены ли целевое время восстановления (RTO) и целевая точка восстановления (RPO)?
- [ ] Проводятся ли регулярные учения по аварийному восстановлению?
10. Соответствие требованиям и безопасность
- [ ] Шифруются ли данные при хранении и передаче?
- [ ] Имеются ли механизмы контроля доступа и аутентификации?
- [ ] Проводятся ли регулярные проверки безопасности?
- [ ] Соответствует ли приложение соответствующим отраслевым стандартам (например, GDPR, HIPAA)?
11. Документация
- [ ] Доступна ли и актуальна ли документация по архитектуре системы?
- [ ] Является ли документация по API полной и актуальной?
- [ ] Документированы ли рабочие процедуры?
- [ ] Существует ли подробное руководство по устранению неполадок?