Ответим на любой вопрос
Написать
WhatsApp
Telegram
VK
документация

ИНСТРУКЦИИ ПО РАЗРАБОТКЕ, РАЗВЕРТЫВАНИЮ И ТЕСТИРОВАНИЮ


2.1. Разработка
Установка: JDK 8+, Maven. Команда: mvn clean compile.
Структура: Модули по сервисам (src/main/java/tech.ivoice.platform..sip-system.*).
Версионирование: Git, с ветками dev/feature.
Для FreeSWITCH: модульная надстройка на Java Native Interface.
2.2. Развертывание
Развертывание платформы автоматизировано через GitLab CI/CD и Ansible. Процесс включает следующие шаги:
Подготовка кода: Разработчик мержит готовую фичу в ветку main репозитория GitLab.
Автоматическая сборка и деплой: GitLab CI/CD запускает пайплайн, который собирает Docker-образы
для сервисов (tts, cts, cs, voicebot) и деплоит их в целевую среду (dev,
test или prod). Для сервисов sip-system, mediaservice и sip-servlet, управляемых через systemctl, пайплайн обновляет системные службы с зависимостями от FreeSWITCH и MongoDB.
Обновление на инстансе: На целевом сервере используйте один
из методов обновления:
Через Ansible (рекомендуемый автоматизированный способ): Запустите Ansible-плейбук (например, ansible-playbook deploy.yml), который обновляет все сервисы (sip-system, mediaservice, sip-servlet, tts, cts, cs, voicebot) на нескольких инстансах, обеспечивая консистентность. Плейбук включает задачи по остановке, обновлению образов, настройке переменных окружения (MONGO_URI, API keys)
и перезапуску.
Ручной способ через Docker
Compose (для одиночных
инстансов): Перейдите в
директорию проекта с файлом docker-compose.yml (сети, volumes, переменные). Запустите скрипт:
docker-compose pull — загрузка новых образов.
docker-compose stop — остановка контейнеров.
docker-compose rm -f — удаление остановленных.
docker-compose up -d — запуск в фоне.
docker image prune -f — очистка образов.
2.3. Тестирование
Тестирование платформы обеспечивает качество,
стабильность и соответствие требованиям. Процесс включает уровни тестирования с покрытием >75%, автоматизированными
тестами в GitLab CI/CD для непрерывной интеграции.
Unit-тестирование: Проверяет отдельные компоненты логики. Используется JUnit для Java-кода (Spring Boot, микросервисы) и Akka TestKit для тестирования акторов в sip-servlet. Тесты запускаются автоматически при сборке..
Интеграционное тестирование: Проверяет взаимодействие
сервисов (sip-system, mediaservice, tts, cts, cs, voicebot) с внешними системами (FreeSWITCH, MongoDB). Используется Postman для
симуляции API-вызовов и проверки REST-endpoints, включая аутентификацию и обработку задач (статусы READY → DIALING → ONGOING → PERFORMED).
Мониторинг ресурсов (CPU, память, сеть) осуществляется через Proxmox (виртуализация и управление инстансами) и Zabbix (сбор метрик
и алерты).