Перейти к содержанию

Архитектура системы

Диаграмма системной архитектуры показывает взаимодействие между различными компонентами, базами данных и внешними системами. Ниже представлены основные компоненты и их функции.

Скриншот15.03.15.png

Agent

Описание: Агент отвечает за сбор информации о состоянии различных компонентов системы и выполнение рекомендаций, поступающих от других модулей. Он работает на стороне Octopus, используя API гипервизора, без необходимости установки дополнительного программного обеспечения непосредственно на гипервизоре.

Функции:

  • Сбор данных через API гипервизора (или оркестратора гипервизора). Агент собирает информацию о топологии — описание объектов системы и связей между ними, правила системы (например, affinity и anti-affinity) и показатели производительности.
  • Выполнение рекомендаций: Агент получает рекомендации от модуля анализа и выполняет их. Например, перемещение сущностей или реконфигурация ресурсов.
  • Отчетность: Агент отправляет собранные данные и результаты выполненных действий обратно в систему для дальнейшего анализа и хранения.

Analysis

Описание: Модуль анализа занимается созданием математических моделей на основе собранных данных и генерирует рекомендации для улучшения работы системы.

Функции:

  • Анализ данных: Анализирует данные, полученные от агентов, чтобы выявить аномалии, узкие места и потенциальные проблемы.
  • Создание моделей: Создает математические модели, которые помогают предсказывать поведение системы и оптимизировать ее работу.
  • Генерация рекомендаций: На основании результатов анализа создает рекомендации для агентов, которые затем будут выполнены.

ClickHouse

Описание: ClickHouse используется для хранения метрик объектов окружения, обеспечивая высокую производительность при работе с большими объемами данных.

Функции:

  • Хранение метрик: Хранит временные ряды метрик, такие как CPU загрузка, использование памяти, сетевой трафик и т.д., что позволяет отслеживать изменения состояния объектов окружения.
  • Быстрая обработка запросов: Обеспечивает быструю обработку аналитических запросов благодаря своей колонковой структуре хранения данных и оптимизации для OLAP-задач.
  • Масштабируемость: Поддерживает горизонтальное масштабирование для обработки больших объемов данных.

Orchestrator

Описание: Оркестратор управляет рабочими процессами всей системы, координируя взаимодействие между различными модулями.

Функции:

  • Планирование задач: Определяет последовательность выполнения задач и распределяет их между агентами и другими модулями.
  • Мониторинг выполнения: Отслеживает статус выполнения задач и обеспечивает своевременную реакцию на сбои или задержки.
  • Управление ресурсами: Управляет распределением ресурсов между задачами, чтобы обеспечить оптимальное использование инфраструктуры.

Postgres

Описание: PostgreSQL используется для хранения собранной топологии и объектов системы.

Функции:

  • Хранение топологии: Хранит информацию о взаимосвязях между объектами системы, включая физические и логические связи.
  • Хранение объектов: Хранит данные о самих объектах системы, таких как сервера, приложения, базы данных и т.д.
  • Поддержка транзакций: Обеспечивает целостность данных и поддерживает ACID-транзакции.
  • Интеграция с другими системами: Позволяет легко интегрироваться с другими инструментами и сервисами через стандартные SQL-запросы.

Repository

Описание: Репозиторий предназначен для предварительной обработки и сохранения "сырых" данных, полученных от агентов.

Функции:

  • Хранение "сырых" данных: Сохраняет все исходные данные, переданные агентами, без предварительной обработки.
  • Архивирование: Обеспечивает долгосрочное хранение данных для последующего анализа и аудита.
  • Доступ к данным: Предоставляет доступ к хранимым данным другим модулям системы для дальнейшей обработки и анализа.

Topology Worker

Описание: Этот модуль отвечает за подготовку информации об окружении, полученной от агентов, к дальнейшему анализу. Он обрабатывает сырые данные, обогащая их дополнительными метаданными и структурируя таким образом, чтобы они могли быть использованы для построения графовых моделей и анализа зависимостей между элементами системы.

Основные функции:

  • Парсинг и нормализация данных: Топологический воркер принимает сырые данные от агентов и проводит первичную обработку, нормализуя форматы и устраняя возможные ошибки.
  • Агрегация данных: Объединение данных из разных источников в единую модель топологии. Это включает объединение информации о физических и логических связях между элементами системы, а также обогащает собранные данные метриками из различных доступных источников.
  • Добавление метаданных: Обогащение топологических данных дополнительной информацией, такой как типы оборудования, версии ПО и другие важные характеристики.
  • Построение графа: Построение графовой модели топологии, которая отражает зависимости и взаимосвязи между элементами системы. Эта модель может использоваться для анализа путей передачи данных, поиска слабых звеньев и выявления потенциальных проблем.
  • Предварительный анализ: Проведение базового анализа топологии для выявления очевидных ошибок или несоответствий, а также подготовка данных для дальнейшего глубокого анализа.

UI

Описание: Интерфейс пользователя является основным средством взаимодействия оператора с системой. Он предоставляет удобные инструменты для мониторинга состояния системы, анализа данных и управления настройками.

Основные функции:

  • Мониторинг в реальном времени: Визуализация текущих показателей системы, таких как нагрузка на серверы, состояние сетей, использование ресурсов и т.д. Пользователь может видеть динамику изменений и быстро реагировать на возникающие проблемы.
  • Анализ исторических данных: Возможность просмотра архивированных данных и проведения ретроспективного анализа для выявления закономерностей и тенденций.
  • Настройка уведомлений и алертов: Конфигурирование правил для отправки уведомлений и алертов при достижении определенных пороговых значений или обнаружении аномалий.
  • Панель управления: Интуитивная панель управления, позволяющая оператору изменять настройки системы, запускать новые процессы, останавливать текущие задачи и выполнять другие административные операции.
  • Репортаж и отчетность: Генерация отчетов по различным аспектам работы системы, включая производительность, доступность, безопасность и т.д.

External API:

Описание: Внешний API предоставляет интерфейс для взаимодействия с внешними системами, такими как платформы виртуализации, облачные провайдеры и поставщики данных. Он позволяет системе получать актуальные данные и выполнять необходимые действия вне пределов собственной инфраструктуры.

Основные функции:

  • Интеграция с платформами виртуализации: Получение данных о состоянии виртуальных машин, сетях и хранилищах, а также выполнение команд по изменению их параметров (например, увеличение объема оперативной памяти).
  • Работа с облачными провайдерами: Интеграция с публичными облаками для получения информации о ресурсах и управлении ими.
  • Получение данных от поставщиков: Сбор данных от сторонних поставщиков, таких как метеорологические службы, социальные сети и другие источники, которые могут влиять на работу системы.
  • Автоматическое обновление: Регулярное обновление данных и выполнение необходимых действий на основе изменяющихся условий внешней среды.