VK Cloud logo
Обновлена 3 апреля 2024 г. в 09:44

Архитектура сервиса

Чем оперирует сервис

Сервис Cloud Networks состоит из двух слоев:

  1. Программно-определяемая сеть (software-defined network, SDN).
  2. Виртуализованные сетевые функции (Network Function Virtualization, NFV).

На слое SDN сервис позволяет работать с базовыми сущностями:

  • Сети.
  • Подсети.
  • Порты. Порт OpenStack эквивалентен комбинации порта виртуального коммутатора (switch), подключенного к виртуальной сетевой карте, и IP-адреса из некоторой подсети, назначенного этой сетевой карте.

На слое NFV с помощью SDN реализуются следующие сущности:

  • Стандартные маршрутизаторы для связи нескольких подсетей между собой и организации доступа в интернет.
  • Балансировщики нагрузки для распределения входящего трафика по нескольким экземплярам сервисов платформы VK Cloud.
  • Файервол с группами правил для ограничения трафика к определенным сервисам платформы. Группы правил назначаются на уровне отдельных портов.
  • VPN для связи подсетей VK Cloud с клиентскими подсетями.

Продвинутые маршрутизаторы реализуются с помощью специализированных виртуальных машин без участия SDN.

Используемые SDN

Для работы с объектами SDN и NFV используется Openstack Neutron API. Расположенные на хостах агенты получают запросы через API и создают или изменяют объекты, нужные для работы SDN или NFV.

В качестве SDN платформа VK Cloud использует:

  • Openstack Neutron.

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

    • C синхронизацией работы множества агентов, которые не хранят свое состояние.
    • С большим количеством событий из-за переусложненного уровня передачи данных (dataplane).
    • C потерей этих событий в очереди RabbitMQ из-за их большого количества. Эта очередь выполняет роль транспорта для передачи событий сервисов.
  • Sprut, SDN собственной разработки VK Cloud, полностью совместимый с Openstack Neutron API.

    Он лишен перечисленных недостатков Openstack Neutron. Sprut обеспечивает стабильную работу сетей и сетевых функций поверх этих сетей на больших масштабах. Его преимущества:

    • Вместо очереди сообщений используется HTTP REST API.
    • Все агенты хранят свое текущее состояние. Агенты получают от SDN-контроллера целевое состояние, в котором они должны быть, и приводят свое состояние к требуемому.
    • Выбрана многоуровневая архитектура, позволившая упростить уровень передачи данных и настраивать его более гибко.
    • Используется продвинутый маршрутизатор с поддержкой статической и динамической маршрутизации.
    • Доступна организация выделенных подключений между локальной сетью клиентов и VK Cloud — Cloud Direct Connect.

    Дополнительные материалы о Sprut: