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

Микросервисная архитектура

NOC построен на основе микросервисной архитектуры. Атомные части NOC - это микросервисы (или просто сервисы) - небольшие процессы, выполняющие свою собственную задачу. У микросервисов есть следующие свойства:

  • Каждый сервис выполняет только одну конкретную задачу
  • У каждого сервиса хорошо определен контракт (интерфейс, предоставляемый другим сервисам)
  • Сервисы просты
  • Сервис может запрашивать другие сервисы
  • Новые сервисы могут быть добавлены без ущерба для существующих
  • У каждого сервиса есть определенные требования к ресурсам, включая процессор, RAM, дисковое пространство и IOPS. Это предоставляет прозрачный процесс масштабирования в соответствии с вашей нагрузкой.

NOC группирует сервисы следующим образом:

  • Сервисы хранения - базы данных и файловые хранилища, содержащие состояние или контекст NOC. Состояние должно сохраняться между перезапусками. Только службы хранения имеют право записи на диск. У других служб нет глобального контекста и их можно перемещать между узлами кластера.
  • Сервисы пользовательского интерфейса - бэкенд для пользовательского интерфейса
  • Сервисы пула - взаимодействуют с сетью. Можно развернуть несколько пулов, чтобы работать с разными частями сети.
  • Сервисы интеграции - барьер между NOC и внешним миром. Службы, такие как nbi и datastream, предоставляют интеграционные интерфейсы для доступа к данным NOC и выполнения основных операций, инициированных внешними системами. Другие службы могут запрашивать различные внешние системы для обеспечения бесшовной интеграции.
  • Внешние службы - часть NOC самого по себе. Различные существующие системы могут предоставлять услуги для NOC или использовать службы NOC самостоятельно.

Общий обзор NOC представлен на следующей картине:

Обзор сервисов

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

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