Документация, содержащая описание процессов, обеспечивающих поддержание жизненного цикла программного обеспечения, в том числе устранение неисправностей и совершенствование, а также информацию о персонале, необходимом для обеспечения такой поддержки «ТехКаталист ИИ / TechCatalyst AI» 1. Общие сведения Настоящий документ содержит описание процессов, обеспечивающих поддержание жизненного цикла программного обеспечения «ТехКаталист ИИ / TechCatalyst AI», включая эксплуатацию, мониторинг, техническую поддержку, устранение неисправностей, выпуск обновлений, совершенствование функциональности и требования к персоналу, необходимому для обеспечения такой поддержки. ПО «ТехКаталист ИИ / TechCatalyst AI» представляет собой серверную программную платформу и веб-приложение для централизованного управления корпоративным доступом к AI-функциональности, маршрутизации запросов к подключаемым LLM-провайдерам, учета потребления, контроля лимитов, биллинга, мониторинга, отчетности и администрирования интеграций. 2. Стадии жизненного цикла программного обеспечения Жизненный цикл ПО включает следующие стадии: 1. планирование изменений; 2. разработка и доработка функциональности; 3. проверка и тестирование; 4. сборка программного обеспечения; 5. развертывание экземпляра ПО; 6. эксплуатация; 7. мониторинг; 8. техническая поддержка пользователей и администраторов; 9. устранение неисправностей; 10. выпуск обновлений; 11. совершенствование функциональности; 12. документирование изменений; 13. резервное копирование и восстановление; 14. управление безопасностью и секретами. 3. Эксплуатационное сопровождение Эксплуатационное сопровождение ПО включает: 1. контроль доступности веб-интерфейса; 2. контроль доступности backend API; 3. контроль подключения к базе данных; 4. контроль состояния серверного окружения; 5. контроль статусов API-ключей; 6. контроль работоспособности интеграций с внешними провайдерами; 7. контроль корректности учета запросов, токенов и стоимости; 8. контроль работы уведомлений; 9. контроль логов и служебных сообщений; 10. контроль свободного места, нагрузки и иных эксплуатационных показателей инфраструктуры. 4. Мониторинг Для поддержания работоспособности ПО используются следующие процессы мониторинга: 1. мониторинг доступности приложения; 2. мониторинг статусов серверов; 3. мониторинг статусов API-ключей; 4. мониторинг ошибок backend API; 5. мониторинг ошибок внешних LLM-провайдеров; 6. мониторинг работы базы данных; 7. мониторинг производительности приложения; 8. мониторинг очередей, cron-задач и фоновых проверок, если они используются; 9. мониторинг отправки уведомлений; 10. мониторинг биллинговых и расчетных данных. Информация мониторинга используется для выявления неисправностей, анализа причин инцидентов, оценки стабильности работы и принятия решений о доработках. 5. Техническая поддержка Техническая поддержка пользователей и администраторов включает: 1. прием обращений; 2. регистрацию обращения; 3. классификацию обращения; 4. определение приоритета; 5. диагностику причины; 6. предоставление консультации; 7. исправление ошибки, если обращение связано с неисправностью; 8. передачу обращения разработчику или администратору инфраструктуры при необходимости; 9. проверку результата устранения; 10. закрытие обращения; 11. фиксацию результата в журнале поддержки или внутренней системе учета. Типовые категории обращений: 1. проблемы входа в систему; 2. ошибки доступа к разделам; 3. ошибки API-ключей; 4. некорректный статус ключа; 5. ошибки маршрутизации запросов; 6. ошибки учета потребления; 7. вопросы по балансу и биллингу; 8. проблемы с уведомлениями; 9. недоступность внешнего провайдера; 10. недоступность приложения или отдельных разделов. 6. Устранение неисправностей Процесс устранения неисправностей включает: 1. получение информации об ошибке от пользователя, администратора или системы мониторинга; 2. воспроизведение ошибки, если это возможно; 3. анализ логов приложения; 4. анализ логов сервера и process manager; 5. проверку доступности базы данных; 6. проверку переменных окружения; 7. проверку статуса API-ключей; 8. проверку доступности внешнего провайдера; 9. проверку состояния сети и DNS; 10. определение причины неисправности; 11. подготовку исправления или обходного решения; 12. тестирование исправления; 13. развертывание исправления; 14. проверку работоспособности после исправления; 15. документирование результата. 7. Типовые неисправности и действия по устранению 7.1. Недоступность веб-интерфейса Действия: 1. проверить доступность сервера; 2. проверить статус процесса приложения; 3. проверить логи приложения; 4. проверить конфигурацию reverse proxy; 5. проверить TLS-сертификат; 6. проверить DNS-записи; 7. перезапустить приложение при необходимости. 7.2. Ошибка авторизации Действия: 1. проверить учетные данные пользователя; 2. проверить статус пользователя; 3. проверить роль и права доступа; 4. проверить переменные окружения, связанные с авторизацией; 5. проверить логи backend API; 6. при необходимости сбросить пароль или создать новую тестовую учетную запись. 7.3. Ошибка API-ключа Действия: 1. проверить наличие ключа в базе данных; 2. проверить статус ключа; 3. проверить привязку ключа к пользователю, организации или подрядчику; 4. проверить провайдера ключа; 5. выполнить ручную проверку ключа; 6. при необходимости заменить, отключить или заблокировать ключ. 7.4. Недоступность внешнего LLM-провайдера Действия: 1. проверить доступность внешнего API; 2. проверить статус ключа провайдера; 3. проверить лимиты провайдера; 4. проверить ответ внешнего API; 5. временно переключить маршрут или использовать резервный ключ, если такая возможность настроена; 6. уведомить администратора и пользователей при необходимости. 7.5. Ошибка учета потребления или биллинга Действия: 1. проверить журнал запросов; 2. проверить данные по токенам; 3. проверить расчет стоимости; 4. проверить транзакции; 5. проверить актуальность цен моделей; 6. выполнить корректировку данных при наличии подтвержденной ошибки; 7. зафиксировать корректировку и причину. 7.6. Ошибка базы данных Действия: 1. проверить доступность PostgreSQL; 2. проверить строку подключения DATABASE_URL; 3. проверить логи базы данных; 4. проверить свободное место на сервере; 5. проверить миграции или схему Prisma; 6. восстановить соединение; 7. при необходимости восстановить данные из резервной копии. 8. Выпуск обновлений Процесс выпуска обновлений включает: 1. определение состава изменений; 2. разработку изменений в Git-репозитории; 3. проверку исходного кода; 4. установку зависимостей; 5. генерацию Prisma Client при необходимости; 6. применение изменений схемы базы данных; 7. сборку приложения; 8. тестирование; 9. развертывание обновления; 10. проверку работоспособности после развертывания; 11. фиксацию версии или контрольного коммита; 12. обновление документации при необходимости. Типовая последовательность обновления: git pull npm ci npx prisma generate npx prisma db push npm run build pm2 restart <ИМЯ_ПРОЦЕССА> 9. Совершенствование программного обеспечения Совершенствование ПО осуществляется на основании: 1. обращений пользователей; 2. результатов эксплуатации; 3. анализа инцидентов; 4. изменений требований заказчиков; 5. изменений API внешних провайдеров; 6. изменений тарифов и моделей провайдеров; 7. требований безопасности; 8. требований масштабирования; 9. требований отчетности и аналитики; 10. планов развития продукта. Возможные направления совершенствования: 1. расширение списка LLM-провайдеров; 2. улучшение маршрутизации запросов; 3. расширение биллинговой аналитики; 4. развитие мониторинга и уведомлений; 5. улучшение административных функций; 6. повышение безопасности; 7. оптимизация производительности; 8. улучшение пользовательского интерфейса; 9. расширение документации; 10. автоматизация развертывания и проверки. 10. Управление версиями и исходным кодом Исходный код ПО хранится в Git-репозитории правообладателя. Система контроля версий используется для: 1. фиксации изменений; 2. хранения истории разработки; 3. идентификации автора и времени изменения; 4. контроля веток и версий; 5. отката к предыдущим состояниям при необходимости; 6. подготовки релизов и обновлений; 7. подтверждения факта создания и развития ПО. 11. Резервное копирование и восстановление Для обеспечения непрерывности эксплуатации должны выполняться следующие действия: 1. резервное копирование базы данных; 2. резервное копирование критичных конфигураций; 3. хранение исходного кода в Git-репозитории; 4. проверка возможности восстановления; 5. документирование порядка восстановления; 6. ограничение доступа к резервным копиям; 7. исключение передачи секретов и персональных данных без необходимости. При сбое восстановление выполняется путем развертывания исходного кода из репозитория, установки зависимостей, настройки переменных окружения, восстановления базы данных из резервной копии, сборки и запуска приложения. 12. Управление безопасностью Поддержание безопасности ПО включает: 1. хранение production-секретов вне исходного кода; 2. ограничение доступа к административным функциям; 3. разграничение прав пользователей; 4. контроль API-ключей; 5. ротацию ключей при необходимости; 6. блокировку скомпрометированных ключей; 7. исключение паролей, токенов и приватных ключей из депонируемых материалов; 8. контроль доступа к серверу и базе данных; 9. анализ логов при подозрении на инцидент; 10. обновление зависимостей при выявлении существенных уязвимостей. 13. Документирование В рамках поддержания жизненного цикла ведутся или актуализируются: 1. инструкция по установке; 2. описание технической архитектуры; 3. описание функциональных характеристик; 4. описание API; 5. эксплуатационная документация; 6. пользовательская документация; 7. административная документация; 8. сведения об изменениях; 9. сведения о сторонних компонентах и лицензиях; 10. сведения об интеграциях. 14. Персонал, необходимый для поддержки Для обеспечения поддержки ПО необходим следующий персонал или совмещаемые роли: 1. разработчик full-stack; 2. backend-разработчик; 3. frontend-разработчик; 4. DevOps-инженер или системный администратор; 5. администратор базы данных или специалист, выполняющий функции администрирования PostgreSQL; 6. специалист технической поддержки; 7. специалист по информационной безопасности, если требуется отдельная роль; 8. продуктовый или технический менеджер, отвечающий за приоритизацию изменений. 15. Требования к компетенциям персонала Персонал, обеспечивающий сопровождение ПО, должен обладать следующими компетенциями: 1. знание TypeScript, JavaScript, React и Next.js; 2. знание Node.js и серверной разработки; 3. знание PostgreSQL; 4. опыт работы с Prisma ORM; 5. опыт настройки и эксплуатации Linux-серверов; 6. опыт работы с Git; 7. понимание принципов API-интеграций; 8. понимание работы LLM-провайдеров и API-ключей; 9. опыт настройки Nginx, HTTPS и process manager, например PM2; 10. понимание базовых принципов информационной безопасности; 11. умение анализировать логи и диагностировать ошибки; 12. умение поддерживать эксплуатационную и техническую документацию. 16. Итоговое описание процессов жизненного цикла Поддержание жизненного цикла ПО «ТехКаталист ИИ / TechCatalyst AI» обеспечивается процессами эксплуатации, мониторинга, технической поддержки, устранения неисправностей, обновления, совершенствования, резервного копирования, управления безопасностью и документирования. Для сопровождения ПО необходим персонал, обладающий компетенциями в области full-stack разработки, Node.js, Next.js, TypeScript, PostgreSQL, Prisma ORM, Linux-инфраструктуры, DevOps, технической поддержки и информационной безопасности.