Быстрый переход
Программа «EDA» (Enhanced Dynamic Activation) представляет собой виртуальный сетевой элемент с движком динамической активации сервисов. Продукт предназначен для автоматического включения сетевых сервисов, лицензий или функций без необходимости длительных ручных операций или перезапуска системы. Реализован с использованием REST API и CLI-интерфейса, разворачивается как сетевой элемент на OpenStack (Nova instance / Docker).
Область применения
Программное обеспечение предназначено для использования в следующих сценариях:
Динамическая активация функций и сервисов в сетевой инфраструктуре
Управление сетевыми сервисами в виртуализированных средах (NFV/CNF)
Динамическое выделение вычислительных ресурсов
Автоматическая настройка компонентов сети
Интеграционное тестирование смежного телекоммуникационного оборудования
Обучение и повышение квалификации специалистов в области сетевых технологий
Место в сетевой инфраструктуре
В архитектуре сетей EDA выполняет функции уровня управления активацией сервисов:
Управление шаблонами активации (Service Models)
Управление жизненным циклом активаций
Координация активаций на сетевых элементах
Уведомления о статусе активаций через webhook
Сбор и предоставление метрик состояния
Интеграция с внешними OSS/BSS-системами через REST API
Объединение этих функций в едином программном продукте позволяет операторам быстрее вводить новые услуги, масштабировать сеть и адаптироваться к изменению нагрузки.
Ключевые особенности
Основными особенностями данной реализации являются:
Динамическая активация функций — включение программных возможностей без полной переустановки ПО
Автоматизация — уменьшение количества ручных действий инженеров
Гибкое лицензирование — активация приобретённых функций или ёмкости по лицензии
Масштабирование — добавление ресурсов при росте нагрузки
Минимизация простоев — многие изменения можно выполнять без остановки сервисов
REST API (FastAPI) — северный интерфейс элемента
CLI-клиент поверх API для оперативного управления
Движок активации с поддержкой состояний, деактивации, ручного и автоматического retry
Mutex по целевому сетевому элементу для сериализации активаций
Блокировка сетевого элемента (maintenance mode)
Пакетная активация сервисов
Webhook-уведомления о завершении активаций
Алармы при сбоях активаций
Prometheus-метрики для мониторинга
Опциональная аутентификация по API-ключу
Программа EDA обеспечивает выполнение следующих основных функций:
Управление шаблонами активации (создание, просмотр, удаление)
Регистрация и управление сетевыми элементами
Запуск активаций сервисов по шаблонам
Отслеживание статуса активаций в реальном времени
Деактивация сервисов
Автоматический retry активаций при сбоях
Пакетная активация нескольких сервисов
Блокировка сетевых элементов (maintenance mode) с автоматическим возобновлением активаций
Отправка webhook-уведомлений о завершении активаций
Генерация алармов при сбоях
Сбор и экспорт метрик в формате Prometheus
Аутентификация запросов к API
Graceful shutdown по сигналам
Программная реализация основана на многоуровневой архитектуре:
Слои исполнения:
API слой — FastAPI-приложение с роутерами, схемами и AAA-зависимостью
Слой управления активациями — движок активации с поддержкой workflow состояний
Слой управления сетевыми элементами — регистрация, блокировка, управление NE
Слой хранения — SQLite-хранилище для шаблонов, сетевых элементов, активаций, логов и алармов
Слой наблюдаемости — логи, метрики, webhook-уведомления
Ключевые компоненты:
REST API (FastAPI) — северный интерфейс элемента
eda-cli — CLI-клиент поверх API
Движок активации — workflow с состояниями CREATED → VALIDATING → ACTIVATING → ACTIVE/FAILED
Mutex по целевому NE — сериализация активаций на один сетевой элемент
Блокировка NE — перевод элемента в состояние "заблокирован" с автоматическим возобновлением
Хранилище на базе SQLite
Программное обеспечение функционирует в следующих режимах:
Режим ожидания:
HTTP-сервер прослушивает заданные порты (API, метрики, healthcheck)
Шаблоны активаций, сетевые элементы и активации загружены из хранилища и готовы к обработке запросов
Режим обработки запросов:
Прием и разбор входящих API-запросов
Валидация входных данных
Передача запросов в слой бизнес-логики
Формирование ответов с актуальными кодами результата
Режим выполнения активаций:
Движок активации последовательно выполняет шаги workflow
Отслеживание состояния активации
Обновление статуса в хранилище
Формирование лога выполнения шагов
Отправка webhook-уведомлений по завершении
Режим конфигурирования:
Изменение параметров работы в реальном времени через переменные окружения
Динамическое изменение уровня логирования
Программа предоставляет REST API (FastAPI) с поддержкой следующих групп методов:
Шаблоны активации:
POST /templates — создание шаблона активации
GET /templates — получение списка шаблонов
GET /templates/{id} — получение шаблона по идентификатору
DELETE /templates/{id} — удаление шаблона
Сетевые элементы:
POST /network-elements — регистрация сетевого элемента
GET /network-elements — получение списка сетевых элементов
GET /network-elements/{id} — получение сетевого элемента по идентификатору
DELETE /network-elements/{id} — удаление сетевого элемента
POST /network-elements/{id}/block — перевод в maintenance mode
POST /network-elements/{id}/unblock — снятие блокировки
Активации:
POST /activations — запуск активации
POST /activations/batch — пакетная активация
GET /activations — получение списка активаций
GET /activations/{id} — получение активации по идентификатору
GET /activations/{id}/status — получение текущего статуса
GET /activations/{id}/logs — получение лога выполнения
POST /activations/{id}/deactivate — деактивация
POST /activations/{id}/retry — повторная попытка после сбоя
DELETE /activations/{id} — удаление записи
Алармы:
GET /alarms — получение списка алармов
POST /alarms/{id}/clear — снятие аларма
Системные:
GET /health — проверка состояния
GET /version — получение версии
GET /metrics — получение метрик в формате Prometheus
Программа предоставляет CLI-клиент (eda-cli) с поддержкой следующих команд:
Системные команды:
eda-cli health — проверка состояния элемента
Команды управления шаблонами:
eda-cli template create — создание шаблона активации
eda-cli template list — вывод списка шаблонов
Команды управления сетевыми элементами:
eda-cli ne register — регистрация сетевого элемента
eda-cli ne block — блокировка сетевого элемента
eda-cli ne unblock — снятие блокировки
Команды управления активациями:
eda-cli activation create — запуск активации с ожиданием завершения
eda-cli activation status — просмотр статуса активации
eda-cli activation logs — просмотр лога выполнения
eda-cli activation deactivate — деактивация сервиса
eda-cli activation retry — повторная попытка после сбоя
eda-cli activation list — вывод списка активаций
eda-cli activation batch — пакетная активация
Команды управления алармами:
eda-cli alarm list — вывод списка алармов
eda-cli alarm clear — снятие аларма
Текущая реализация включает:
REST API (FastAPI) — основной интерфейс управления
CLI (eda-cli) — тонкий клиент поверх REST API
Интерактивная документация OpenAPI (Swagger UI) — доступна по адресу /docs
Prometheus-метрики — доступны по адресу /metrics
Healthcheck — доступен по адресу /health
Программное обеспечение предоставляет CLI-интерфейс с поддержкой следующих возможностей:
Команды мониторинга состояния:
health — проверка состояния элемента
template list — вывод списка шаблонов активаций
activation list — вывод списка активаций
activation status <id> — просмотр статуса активации
activation logs <id> — просмотр лога выполнения шагов
alarm list — вывод списка алармов
Команды управления:
template create — создание шаблона активации
ne register — регистрация сетевого элемента
ne block / unblock — управление блокировкой сетевого элемента
activation create — запуск активации
activation deactivate — деактивация сервиса
activation retry — повторная попытка после сбоя
activation batch — пакетная активация
alarm clear — снятие аларма
Дополнительные возможности:
Поддержка JSON-вывода для скриптов и интеграций (флаг --json)
Поддержка ожидания завершения активации (флаг --wait)
Параметризация активаций через --params
Программное обеспечение поддерживает следующие параметры настройки через переменные окружения:
Параметры сети и идентификации:
EDA_API_URL — URL API-сервера (по умолчанию http://localhost:8080)
EDA_API_KEY — секретный ключ для аутентификации (опционально)
Параметры сервера:
HOST — хост для запуска сервера (по умолчанию 0.0.0.0)
PORT — порт для запуска сервера (по умолчанию 8080)
Параметры хранения:
EDA_DB_PATH — путь к файлу SQLite базы данных
Параметры выполнения:
Автоматический retry — максимальное количество попыток и пауза между ними
Параметры активации — передаются в момент запуска через JSON
При запуске программа автоматически загружает конфигурацию из переменных окружения.
Параметры активации передаются через JSON-файлы при создании активации (флаг --file).
Поддерживается загрузка пакетных активаций из файлов (batch_activation.json).
Программное обеспечение поддерживает вывод логов выполнения активаций:
Логи шагов активации доступны через API и CLI
Поддерживается потоковый вывод логов (флаг -f)
Формат логов содержит временную метку, шаг выполнения и статус
Все события активаций сохраняются в хранилище и доступны через API и CLI.
Лог выполнения активации включает:
Последовательность выполненных шагов
Статус каждого шага (успех / ошибка)
Временные метки выполнения
Количество попыток при автоматическом retry
Шаблон активации определяет последовательность шагов для активации сервиса. В текущей реализации структура шаблона включает:
Идентификатор шаблона (id)
Название шаблона (name)
Список шагов (steps) с указанием порядка выполнения
Поддерживается:
Создание шаблона через CLI и API
Создание шаблона из JSON-файла
Просмотр списка шаблонов
Удаление шаблона
Хранилище сетевых элементов предназначено для управления целевыми элементами активации. В текущей реализации структура включает:
Идентификатор сетевого элемента (id)
Название сетевого элемента (name)
Тип сетевого элемента (type)
IP-адрес сетевого элемента (ip)
Состояние блокировки (blocked)
Поддерживается:
Регистрация нового сетевого элемента
Просмотр списка сетевых элементов
Удаление сетевого элемента
Блокировка сетевого элемента (maintenance mode)
Снятие блокировки с автоматическим возобновлением HELD-активаций
Хранилище активаций предназначено для отслеживания состояния активаций. В текущей реализации поддерживаются состояния:
CREATED — активация создана
VALIDATING — выполняется валидация
ACTIVATING — выполняется активация
ACTIVE — активация успешно завершена
FAILED — активация завершилась с ошибкой
DEACTIVATED — активация деактивирована
HELD — активация ожидает разблокировки сетевого элемента
Особенности управления активациями:
Автоматический retry до 3 раз с паузой между попытками
Mutex по целевому сетевому элементу — конкурентные активации сериализуются
При блокировке NE новые активации встают в HELD и автоматически возобновляются при разблокировке
Webhook-уведомления по завершении активации
Пакетная активация с независимой обработкой каждого элемента
Алармы автоматически генерируются при окончательном сбое активации (после исчерпания всех попыток auto-retry). Структура аларма включает:
Идентификатор аларма (id)
Идентификатор активации (activation_id)
Время создания (created_at)
Состояние (активен / снят)
Поддерживается:
Просмотр списка алармов с фильтрацией по активным
Снятие аларма
Программное обеспечение поддерживает сборку через следующие способы:
Локальная установка через pip (pip install -e ".[dev]")
Docker-образ с готовым окружением
Развертывание на OpenStack через Heat-шаблон
Программное обеспечение проходит следующие виды тестирования:
Модульные тесты (unit tests) для движка активации, хранилища, метрик
Интеграционные тесты для сценариев жизненного цикла активаций (успех / сбой / retry / деактивация)
API-тесты для проверки REST API (жизненный цикл шаблонов, NE, активаций)
CLI-тесты (end-to-end через реальный HTTP-сервер)
Тесты mutex по целевому NE и блокировки NE с возобновлением HELD
Тесты auto-retry с алармами
Тесты webhook-уведомлений
Тесты пакетной активации
Тесты /metrics и аутентификации по API-ключу
Общее количество тестов — 27.
Расширение набора поддерживаемых сценариев активации
Разработка эталонных сценариев для регрессионной проверки
Воспроизводимые сценарии с документированными командами запуска
Матрица сборок для Windows (MSVC/MinGW) и Linux
Публикация тестовых логов и артефактов при падениях
Конвейер статического анализа
Бенчмарки латентности обработки запросов
Расширенные метрики (гистограммы латентности, счетчики ошибок по типам)
Автоматическая проверка регрессий производительности
Валидация и лимиты для API-интерфейсов (размер полезной нагрузки, частота запросов)
Негативные и fuzz-тесты для путей парсеров
Модель угроз и документация
Текущая реализация:
{
"id": "string",
"name": "string",
"steps": ["step1", "step2", "step3"]
}
Текущая реализация:
{
"id": "string",
"name": "string",
"type": "string",
"ip": "string",
"blocked": false
}
Текущая реализация:
{
"id": "string",
"template_id": "string",
"ne_id": "string",
"status": "CREATED | VALIDATING | ACTIVATING | ACTIVE | FAILED | DEACTIVATED | HELD",
"params": {},
"logs": [],
"webhook": "string",
"auto_retry_max": 3,
"auto_retry_backoff": 2,
"created_at": "timestamp",
"updated_at": "timestamp"
}
Текущая реализация:
{
"id": "string",
"activation_id": "string",
"created_at": "timestamp",
"active": true
}
Информация
Адрес
242504
Брянская область
Карачевский район, Вишневка
Молодёжная улица, 33
Быстрый переход
Информация
Отдел продаж
+7 (953) 284-42-23
sales@ericssonsoftware.ru
Адрес
242504
Брянская область,
Карачевский район,
Вишневка, Молодёжная улица, 33