Архитектура системы
Диаграмма системной архитектуры показывает взаимодействие между различными компонентами, базами данных и внешними системами. Ниже представлены основные компоненты и их функции.
Agent
Описание: Агент отвечает за сбор информации о состоянии различных компонентов системы и выполнение рекомендаций, поступающих от других модулей. Он работает на стороне Octopus, используя API гипервизора, без необходимости установки дополнительного программного обеспечения непосредственно на гипервизоре.
Функции:
- Сбор данных через API гипервизора (или оркестратора гипервизора). Агент собирает информацию о топологии — описание объектов системы и связей между ними, правила системы (например, affinity и anti-affinity) и показатели производительности.
- Выполнение рекомендаций: Агент получает рекомендации от модуля анализа и выполняет их. Например, перемещение сущностей или реконфигурация ресурсов.
- Отчетность: Агент отправляет собранные данные и результаты выполненных действий обратно в систему для дальнейшего анализа и хранения.
Analysis
Описание: Модуль анализа занимается созданием математических моделей на основе собранных данных и генерирует рекомендации для улучшения работы системы.
Функции:
- Анализ данных: Анализирует данные, полученные от агентов, чтобы выявить аномалии, узкие места и потенциальные проблемы.
- Создание моделей: Создает математические модели, которые помогают предсказывать поведение системы и оптимизировать ее работу.
- Генерация рекомендаций: На основании результатов анализа создает рекомендации для агентов, которые затем будут выполнены.
ClickHouse
Описание: ClickHouse используется для хранения метрик объектов окружения, обеспечивая высокую производительность при работе с большими объемами данных.
Функции:
- Хранение метрик: Хранит временные ряды метрик, такие как CPU загрузка, использование памяти, сетевой трафик и т.д., что позволяет отслеживать изменения состояния объектов окружения.
- Быстрая обработка запросов: Обеспечивает быструю обработку аналитических запросов благодаря своей колонковой структуре хранения данных и оптимизации для OLAP-задач.
- Масштабируемость: Поддерживает горизонтальное масштабирование для обработки больших объемов данных.
Orchestrator
Описание: Оркестратор управляет рабочими процессами всей системы, координируя взаимодействие между различными модулями.
Функции:
- Планирование задач: Определяет последовательность выполнения задач и распределяет их между агентами и другими модулями.
- Мониторинг выполнения: Отслеживает статус выполнения задач и обеспечивает своевременную реакцию на сбои или задержки.
- Управление ресурсами: Управляет распределением ресурсов между задачами, чтобы обеспечить оптимальное использование инфраструктуры.
Postgres
Описание: PostgreSQL используется для хранения собранной топологии и объектов системы.
Функции:
- Хранение топологии: Хранит информацию о взаимосвязях между объектами системы, включая физические и логические связи.
- Хранение объектов: Хранит данные о самих объектах системы, таких как сервера, приложения, базы данных и т.д.
- Поддержка транзакций: Обеспечивает целостность данных и поддерживает ACID-транзакции.
- Интеграция с другими системами: Позволяет легко интегрироваться с другими инструментами и сервисами через стандартные SQL-запросы.
Repository
Описание: Репозиторий предназначен для предварительной обработки и сохранения "сырых" данных, полученных от агентов.
Функции:
- Хранение "сырых" данных: Сохраняет все исходные данные, переданные агентами, без предварительной обработки.
- Архивирование: Обеспечивает долгосрочное хранение данных для последующего анализа и аудита.
- Доступ к данным: Предоставляет доступ к хранимым данным другим модулям системы для дальнейшей обработки и анализа.
Topology Worker
Описание: Этот модуль отвечает за подготовку информации об окружении, полученной от агентов, к дальнейшему анализу. Он обрабатывает сырые данные, обогащая их дополнительными метаданными и структурируя таким образом, чтобы они могли быть использованы для построения графовых моделей и анализа зависимостей между элементами системы.
Основные функции:
- Парсинг и нормализация данных: Топологический воркер принимает сырые данные от агентов и проводит первичную обработку, нормализуя форматы и устраняя возможные ошибки.
- Агрегация данных: Объединение данных из разных источников в единую модель топологии. Это включает объединение информации о физических и логических связях между элементами системы, а также обогащает собранные данные метриками из различных доступных источников.
- Добавление метаданных: Обогащение топологических данных дополнительной информацией, такой как типы оборудования, версии ПО и другие важные характеристики.
- Построение графа: Построение графовой модели топологии, которая отражает зависимости и взаимосвязи между элементами системы. Эта модель может использоваться для анализа путей передачи данных, поиска слабых звеньев и выявления потенциальных проблем.
- Предварительный анализ: Проведение базового анализа топологии для выявления очевидных ошибок или несоответствий, а также подготовка данных для дальнейшего глубокого анализа.
UI
Описание: Интерфейс пользователя является основным средством взаимодействия оператора с системой. Он предоставляет удобные инструменты для мониторинга состояния системы, анализа данных и управления настройками.
Основные функции:
- Мониторинг в реальном времени: Визуализация текущих показателей системы, таких как нагрузка на серверы, состояние сетей, использование ресурсов и т.д. Пользователь может видеть динамику изменений и быстро реагировать на возникающие проблемы.
- Анализ исторических данных: Возможность просмотра архивированных данных и проведения ретроспективного анализа для выявления закономерностей и тенденций.
- Настройка уведомлений и алертов: Конфигурирование правил для отправки уведомлений и алертов при достижении определенных пороговых значений или обнаружении аномалий.
- Панель управления: Интуитивная панель управления, позволяющая оператору изменять настройки системы, запускать новые процессы, останавливать текущие задачи и выполнять другие административные операции.
- Репортаж и отчетность: Генерация отчетов по различным аспектам работы системы, включая производительность, доступность, безопасность и т.д.
External API:
Описание: Внешний API предоставляет интерфейс для взаимодействия с внешними системами, такими как платформы виртуализации, облачные провайдеры и поставщики данных. Он позволяет системе получать актуальные данные и выполнять необходимые действия вне пределов собственной инфраструктуры.
Основные функции:
- Интеграция с платформами виртуализации: Получение данных о состоянии виртуальных машин, сетях и хранилищах, а также выполнение команд по изменению их параметров (например, увеличение объема оперативной памяти).
- Работа с облачными провайдерами: Интеграция с публичными облаками для получения информации о ресурсах и управлении ими.
- Получение данных от поставщиков: Сбор данных от сторонних поставщиков, таких как метеорологические службы, социальные сети и другие источники, которые могут влиять на работу системы.
- Автоматическое обновление: Регулярное обновление данных и выполнение необходимых действий на основе изменяющихся условий внешней среды.