В нашей организации разрабатывается облачная платформа – Self-Organized Cloud (SOC).
Проект направлен на реализацию собственной уникальной технологии управления (оркестрации) виртуальными облачными сетями (тенантами), состоящими из виртуальных серверов, сетевых устройств и хранилищ данных, с возможностью задания различной сетевой топологии. При описании виртуальной сети пользователь может использовать различную элементную базу.
Платформа SOC использует в качестве основы отдельные компоненты OpenStack (Nova, Keystone, Glance, включая собственные модификации компонентов Neutron и Cinder) в сочетании с оригинальным специализированным ПО: SDN контроллер, оркестратор, единый планировщик согласованного распределения ресурсов, система графического задания виртуальной сети, система контроля физических ресурсов.
Виртуализация сети в SOC имеет ряд существенных уникальных свойств:
1. Владелец сети может задать произвольную топологию виртуальной сети.
2. Пользователь может перенести собственный образ системы в облако за счет реализации подхода 'Bring Your Own Image' (BYOI).
3. Элементом сети может служить виртуальная сетевая функция (VNF). В частности, есть возможность предоставить VNF, созданную и поддерживаемую в одной сети для другой сети.
4. Пользователь может зафиксировать SLA для элементов виртуальной сети, например, пропускную способность виртуального канала или параметры производительности VNF.
VNF – виртуальная сетевая функция. Примерами VNF являются: Loadbalancer, Firewall, VPN, CDN, IMS и т.д. Основным преимуществом как для владельцев облака, так и для клиентов, является отсутствие привязки собственной инфраструктуры к конкретным физическим устройствам. Следовательно, пользователям предоставляется удобный и функциональный инструмент, при этом им нет необходимости разбираться в тонкостях настройки: тот же маршрутизатор достаточно просто подключить к необходимым сетям, основная настройка произойдет автоматически.
Однако перед разработчиками системы управления облачной инфраструктуры стоит нетривиальная задача - как организовать подписку своих пользователей на различные виртуальные сетевые функции. Сложность состоит в том, что сервисы могут быть комплексными и собираться в так называемые "цепочки сетевых функций".
В докладе предлагается рассмотреть реализацию объектно-ориентированного подхода (ООП) для организации NFV в платформе управления облачными ресурсами. Данная платформа управляет ресурсами в терминах виртуальных сетей (тенантов). Процесс подписки тенанта на конкретную VNF имеет много общих черт с наследованием классов в ООП, а реализация VNF с реализацией метода в классе. Проведение этих и других аналогий с абстракциями ООП (класс, метод, поля данных и т.д.) позволяет по-другому взглянуть на процесс организации NFV, делая его "прозрачным" как для программистов, так и для сетевых администраторов, а также расширяемым и масштабируемым.
Мы называем данный подход ОО NFV (по аналогии ООП). Данный подход был разработан и реализован в рамках проекта SOC (разрабатываемый в ЦПИКС). В докладе предлагается рассмотреть прототипы простейших виртуальных сетевых функций – функцию "пинга" (ping-VNF), функцию подключения ПКС контроллера (SDN-controller-VNF). На базе этих двух функций продемонстрировать возможность построения цепочек VNF (ping-VNF + SDN-controller-VNF). Обсудить планы дальнейших исследований и разработок.