掌桥专利:专业的专利平台
掌桥专利
首页

构建分布式微服务网络控制器架构的方法

文献发布时间:2023-06-19 16:09:34



技术领域

本发明涉及网络控制器管理软件技术领域,特别涉及一种构建分布式微服务网络控制器架构的方法。

背景技术

引入网络控制器管理软件,可以极大地提升数据中心网络的承载和服务能力。网络控制器作为整个数据中心网络的“大脑”,网络控制器管理软件的可靠部署对数据中心网络的安全稳定运行非常重要。

传统数据中心网络控制器多使用统一编程语言进行集中式开发,最终实现为一个单一的控制器软件,如果软件运行过程中出现错误,会导致整个网络控制器软件的崩溃,影响所有业务的正常运行。复杂度高的控制器软件会占用服务器大量的CPU/内存等资源,单台服务器也不能满足网络控制器软件所需要的资源,提高了网络管理系统的开发和维护难度,增加了系统运行的风险。

发明内容

根据本发明实施例,提供了一种构建分布式微服务网络控制器架构的方法,包含如下步骤:

创建Dapr(Distributed Application Runtime,分布式应用运行时)开发环境;

在Dapr开发环境中安装Dapr CLI工具;

验证Dapr CLI工具是否安装成功;

在Dapr开发环境中创建若干个微服务;

容器化处理若干个微服务,获得若干个应用容器;

对若干个应用容器进行联调;

将若干个应用容器分别部署到不同的主机上。

进一步,验证Dapr CLI工具是否安装成功,包含如下子步骤:

初始化Dapr开发环境;

在Dapr开发环境中执行Dapr CLI工具的显示版本号信息指令。

进一步,若干个应用容器包含:API网关微服务、user管理微服务、OAM微服务与webhook微服务。

进一步,API网关微服务基于Lua语言创建,user管理微服务基于golang语言创建,OAM微服务基于node.js语言创建,webhook微服务基于python语言创建。

进一步,若干个应用容器均为Docker容器。

进一步,主机为物理主机或虚拟主机。

进一步,将一个或多个应用容器部署到任一个主机上。

进一步,采用Dapr开发环境的Kubernetes容器将若干个应用容器分别部署到不同的主机上。

进一步,Kubernetes容器为若干个应用容器的容器业务提供备份。

根据本发明实施例的构建分布式微服务网络控制器架构的方法,采用Python/Golang/Node.js等编程语言及开源软件架构Dapr,快速开发微服务网络控制器,并且利用Docker技术将微服务容器化,通过Kubernetes管理和部署网络控制器的Docker容器,最终达到将整个网络控制器软件运行在不同的服务器上并提供容器的备份,大大降低了网络控制器软件的开发复杂度并提高了系统的稳定性,解决了现有技术中存在的网络管理系统的开发和维护难度高,系统的运行风险大的缺陷。

要理解的是,前面的一般描述和下面的详细描述两者都是示例性的,并 且意图在于提供要求保护的技术的进一步说明。

附图说明

图1为根据本发明实施例构建分布式微服务网络控制器架构的方法的原理图;

图2为根据本发明实施例构建分布式微服务网络控制器架构的方法的流程图;

图3为图2中的步骤S3的子步骤的流程图。

具体实施方式

以下将结合附图,详细描述本发明的优选实施例,对本发明做进一步阐述。

首先,将结合图1~3描述根据本发明实施例的构建分布式微服务网络控制器架构的方法,用于管理大型数据中心网络,其应用场景广阔。

如图1~3所示,本发明实施例的构建分布式微服务网络控制器架构的方法,包含如下步骤:

在S1中,如图1~2所示,创建Dapr(Distributed Application Runtime,分布式应用运行时)开发环境。

在S2中,如图1~2所示,在Dapr开发环境中安装Dapr CLI工具。

在S3中,如图1~2所示,验证Dapr CLI工具是否安装成功。

进一步,验证Dapr CLI工具是否安装成功,包含如下子步骤:

在S31中,如图1、3所示,初始化Dapr开发环境。

在S32中,如图1、3所示,在Dapr开发环境中执行Dapr CLI工具的显示版本号信息指令,其中Dapr CLI工具的显示版本号信息指令包括但不限于指令“Dapr-V”,来验证Dapr版本,验证容器是否正在运行,以及验证组件目录是否已初始化,达到验证Dapr CLI工具是否安装成功的目的。

在S4中,如图1~2所示,在Dapr开发环境中创建若干个微服务。

进一步,如图1所示,若干个应用容器包含:API网关微服务、user管理微服务、OAM微服务与webhook微服务。

进一步,API网关微服务基于Lua语言创建,user管理微服务基于golang语言创建,OAM微服务基于node.js语言创建,webhook微服务基于python语言创建。

在S5中,如图1~2所示,容器化处理若干个微服务,获得若干个应用容器。

在S6中,如图1~2所示,对若干个应用容器进行联调。

进一步,如图1所示,若干个应用容器均为应用容器均通过Docker容器技术制作而成的Docker容器,且若干个应用容器分别为网关微服务Docker、用户管理微服务Docker、OAM微服务Docker、webhook微服务Docker。

在S7中,如图1~2所示,将若干个应用容器分别部署到不同的主机上。

进一步,将一个或多个应用容器部署到任一个主机上。

进一步,主机为物理主机或虚拟主机。

进一步,如图1~2所示,采用Dapr开发环境的Kubernetes容器对若干个应用容器进行编排管理和部署,将若干个应用容器部署到不同的物理或者虚拟主机上。

进一步,Kubernetes容器为若干个应用容器的容器业务提供备份。

本实施例主要提供了一种利用Docker和Kubernetes(K8S)管理微服务网络控制器,将整个微服务网络控制器部署到不同的服务器上。首先利用开源软件架构Dapr(Distributed Application Runtime)及Python、Golang、Node.js、Java等软件编程语言,开发一个网络控制器的各项业务。然后通过Docker容器化技术,将网络控制器的各项业务运行在不同的Docker容器中,实现不同业务的解耦。然后通过Kubernetes管理和部署网络控制器的Docker容器,最终达到将整个网络控制器软件运行在不同的服务器上的目的。本实施例不仅实现了网络控制器内不同业务代码上的解耦,同时保证了不同的微服务的业务运行在不同的物理或者虚拟主机,并提供容器的备份,大大降低了网络控制器软件的开发复杂度并提高了系统的稳定性,本实施例的提出具有较强的实际应用意义。

以上,参照图1~3描述了根据本发明实施例的构建分布式微服务网络控制器架构的方法,采用Python/Golang/Node.js等编程语言及开源软件架构Dapr,快速开发微服务网络控制器,并且利用Docker技术将微服务容器化,通过Kubernetes管理和部署网络控制器的Docker容器,最终达到将整个网络控制器软件运行在不同的服务器上并提供容器的备份,大大降低了网络控制器软件的开发复杂度并提高了系统的稳定性,解决了现有技术中存在的网络管理系统的开发和维护难度高,系统的运行风险大的缺陷。

需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

技术分类

06120114721743