Система и способ создания сервисных цепочек и виртуальных сетей в облаке

Иллюстрации

Показать все

Изобретение относится к области облачных вычислений. Техническим результатом является создание виртуальных сетей. Способ создания виртуальных сетей, выполняемый облачным компонентом, содержит: через графический пользовательский интерфейс получают от пользователя сетевую диаграмму виртуальной сети, причем сетевая диаграмма содержит элементы, каждый из которых представляет сетевой компонент; проверяют правильность сетевой диаграммы; после успешной проверки правильности сетевой диаграммы компилируют сетевую диаграмму в вызовы прикладного программного интерфейса (API); выполняют вызовы API и, используя выполняемые вызовы API, устанавливают виртуальную сеть в соответствии с сетевой диаграммой, причем виртуальная сеть содержит компоненты виртуальной сети, соответствующие элементам сетевой диаграммы. 3 н. и 17 з.п. ф-лы, 5 ил.

Реферат

Настоящая заявка устанавливает преимущество предварительной заявки на патент США №41/191 526 от 27 февраля 2014 г. "Система и способ создания сервисных цепочек и виртуальных сетей в облаке", которая включена в этот документ посредством ссылки.

Область техники, к которой относится изобретение

Настоящее изобретение относится к области облачных вычислений и, в отдельных вариантах осуществления, к системе и способу создания сервисных цепочек и виртуальных сетей в облаке.

Уровень техники

Типовые облачные сети для облачных вычислений и служб обычно состоят из множества ярусов, и их называют n-ярусными. На каждом ярусе расположены компьютеры или процессоры, выполняющие специфические функции. Кроме того, сетевые ярусы обычно отделены друг от друга, помимо прочего, такими компонентами сети, как межсетевые экраны и балансировщики нагрузки. Примером n-ярусной сети является 3-ярусная сеть, которая включает в себя ярус веб-узлов, ярус приложений и ярус баз данных, соединенные последовательно с общедоступной сетью, например с Интернет. Каждый ярус закрыт межсетевым экраном, который защищает один ярус от другого. Обычно n-ярусные облачные сети и службы создают с использованием командных строк, предварительно сконфигурированных форм ввода или их сочетаний. Веб-службы, такие как Amazon ЕС2™ (эластичное компьютерное облако) и OpenStack™, являются примерами таких подходов к построению n-ярусных облачных сетей для облачных приложений и служб. Эти веб-сервисы доступны потребителям для построения своих собственных облачных сетей и служб. Это включает в себя создание групп безопасности (SG), каждая из которых содержит набор списков управления доступом (ACL). Созданные SG можно применить к виртуальным машинам (VM) в физической сети для виртуализации n-ярусных сетей. Использование таких веб-сервисов и похожих форматов командных строк и форм ввода для создания n-ярусных сетей и сервисов может быть сложным и требующим времени и издержек процессом. Имеет место потребность в более простой системе и способе создания n-ярусных или виртуальных облачных сетей и сервисных цепочек, которые решат такие проблемы.

Сущность изобретения

В соответствии с вариантом осуществления изобретения способ, выполняемый компонентом облачной обработки, создания виртуальных сетей включает в себя следующее: от пользователя через графический пользовательский интерфейс принимают сетевую диаграмму для виртуальной сети. Сетевая диаграмма содержит элементы, причем каждый элемент представляет сетевой компонент. Способ также включает в себя следующее: проверяют правильность сетевой диаграммы и после успешной проверки правильности сетевой диаграммы компилируют сетевую диаграмму в вызовы прикладного программного интерфейса (API). Затем выполняют вызовы API. С использованием выполняемых вызовов API устанавливают виртуальную сеть в соответствии с сетевой диаграммой. Виртуальная сеть содержит компоненты виртуальной сети, соответствующие элементам сетевой диаграммы.

В соответствии с другим вариантом осуществления изобретения способ, выполняемый пользователем, создания виртуальных сетей включает в себя следующее: через графический пользовательский интерфейс платформы облачных вычислений вводят сетевую диаграмму, представляющую виртуальную сеть. Сетевая диаграмма содержит элементы, причем каждый элемент представляет сетевой компонент. Сетевая диаграмма позволяет платформе облачных вычислений, используя вызовы прикладного программного интерфейса (API), установить виртуальную сеть. Виртуальная сеть содержит компоненты виртуальной сети, соответствующие элементам сетевой диаграммы.

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

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

Краткое описание чертежей

Для более полного понимания настоящего изобретения и его преимуществ теперь будет сделана ссылка на последующее описание, взятое в сочетании с сопровождающими чертежами, на которых:

на фиг. 1 показан пример 3-ярусной облачной сети;

на фиг. 2 показан вариант осуществления создания n-ярусных сетей с сервисными цепочками в облаке;

на фиг. 3 показан вариант осуществления создания n-ярусных сетей через графический пользовательский интерфейс;

на фиг. 4 показан вариант осуществления способа создания n-ярусных сетей; и

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

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

Подробное описание вариантов осуществления изобретения

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

На фиг. 1 показан пример 3-ярусной сети 100, который включает в себя ярус 110 веб-узлов, ярус 120 приложений и ярус 130 баз данных. Ярусы выходят в сеть 140 общего пользования, например, в Интернет. В каждом ярусе находятся компьютеры, процессоры или серверы, на которых выполняются специфические функции соответствующего яруса. Каждый ярус также закрыт компонентом или функцией межсетевого экрана, который защищает соответствующий ярус от внешних компонентов (других ярусов и сети общего доступа). Обычно для того чтобы начертить сетевую диаграмму 3-ярусных или n-ярусных сетей, можно использовать такие программные инструменты, как Microsoft Visio™, или инструменты сетевого планирования, такие как OpNET™. Диаграмму используют в качестве инструкции для пользователя (например, системного инженера), чтобы выбрать и подключить подходящее сетевое оборудование и сервера для установления n-ярусной сети. Обычно для построения n-ярусных виртуальных сетей в облаке, используя программный инструмент, такой как ЕС2™, создают группы элементов, такие как группы безопасности (SG). Затем добавляют правила политики, например, посредством списков управления доступом (ACL), для трафика каждой SG. Например, для 2-ярусной сети создают две SG, WebServerSG и DBServerSG. Затем добавляют ACL для входящего и исходящего трафика для каждой SG. Затем устанавливают виртуальные машины (VM) для каждого яруса и используют их для применения SG.

При быстрой адаптации облачных вычислений потребители должны быть способны удобным образом конструировать n-ярусные сети в облаке, чтобы перенести или имитировать свое локальное окружение. Тем не менее, существующие платформы облачных вычислений, такие как Amazon ЕС2™ и OpenStack™, включают в себя ограниченные пользовательские интерфейсы для создания виртуальных сетей, как, например, использование форм ввода и командных строк. В этом документе предложены варианты осуществления для создания сервисных цепочек и виртуальных сетей, таких как n-ярусные сети, в облаке. Варианты осуществления включают в себя системы и способы построения виртуальных сетей в облаке с использованием дружественной методологии рисования сетевых диаграмм и пользовательского интерфейса. Используя схемы, поставщик услуг облачных вычислений может предоставить дружественное к пользователю самообслуживание, что позволяет его клиентам легко создавать виртуальные сети в облаке, которые имитируют их существующие локальные физические сети.

На фиг. 2 показан вариант осуществления схемы 200 для создания виртуальных сетей, таких как n-ярусные сети с сервисными цепочками в облаке. Пользователь может сначала войти в платформу/систему управления облаком через облачный портал, например, через веб-сайт или сервис. Затем пользователь рисует сетевую диаграмму, представляющую n-ярусную сеть. Каждый из ярусов предоставляет сервис. В этом сценарии, в эту последовательность соединено 3 сервиса, включая сервис баз данных, сервис приложений и веб-сервис, образуя, таким образом, сервисную цепочку. Сетевая диаграмма может включать в себя любые подходящие сетевые компоненты, которые имитируют или соответствуют сетевым компонентам, таким как концентраторы, маршрутизаторы, другие служебные устройства, линии связи и/или другие сетевые компоненты. Сетевая диаграмма также отражает действительную предполагаемую топологию виртуальной сети, как, например, иерархия/последовательность межсоединений между различными компонентами. Процесс рисования сетевой диаграммы является интерактивным с той точки зрения, что система может запросить у пользователя ввод, а также предоставить обратную связь в соответствии с действиями пользователя.

Сетевую диаграмму рисуют, используя графический пользовательский интерфейс (GUI), который является частью платформы/системы управления облаком. GUI может быть предоставлен программным инструментом или веб-сервисом. После утверждения сетевой диаграммы, которая представляет n-ярусную сеть, система может проверить правильность сетевой диаграммы. Если сетевая диаграмма проходит процесс проверки, то система компилирует сетевую диаграмму в вызовы прикладного программного интерфейса (API). Затем вызовы API исполняются системой, чтобы сконфигурировать одну или несколько лежащих в основе физических сетей для установления виртуальной n-ярусной сети в соответствии с сетевой диаграммой пользователя. Таким образом, компоненты диаграммы отображают, по существу один к одному, на соответствующие компоненты виртуальной сети. Система знает о каждом из компонентов или элементов диаграммы и может отобразить элемент на соответствующий виртуальный элемент. Виртуальная сеть обеспечивает связность узлов сети, а также гарантирует реализацию политики. Виртуальная сеть может быть установлена в соответствии с доступной технологией виртуализации, обеспечиваемой системой или физическими сетями, такими как виртуальная локальная сеть (VLAN).

В одном варианте осуществления каждый пользователь или группа пользователей (например, в компании) изначально получает (например, заказывая) или им изначально выделен пул ресурсов, содержащий максимальное число доступных ресурсов для пользователя или группы пользователей для установления виртуальных или облачных n-ярусных сетей. Например, пул ресурсов может включать в себя максимальное число VLAN, портов коммутаторов, пересылающих узлов, полосу частот, емкость запоминающего устройства и/или другие сетевые ресурсы, доступные пользователю или группе. Общее число доступных ресурсов в пуле ресурсов, выделенном пользователю или группе пользователей, также может быть разделено (переназначено) для других отдельных пользователей или групп. Соответственно, каждый пользователь или группа использует соответствующие выделенные ресурсы для построения соответствующих виртуальных n-ярусных сетей.

На фиг. 3 показана схема 300 варианта осуществления создания виртуальных сетей, таких как n-ярусные сети, через графический пользовательский интерфейс. Как было описано выше, графический интерфейс представлен пользователю (после входа) облачной системой. В качестве примера, пользователь создает 3 логические сети (3-ярусную сеть), содержащие веб-серверы, серверы приложений и серверы баз данных, которые последовательно в этом порядке подключены к Интернет (или другой сети общего доступа). 3 яруса или логические сети создают путем рисования соответствующей диаграммы, содержащей ячейку или элемент для каждого компонента, как показано на фиг. 3. Элементы также включают в себя межсетевые экраны между логическими сетями и линии связи между элементами, как их располагает пользователь. Это завершает сетевую диаграмму. Затем пользователь может передать диаграмму в систему для построения n-ярусной сети в облаке. Затем облачная система компилирует сетевую диаграмму в вызовы API и автоматически выполняет вызовы API. Автоматически выполняемые вызовы API конфигурируют лежащую в основе физическую сеть (сети) для создания 3-ярусной виртуальной сети. Созданная виртуальная сеть обеспечивает связность узлов сети и гарантирует реализацию политики.

На фиг. 4 показан вариант осуществления способа 400 создания виртуальных сетей, таких как n-ярусные сети. На этапе 410 пользователю или группе пользователей выделяют пул ресурсов. На этапе 420 от пользователя через графический пользовательский интерфейс и облачный портал получают сетевую диаграмму n-ярусной или другой виртуальной сети. На этапе 430 система проверяет сетевую диаграмму. Процесс проверки правильности включает в себя проверку того, что пользователь не превысил допустимое число ресурсов в соответствии с выделенным пулом ресурсов. Могут применять другие правила проверки, такие как правила сетевой политики. На этапе 435 принятия решения система проверяет, является ли сетевая диаграмма правильной. Если сетевая диаграмма правильная, то способ 400 выполняет этап 450. В противном случае на этапе 440 пользователю отправляют сообщение обратной связи для корректировки сетевой диаграммы. Затем способ 200 возвращается на этап 430, ожидая пользовательского ввода. В ином случае на этапе 450 сетевую диаграмму компилируют в вызовы API. На этапе 460 выполняют вызовы API, чтобы сконфигурировать лежащую в основе физическую сеть для установления виртуальной сети с (виртуальными) компонентами, соответствующими элементам пользовательской сетевой диаграммы.

На фиг. 5 приведена блок-схема примера системы 500 обработки, которую можно использовать для реализации различных вариантов осуществления. Система обработки является частью облачной платформы/системы для создания n-ярусных сетей с сервисными цепочками, как было описано выше. Система 500 обработки может содержать процессор 501, оснащенный одним или несколькими устройствами ввода/вывода, такими как громкоговоритель, микрофон, мышь, сенсорный экран, панель клавиш, клавиатура, принтер, дисплей и т.п. Процессор 501 может включать в себя центральный процессор (CPU) 510, память 520, запоминающее устройство 530 большой емкости, видеоадаптер 540 и интерфейс 590 ввода/вывода (I/O), подключенные к шине. Шина может представлять собой шину любого из нескольких типов архитектуры шин, включающих в себя шину памяти или контроллер памяти, периферийную шину, видео шину и т.п.

CPU 510 может содержать электронный процессор для обработки данных любого типа. Память 520 может содержать системную память любого типа, например, статическую память с произвольным доступом (SRAM), динамическую память с произвольным доступом (DRAM), синхронную DRAM (SDRAM), постоянную память (ROM), их сочетание и т.п. В одном варианте осуществления память 520 может включать в себя ROM, используемую при загрузке, и DRAM для хранения программ и данных, предназначенную для использования во время выполнения программ. Запоминающее устройство 530 большой емкости может содержать запоминающее устройство любого типа, выполненное с возможностью хранить данные, программы и другую информацию, а также с возможностью делать доступными через шину данные, программы и другую информацию. Запоминающее устройство 530 большой емкости может содержать, например, один или несколько твердотельных накопителей, жестких дисков, приводов магнитных дисков, приводов оптических дисков и т.п.

Видеоадаптер 540 и интерфейс 590 I/O обеспечивают интерфейсы для подключения внешних устройств ввода и вывода к процессору. Как показано, примеры устройств ввода и вывода включают в себя дисплей 560, подключенный к видеоадаптеру 540, и любое сочетание мыши/клавиатуры/принтера 570, подключенных к интерфейсу 590 I/O. К процессору 501 могут быть подключены другие устройства, и может использоваться большее или меньшее число интерфейсных карт. Например, карта последовательного интерфейса (не показана) может использоваться для обеспечения последовательного интерфейса для принтера.

Процессор 501 также включает в себя один или несколько сетевых интерфейсов 550, которые могут содержать проводные соединения, такие как кабель Ethernet и т.п., и/или беспроводные соединения, для доступа к узлам или одной или нескольким сетям 580. Сетевой интерфейс 550 позволяет процессору 501 осуществлять связь с удаленными блоками через сети 580. Например, сетевой интерфейс 550 может обеспечивать беспроводную связь через один или несколько передатчиков/передающих антенн и один или несколько приемников/приемных антенн. В одном варианте осуществления процессор 501 подключен к локальной сети или глобальной сети для обработки данных и осуществления связи с удаленными устройствами, такими как другие процессоры, Интернет, удаленными хранилищами и т.п.

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

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

1. Способ создания виртуальных сетей, выполняемый облачным компонентом, причем способ содержит следующее:

через графический пользовательский интерфейс получают от пользователя сетевую диаграмму виртуальной сети, причем сетевая диаграмма содержит элементы, каждый из которых представляет сетевой компонент;

проверяют правильность сетевой диаграммы;

после успешной проверки правильности сетевой диаграммы компилируют сетевую диаграмму в вызовы прикладного программного интерфейса (API);

выполняют вызовы API; и,

используя выполняемые вызовы API, устанавливают виртуальную сеть в соответствии с сетевой диаграммой, причем виртуальная сеть содержит компоненты виртуальной сети, соответствующие элементам сетевой диаграммы.

2. Способ по п. 1, дополнительно содержащий следующее: выделяют пул ресурсов пользователю, причем проверка сетевой диаграммы включает в себя проверку того, что сетевая диаграмма не использует большее число ресурсов, чем выделено пользователю в пуле ресурсов.

3. Способ по п. 1, в котором получение сетевой диаграммы через графический пользовательский интерфейс включает в себя обеспечение обратной связи с пользователем в соответствии с действиями пользователя.

4. Способ по п. 1, также содержащий следующее: после неудачной проверки правильности сетевой диаграммы пользователю передают сообщение обратной связи, указывающее на пропуск или некорректный ввод в сетевой диаграмме.

5. Способ по п. 1, в котором установление виртуальной сети включает в себя следующее: отображают каждый элемент сетевой диаграммы на соответствующий компонент виртуальной сети в соответствии с топологией сетевой диаграммы.

6. Способ по п. 1, в котором установление виртуальной сети с использованием выполняемых вызовов API включает в себя следующее: обеспечивают связность узлов сети и реализацию политики.

7. Способ по п. 1, в котором виртуальная сеть представляет собой виртуальную локальную сеть (VLAN).

8. Способ по п. 1, в котором виртуальная сеть включает в себя последовательность ярусов сети и в котором элементы сетевой диаграммы включают в себя блоки, представляющие виртуальные машины (VM) или серверы для каждого из ярусов сети, и межсетевые экраны, которые разделяют ярусы сети.

9. Способ по п. 1, в котором сетевой компонент, представленный каждым элементом сетевой диаграммы, представляет собой коммутатор, маршрутизатор, межсетевой экран, линию связи или служебное устройство.

10. Способ создания виртуальных сетей, выполняемый пользователем, причем способ содержит следующее:

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

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

при этом виртуальная сеть содержит компоненты виртуальной сети, соответствующие элементам сетевой диаграммы.

11. Способ по п. 10, в котором виртуальная сеть включает в себя последовательность ярусов сети и в котором элементы сетевой диаграммы включают в себя блоки, представляющие виртуальные машины (VM) или серверы для каждого из ярусов сети, и межсетевые экраны, которые разделяют ярусы сети.

12. Способ по п. 10, также содержащий следующее: получают доступ к графическому пользовательскому интерфейсу через веб-портал.

13. Способ по п. 10, также содержащий следующее: выбирают элементы сетевой диаграммы в соответствии с пулом ресурсов, выделенных пользователю.

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

15. Сетевой компонент для создания виртуальных сетей, причем сетевой компонент содержит:

по меньшей мере один процессор; и

постоянный машинный носитель информации, на котором хранят программы для выполнения по меньшей мере одним процессором, причем программы включают в себя команды, предназначенные для того, чтобы:

через графический пользовательский интерфейс получать от пользователя сетевую диаграмму виртуальной сети, причем сетевая диаграмма содержит элементы, каждый из которых представляет компонент физической сети;

проверять правильность сетевой диаграммы;

после успешной проверки правильности сетевой диаграммы компилировать сетевую диаграмму в вызовы прикладного программного интерфейса (API);

выполнять вызовы API; и,

используя выполняемые вызовы API, устанавливать виртуальную сеть в соответствии с сетевой диаграммой, причем виртуальная сеть содержит компоненты виртуальной сети, соответствующие элементам сетевой диаграммы.

16. Сетевой компонент по п. 15, в котором программы включают в себя дополнительные команды для выделения пула ресурсов пользователю, причем проверка сетевой диаграммы включает в себя проверку того, что сетевая диаграмма не использует большее число ресурсов, чем выделено пользователю в пуле ресурсов.

17. Сетевой компонент по п. 15, в котором команды для установления виртуальной сети включают в себя команды для отображения каждого элемента сетевой диаграммы на соответствующий компонент виртуальной сети в соответствии с топологией сетевой диаграммы.

18. Сетевой компонент по п. 15, в котором команды для установления виртуальной сети с использованием выполняемых вызовов API включают в себя команды для обеспечивания связности узлов сети и реализации политики.

19. Сетевой компонент по п. 15, причем виртуальная сеть включает в себя ярус баз данных, ярус приложений и ярус веб-узлов, соединенные последовательно линиями связи, причем ярус веб-узлов также соединен с сетью общего пользования, и при этом виртуальная сеть также включает в себя межсетевой экран на каждой линии связи между ярусом баз данных, ярусом приложений и ярусом веб-узлов.

20. Сетевой компонент по п. 15, в котором графический пользовательский интерфейс доступен через веб-портал.