动态扩容或缩容方法、装置、设备及介质与流程

文档序号:33017815发布日期:2023-01-20 17:43阅读:34来源:国知局
动态扩容或缩容方法、装置、设备及介质与流程

1.本发明涉及图像传输技术领域,尤其涉及动态扩容或缩容方法、装置、设备及介质。


背景技术:

2.目前互联网中,很多企业上线部署都是使用jenkins第三方平台,随着产品迭代的需求和分支越来越多,那么单靠单一节点的jenkins不足以支撑产品大量分支和项目的快速迭代以及及时上线部署,利用jenkins从节点的方式去实现类似于负载均衡,从而满足快速迭代和及时上线的目的,若在近期出现不需要迭代时,会造成部分从节点服务器出现闲置情况,若在近期出现需求膨胀,则需要运维人员人为介入扩容,加大了运维人员的工作量。
3.而现有的k8s方式部署的jenkins可以实现动态伸缩扩容的需求,但是现有80%以上企业中仍然沿用传统部署jenkins的方式,若是小企业要采用k8s,但是需要投入比较高昂的运维成本和管理维护成本,若是大企业要采用k8s,大企业中可能会早已在jenkins集成了相当庞大数量的项目,若是要迁移,需要耗费大量时间。


技术实现要素:

4.本发明的主要目的在于提供低成本、易操作且能够实现动态扩容或缩容的方法。
5.本发明第一方面提供了一种动态扩容或缩容方法,包括:
6.采集所监测到服务器处理数据的负载信息;
7.比较所述负载信息与预置负载度的大小,得到第一比较结果,并在所述第一比较结果上进行计数,得到计数值;
8.比较所述计数值与预置次数值的大小,得到第二比较结果;
9.根据所述第二比较结果以及预置配置文件,将发送扩容或缩容指令至预置云服务器内执行,得到对应扩容或缩容的服务器信息;
10.接收所述扩容或缩容的服务器信息,配置对应的服务器以均衡负载。
11.进一步地,在本发明第一方面的第二种实现方式中,所述比较所述负载信息与预置负载度的大小,得到第一比较结果,并在所述第一比较结果上进行计数,得到计数值包括:
12.判断所述负载信息是否大于预置负载度;
13.若是,则在所述负载信息中的内存list数据中标记true标识,并对所述true标识进行计数,得到扩容的计数值;
14.若不是,则在所述负载信息中的内存list数据中标记false标识,并对所述false标识进行计数,得到缩容的计数值。
15.进一步地,在本发明第一方面的第三种实现方式中,所述若是,则在所述负载信息中的内存list数据中标记true标识,并对所述true标识进行计数,得到扩容的计数值包括:
16.判断是否第一次触发;
17.若是,则得到扩容信息;
18.若不是,则在所述负载信息中的内存list数据中标记true标识,并对所述true标识进行计数。
19.进一步地,在本发明第一方面的第四种实现方式中,所述比较所述计数值与预置次数值的大小,得到第二比较结果包括:
20.判断所述扩容的计数值或所述缩容的计数值是否大于预置次数值;
21.若是,则得到扩容或缩容信息;
22.若不是,则继续在所述所述负载信息中的内存list数据中标记true标识或false标识。
23.进一步地,在本发明第一方面的第五种实现方式中,所述根据所述第二比较结果以及预置配置文件,将发送扩容或缩容指令至预置云服务器内执行,得到对应扩容或缩容的服务器信息包括:
24.读取用户的ak/sk、镜像id以及预置配置文件,调用预置云服务器的sdk以创建或销毁对应服务器的连接。
25.进一步地,在本发明第一方面的第六种实现方式中,在所述接收所述扩容或缩容的服务器信息,配置对应的服务器以均衡负载之后,还包括:
26.将所述扩容或缩容的服务器信息写入所述配置文件中,得到新的配置文件。
27.进一步地,在本发明第一方面的第七种实现方式中,所述扩容或缩容的服务器信息包括服务器ip、采集的指标、采集间隔时间以及验证信息。
28.本发明第二方面提供了一种动态扩容或缩容装置,所述所述动态扩容或缩容装置包括:
29.采集模块,用于采集所监测到服务器处理数据的负载信息;
30.第一比较模块,用于比较所述负载信息与预置负载度的大小,得到第一比较结果,并在所述第一比较结果上进行计数,得到计数值;
31.第二比较模块,用于比较所述计数值与预置次数值的大小,得到第二比较结果;
32.扩容或缩容模块,用于根据所述第二比较结果以及预置配置文件,将发送扩容或缩容指令至预置云服务器内执行,得到对应扩容或缩容的服务器信息;
33.执行模块,用于接收所述扩容或缩容的服务器信息,配置对应的服务器以均衡负载。
34.本发明第三方面提供了一种动态扩容或缩容设备,所述动态扩容或缩容设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
35.所述至少一个处理器调用所述存储器中的所述指令,以使得所述设备执行上述动态扩容或缩容方法。
36.本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述动态扩容或缩容方法。
37.本发明的有益效果在于:通过采集所监测到服务器处理数据的负载信息,比较所述负载信息与预置负载度的大小,得到第一比较结果,并在所述第一比较结果上进行计数,
得到计数值,比较所述计数值与预置次数值的大小,得到第二比较结果,根据所述第二比较结果以及预置配置文件,将发送扩容或缩容指令至预置云服务器内执行,得到对应扩容或缩容的服务器信息,接收所述扩容或缩容的服务器信息,配置对应的服务器以均衡负载,实现自动且根据主机服务器的负载情况进行动态扩容或缩容,使得主机服务器的负载能够维持在均衡的状态,有效确保主机服务器的稳定运行的同时,还能减少运维工作人员的靠人工监控的精力以及时间,降低了运维成本,提高了运维效率。
附图说明
38.图1为本发明实施例中动态扩容或缩容方法的第一个实施例示意图;
39.图2为本发明实施例中动态扩容或缩容方法的第二个实施例示意图;
40.图3为本发明实施例中动态扩容或缩容方法的第三个实施例示意图;
41.图4为本发明实施例中动态扩容或缩容方法的第四个实施例示意图;
42.图5为本发明实施例中动态扩容或缩容方法的第五个实施例示意图;
43.图6为本发明实施例中动态扩容或缩容装置的第一个实施例示意图;
44.图7为本发明实施例中动态扩容或缩容设备的一个实施例示意图。
具体实施方式
45.本发明实施例提供了一种动态扩容或缩容方法及系统、装置、设备及介质。
46.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
47.为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1-5,本发明实施例中动态扩容或缩容方法一个实施例,所述动态扩容或缩容方法包括:
48.101、采集所监测到服务器处理数据的负载信息;
49.在本实施例中,监控主机服务器的cpu、memory、io、磁盘空间等的负载情况,并将其定义为指标,通过监控模块对用户初期配置的节点作为主节点进行监控并采集负载信息,而对服务器的扩容以及缩容的执行端采用的是python语言进行处理,而监控模块与python语言直接的消息投递和接收在本实施例中是采用现有开源的第三方组件消息队列。
50.102、比较所述负载信息与预置负载度的大小,得到第一比较结果,并在所述第一比较结果上进行计数,得到计数值;
51.在本实施例中,为了根据当前主机服务器的负载情况进行执行扩容或缩容操作,便需要对应预置一个扩容阈值,在本实施例中为负载度,其中,该负载度是可以根据用户需求以及用户对于所使用的服务器状态来进行自定义,在本实施例中以负载度为80%为例子,而负载度的计算实质就是主机服务器的cpu、memory、io、磁盘空间等的负载情况的平均负载达到80%。
52.进一步的,在步骤102中具体还可以执行:
53.1021、判断所述负载信息是否大于预置负载度;
54.1022、若是,则在所述负载信息中的内存list数据中标记true标识,并对所述true标识进行计数,得到扩容的计数值;
55.1023、若不是,则在所述负载信息中的内存list数据中标记false标识,并对所述false标识进行计数,得到缩容的计数值。
56.在本实施例中,判断当前主机服务器的cpu、memory、io、磁盘空间等的负载情况的平均负载是否超过了80%,若是,则是需要进行扩容操作,若不是,则是需要进行缩容操作,但是在执行扩容或缩容操作之前,需要对大于或不大于负载度的次数进行计数,因为若是每得到判断结果后立即执行扩容或缩容操作时,会极大使用到服务器资源的,而负载是一个动态变化的过程,是存在一瞬间的超过80%负载的情况,然后再返回原来的低于80%的负载情况,若是这种情况是直接进行扩容的话,扩容的服务器在被分配执行任务的下一个阶段便被告知由于负载低于80%,需要进行缩容,要将上一扩容的服务器进行剔除,这边导致服务器资源不合理使用的问题,因此才需要对发生负载情况进行计数,在负载信息中内存list中进行增添true/false标识,并对true/false标识进行计数。
57.进一步的,步骤1022中具体还可以执行:
58.10221、判断是否第一次触发;
59.10222、若是,则得到扩容信息;
60.10223、若不是,则在所述负载信息中的内存list数据中标记true标识,并对所述true标识进行计数。
61.在步骤10221-10223中,由于给主机服务器处理的数据是第一次给予的,用户是无法直接判断该数据对于主机服务器造成多大的负载情况,因此在主机服务器在第一次执行该数据并反馈负载信息时,若是判断该负载信息没有超过负载度,则不操作,若是判断该负载信息超过负载度,则需要进行扩容操作,其中需要注意的是,这里直接进行扩容操作的前提是没有出现未恢复缩容的情况,也就是这里是完全第一次进行负载信息判断的,因此为了确保后续负载度能够稳定在80%或以下,则直接进行扩容来分担主机服务器的负载压力。
62.103、比较所述计数值与预置次数值的大小,得到第二比较结果;
63.在本实施例中,如上述,负载情况是动态的,每一时刻都是不一样的,且出现高负载的情况有可能是一瞬间的事,因此才需要对出现高于或不高于负载度的情况进行记录并分别计数,而这里的次数可以通过用户自己的需求进行自定义,在本实施例中预置此数值为5次。
64.进一步的,在步骤103中具体还可以执行:
65.1031、判断所述扩容的计数值或所述缩容的计数值是否大于预置次数值;
66.1032、若是,则得到扩容或缩容信息;
67.1033、若不是,则继续在所述所述负载信息中的内存list数据中标记true标识或false标识。
68.在本实施例中,对内存list中所记录的true/false标识进行计数,若是true/false标识大于5次,则执行扩容或缩容操作,否则继续在所述所述负载信息中的内存list
数据中标记true标识或false标识,其中需要注意的是,这个计数可以是连续性的,比如,当内存list中连续6次或以上出现true/false标识,则执行扩容或缩容操作,当内存list中连续5次true标识,当是下一次且出现false标识,则不能执行扩容操作,同样缩容操作的判断也是如此。
69.104、根据所述第二比较结果以及预置配置文件,将发送扩容或缩容指令至预置云服务器内执行,得到对应扩容或缩容的服务器信息;
70.预置配置文件实质为yaml配置文件,简单表达清单、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件、倾印调试内容、文件大纲,在本实施例中,yaml配置文件事先会记录有当前主机服务器进行数据处理的服务器情况,在将扩容或缩容指令发送至云服务器内执行时,需要依据该yaml配置文件,确定哪些服务器需要被缩容,哪些服务器已经被扩容进去的。
71.进一步的,在步骤104中具体还可以执行:
72.读取用户的ak/sk、镜像id以及预置配置文件,调用预置云服务器的sdk以创建或销毁对应服务器的连接。
73.105、接收所述扩容或缩容的服务器信息,配置对应的服务器以均衡负载。
74.在步骤105-106中,ak/sk认证为加密验证信息,可以通过ak/sk认证以及镜像id快速且安全地获取到对应的云服务器,并进行调用sdk,通过配置文件所记录的服务器情况,销毁其中闲置服务器或者创建其中没有的服务器,以用于缩容或扩容。
75.进一步的,在步骤105后,还包括:
76.106、将所述扩容或缩容的服务器信息写入所述配置文件中,得到新的配置文件。
77.在本实施例中,通过采集所监测到服务器处理数据的负载信息,比较所述负载信息与预置负载度的大小,得到第一比较结果,并在所述第一比较结果上进行计数,得到计数值,比较所述计数值与预置次数值的大小,得到第二比较结果,根据所述第二比较结果以及预置配置文件,将发送扩容或缩容指令至预置云服务器内执行,得到对应扩容或缩容的服务器信息,接收所述扩容或缩容的服务器信息,配置对应的服务器以均衡负载,实现自动且根据主机服务器的负载情况进行动态扩容或缩容,使得主机服务器的负载能够维持在均衡的状态,有效确保主机服务器的稳定运行的同时,还能减少运维工作人员的靠人工监控的精力以及时间,降低了运维成本,提高了运维效率。
78.上面对本发明实施例中动态扩容或缩容方法进行了描述,下面对本发明实施例中动态扩容或缩容装置进行描述,请参阅图6,本发明实施例中动态扩容或缩容装置的一个实施例包括:
79.采集模块201,用于采集所监测到服务器处理数据的负载信息;
80.第一比较模块202,用于比较所述负载信息与预置负载度的大小,得到第一比较结果,并在所述第一比较结果上进行计数,得到计数值;
81.第二比较模块203,用于比较所述计数值与预置次数值的大小,得到第二比较结果;
82.扩容或缩容模块204,用于根据所述第二比较结果以及预置配置文件,将发送扩容或缩容指令至预置云服务器内执行,得到对应扩容或缩容的服务器信息;
83.执行模块205,用于接收所述扩容或缩容的服务器信息,配置对应的服务器以均衡
负载。
84.本发明实施例中动态扩容或缩容装置的另一个实施例中所述的动态扩容或缩容装置包括:
85.采集模块201,用于采集所监测到服务器处理数据的负载信息;
86.第一比较模块202,用于比较所述负载信息与预置负载度的大小,得到第一比较结果,并在所述第一比较结果上进行计数,得到计数值;
87.第二比较模块203,用于比较所述计数值与预置次数值的大小,得到第二比较结果;
88.扩容或缩容模块204,用于根据所述第二比较结果以及预置配置文件,将发送扩容或缩容指令至预置云服务器内执行,得到对应扩容或缩容的服务器信息;
89.执行模块205,用于接收所述扩容或缩容的服务器信息,配置对应的服务器以均衡负载。
90.其中,第一比较模块202具体还可以执行:
91.判断所述负载信息是否大于预置负载度;
92.若是,则在所述负载信息中的内存list数据中标记true标识,并对所述true标识进行计数,得到扩容的计数值;
93.若不是,则在所述负载信息中的内存list数据中标记false标识,并对所述false标识进行计数,得到缩容的计数值。
94.其中,“若是,则在所述负载信息中的内存list数据中标记true标识,并对所述true标识进行计数,得到扩容的计数值”具体还可以执行:
95.判断是否第一次触发;
96.若是,则得到扩容信息;
97.若不是,则在所述负载信息中的内存list数据中标记true标识,并对所述true标识进行计数。
98.其中,第二比较模块203具体还可以执行:
99.判断所述扩容的计数值或所述缩容的计数值是否大于预置次数值;
100.若是,则得到扩容或缩容信息;
101.若不是,则继续在所述所述负载信息中的内存list数据中标记true标识或false标识。
102.其中,扩容或缩容模块204具体还可以执行:
103.读取用户的ak/sk、镜像id以及预置配置文件,调用预置云服务器的sdk以创建或销毁对应服务器的连接。
104.其中,在执行模块205之前,还包括:
105.将所述扩容或缩容的服务器信息写入所述配置文件中,得到新的配置文件。其中,所述扩容或缩容的服务器信息包括服务器ip、采集的指标、采集间隔时间以及验证信息。
106.在本实施例中,通过采集所监测到服务器处理数据的负载信息,比较所述负载信息与预置负载度的大小,得到第一比较结果,并在所述第一比较结果上进行计数,得到计数值,比较所述计数值与预置次数值的大小,得到第二比较结果,根据所述第二比较结果以及预置配置文件,将发送扩容或缩容指令至预置云服务器内执行,得到对应扩容或缩容的服
务器信息,接收所述扩容或缩容的服务器信息,配置对应的服务器以均衡负载,实现自动且根据主机服务器的负载情况进行动态扩容或缩容,使得主机服务器的负载能够维持在均衡的状态,有效确保主机服务器的稳定运行的同时,还能减少运维工作人员的靠人工监控的精力以及时间,降低了运维成本,提高了运维效率。
107.上面附图6从模块化功能实体的角度对本发明实施例中动态扩容或缩容装置进行详细描述,下面从硬件处理的角度对本发明实施例中动态扩容或缩容设备进行详细描述。
108.附图7是本发明实施例提供的一种动态扩容或缩容设备的结构示意图,该动态扩容或缩容设备300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)310(例如,一个或一个以上处理器)和存储器320,一个或一个以上存储应用程序333或数据332的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器320和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对动态扩容或缩容设备300中的一系列指令操作。更进一步地,处理器310可以设置为与存储介质330通信,在动态扩容或缩容设备300上执行存储介质330中的一系列指令操作。
109.动态扩容或缩容设备300还可以包括一个或一个以上电源340,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口360,和,一个或一个以上操作系统331,例如windowsserve,macosx,unix,linux,freebsd等等。本领域技术人员可以理解,图7示出的动态扩容或缩容设备结构并不构成对动态扩容或缩容设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
110.本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述动态扩容或缩容方法及系统的步骤。
111.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或装置、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
112.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
113.以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1