Архитектура и компоненты
Компоненты
VAMPY состоит из следующих компонентов:
| Компонент | Описание | Назначение |
|---|---|---|
| vDeck | Frontend приложения | Веб-интерфейс для работы с системой |
| vEngine | Backend API | Основное API приложения, обработка запросов |
| vFiles | Сервис файлов | Загрузка, хранение и раздача файлов |
| vBackground | Фоновые задачи | Обработка асинхронных задач (базовый режим) |
| vBackgroundSeparated | Разделенные фоновые задачи | Специализированные воркеры для разных типов задач: - cpuLoadScan - выполнение и отслеживание сканирования- cpuLoadCalc - агрегации и пересчет статистики- businessFlow - бизнес-логика приложения- highPriorityCalc - высокоприоритетные вычисления |
| vOrchestration | Оркестрация сканирования | Управление запуском сканеров (Semgrep, Trivy, Trufflehog и др.) |
| vScheduling | Планировщик задач | Выполнение задач по расписанию |
| vReports | Генерация отчетов | Подготовка и экспорт отчетов |
| vBro | AI сервис | Обработка запросов к AI для анализа уязвимостей |
| vPostgres | База данных | PostgreSQL (опционально, можно использовать внешнюю БД) |
| vPGBouncer | Connection pooler | Управление соединениями к PostgreSQL |
| vRedis | Кеш и очереди | Redis для кеширования и управления очередями задач (опционально, можно использовать внешний Redis) |
Примеры подов
После установки VAMPY в namespace будут созданы поды для каждого компонента.
Имена подов формируются по шаблону: <RELEASE_NAME>-v-<COMPONENT>-<POD_HASH>.
Соответствие компонентов и подов
| Компонент | Имя пода (префикс) | Пример имени пода |
|---|---|---|
| vDeck | <RELEASE_NAME>-v-deck-* |
vampy-v-deck-7f8b9c4d5e-abc12 |
| vEngine | <RELEASE_NAME>-v-engine-* |
vampy-v-engine-6a5b4c3d2e-def34 |
| vFiles | <RELEASE_NAME>-v-files-* |
vampy-v-files-9c8d7e6f5a-ghi56 |
| vBackground (базовый режим) | <RELEASE_NAME>-v-background-* |
vampy-v-background-5e4d3c2b1a-jkl78 |
| vBackgroundSeparated.cpuLoadScan | <RELEASE_NAME>-v-background-cpu-load-* |
vampy-v-background-cpu-load-4d3c2b1a9z-mno90 |
| vBackgroundSeparated.cpuLoadCalc | <RELEASE_NAME>-v-background-cpu-load-* |
vampy-v-background-cpu-load-3c2b1a9z8y-pqr12 |
| vBackgroundSeparated.businessFlow | <RELEASE_NAME>-v-background-business-flow-* |
vampy-v-background-business-flow-2b1a9z8y7x-stu34 |
| vBackgroundSeparated.highPriorityCalc | <RELEASE_NAME>-v-background-high-priority-calc-* |
vampy-v-background-high-priority-calc-1a9z8y7x6w-vwx56 |
| vOrchestration | <RELEASE_NAME>-v-orchestration-* |
vampy-v-orchestration-9z8y7x6w5v-yza78 |
| vScheduling | <RELEASE_NAME>-v-scheduling-* |
vampy-v-scheduling-8y7x6w5v4u-bcd90 |
| vReports | <RELEASE_NAME>-v-reports-* |
vampy-v-reports-7x6w5v4u3t-efg12 |
| vBro | <RELEASE_NAME>-v-bro-* |
vampy-v-bro-6w5v4u3t2s-hij34 |
| vPostgres | <RELEASE_NAME>-v-postgres-* |
vampy-v-postgres-5v4u3t2s1r-klm56 |
| vPGBouncer | <RELEASE_NAME>-v-pgbouncer-* |
vampy-v-pgbouncer-4u3t2s1r0q-nop78 |
| vRedis | <RELEASE_NAME>-v-redis-* |
vampy-v-redis-3t2s1r0q9p-qrs90 |
Примечание: Если используется режим vBackgroundSeparated (включен в production), поды vBackground не создаются.
Вместо них создаются специализированные поды для каждого типа задач.
Пример получения списка всех подов
После успешной установки команда kubectl get pods -n $RELEASE_NAMESPACE покажет примерно следующее:
$ kubectl get pods -n vampy
NAME READY STATUS RESTARTS AGE
vampy-v-deck-7f8b9c4d5e-abc12 1/1 Running 0 5m
vampy-v-engine-6a5b4c3d2e-def34 1/1 Running 0 5m
vampy-v-engine-6a5b4c3d2e-ghi56 1/1 Running 0 5m
vampy-v-engine-6a5b4c3d2e-jkl78 1/1 Running 0 5m
vampy-v-files-9c8d7e6f5a-mno90 1/1 Running 0 5m
vampy-v-orchestration-9z8y7x6w5v-pqr12 1/1 Running 0 5m
vampy-v-scheduling-8y7x6w5v4u-stu34 1/1 Running 0 5m
vampy-v-reports-7x6w5v4u3t-vwx56 1/1 Running 0 5m
vampy-v-bro-6w5v4u3t2s-yza78 1/1 Running 0 5m
vampy-v-background-cpu-load-4d3c2b1a9z-abc12 1/1 Running 0 5m
vampy-v-background-cpu-load-3c2b1a9z8y-def34 1/1 Running 0 5m
vampy-v-background-business-flow-2b1a9z8y7x-ghi 1/1 Running 0 5m
vampy-v-background-high-priority-calc-1a9z8y7x6w-jkl78 1/1 Running 0 5m
vampy-v-postgres-5v4u3t2s1r-mno90 1/1 Running 0 5m
vampy-v-pgbouncer-4u3t2s1r0q-pqr12 1/1 Running 0 5m
vampy-v-redis-3t2s1r0q9p-stu34 1/1 Running 0 5m