CN110460670A - 一种基于Terraform及Ansible的应用集群架构自动化部署方法 - Google Patents
一种基于Terraform及Ansible的应用集群架构自动化部署方法 Download PDFInfo
- Publication number
- CN110460670A CN110460670A CN201910764015.8A CN201910764015A CN110460670A CN 110460670 A CN110460670 A CN 110460670A CN 201910764015 A CN201910764015 A CN 201910764015A CN 110460670 A CN110460670 A CN 110460670A
- Authority
- CN
- China
- Prior art keywords
- application
- template
- framework
- user
- terraform
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于Terraform及Ansible的应用集群架构自动化部署方法,属于架构部署技术领域,本发明通过对Terraform及Ansible进行封装,可以实现基础设施架构及应用架构自动化部署及架构的版本管理功能。用户将基础设施架构及应用架构部署方案,通过代码形式进行保存,并通过版本仓库进行管理;再次进行环境部署时,可以直接通过代码形式,进行环境的搭建,不再需要手动的进行人工部署,降低了出错的概率;并且支持多线程操作,可以同时部署多个集群架构,快速方便;支持横向扩展,各节点间无相互依赖关系,极大提高部署效率。
Description
技术领域
本发明涉及架构部署技术,尤其涉及一种基于Terraform及Ansible的应用集群架构自动化部署方法。
背景技术
Terraform是一个IT基础架构自动化编排工具,主张基础架构即代码,用户通过terraform提供的provider,可以完成基础资源的创建,删除,更新,查询等功能;Ansible是一个配置管理***实现了批量***配置、批量程序部署、批量运行命令等功能,可以很好的完成应用架构的部署。在实际的使用场景中,进行集群架构部署时,需要首先进行基础资源的搭建,再进行应用的集群部署,两部分缺一不可,集群较复杂时,不同的基础资源需要进行不同类型的部署时,会给运维及部署人员带来很大的困扰。
发明内容
为了解决以上技术问题,本发明提出了一种基于Terraform及Ansible的应用集群架构自动化部署方法,通过对Terraform及Ansible进行封装,可以实现基础设施架构及应用架构自动化部署及架构的版本管理功能。
本发明的技术方案是:
一种基于Terraform及Ansible的应用集群架构自动化部署方法,通过对Terraform及Ansible的封装,实现基础架构自动化部署,将基础设施架构及应用架构进行部署,通过代码形式进行保存,并通过版本仓库进行管理;再次进行环境部署时,可以直接通过代码形式,进行环境的搭建
主要包括如下三个步骤:
a、自动构建应用集群架构;包括创建,删除,更新应用集群架构。
其中,
创建应用集群架构
1)用户准备好搭建基础资源架构的terraform模板及应用架构部署的ansible模板文件;
2)用户通过RESTAPI调用创建应用集群架构方法,并将模板中需要的应用架构信息传送到服务端;
3)检查该基础设施架构实例是否在***作;
4)保存用户上传的应用集群架构信息;
5)调用terraform-provider,完成基础资源设施创建;
6)调用ansible-playbook,在指定的基础资源中完成对应用的部署。
7)将操作结果推送都MQ中,客户端通过异步处理接收消息,判断应用集群架构是否创建成功。
更新应用集群架构
1)用户准备好更新基础资源架构的terraform模板及应用架构部署的ansible模板文件;
2)用户通过RESTAPI调用更新应用集群架构方法,并将模板中需要的应用架构信息传送到服务端;
3)检查该基础设施架构实例是否在***作;
4)根据用户上传的应用架构信息,更新创建时保存的应用集群架构信息;
5)调用terraform-provider,完成基础设施架构更新;
6)调用ansible-playbook,完成指定的基础设施资源中应用的更新部署;
7)将操作结果推送都MQ中,客户端通过处理接收消息,判断应用集群架构是否更新成功。
删除基础设施架构
1)用户准备好更新基础资源架构的terraform模板及应用架构部署的ansible模板文件;
2)用户通过RESTAPI调用删除应用集群架构方法,并将创建时生成的实例ID传送给服务端;
3)检查该基础设施架构实例是否在***作;
4)根据用户上传的实例ID,获取保存的应用集群架构信息,并将信息应用到Terraform及ansible模板上;
5)调用terraform-provider,完成应用集群删除;
6)将操作结果推送都MQ中,客户端通过处理接收消息,判断应用集群是否删除成功。
b、应用集群架构模板管理;提供高可用模板仓库,对应用集群架构信息以代码形式进行保存。
具体包括:
1)模板上传,用户根据自身需求,进行应用集群架构模板上传到指定的模板仓库,各个用户通过用户组及用户名进行区分,防止自己的修改影响到其余应用;
2)Tags,应用程序在进行模板拉取时,使用tag作为标识,根据功能不同,对模板设置不同的tag;
3)Commits,模板仓库可以查询该模板的提交历史,上述tag可以根据指定的commit进行定义;
4)模板下载,用户根据指定的tag,下载对应tag的模板应用,各个tag根据用户定义,设置不同的功能,对应支持不同的版本,根据用户现有需求进行自定义设置;
5)模板删除,用户根据自身需求,对已废弃模板进行删除,防止仓库冗余。
c、负载均衡。
支持负载均衡,当集群架构较大时,横向部署一个以上的应用。
应用的线程池配置中设置的线程池大小为10,表示单个应用支持的最大并发,用户可以根据需求及实际并发数,动态调整应用个数,保证应用稳定的同时,提高基础设施架构创建的效率。
本方法通过对Terraform及Ansible的封装,可以实现基础架构自动化部署,并在创建的基础资源基础上进行应用架构的部署,方便集群架构信息的管理,提高可复用性;在部署较大进群,或者部署多个相同集群时,该方法可横向扩展,提高集群部署效率。
本发明的有益效果是
该方法将应用集群架构部署以代码形式进行管理,用户管理应用集群架构时,只需要关注架构本身即可。
同时,本发明复用性很高,用户将进行应用集群架构部署时使用的资源信息以代码形式进行版本管理,后续进行相同架构部署时,直接使用保存的架构模板进行创建即可,不必对架构中的每个资源进行手工的创建,提高了复用性,并保证了执行的准确性。
本发明扩展性良好,可横向扩展,在构建大规模集群时,可以在不同节点同时进行集群的创建,各个扩展节点间无依赖关系,提高集群创建效率。
附图说明
图1是本发明的处理流程图;
图2是本发明的组件交互图;
图3是本发明的***架构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的一种基于Terraform及Ansible的应用集群架构自动化部署方法,主要包括:
a)自动构建应用集群架构
本发明包括创建,删除,更新应用集群架构,流程图详见附图,具体处理流程如下:
创建应用集群架构
1)用户准备好搭建基础资源架构的terraform模板及应用架构部署的ansible模板文件。
2)用户通过RESTAPI调用创建应用集群架构方法,并将模板中需要的应用架构信息传送到服务端。
3)检查该基础设施架构实例是否在***作。
4)保存用户上传的应用集群架构信息。
5)调用terraform-provider,完成基础资源设施创建。
6)调用ansible-playbook,在指定的基础资源中完成对应用的部署。
7)将操作结果推送都MQ中,客户端通过异步处理接收消息,判断应用集群架构是否创建成功。
更新应用集群架构
用户准备好更新基础资源架构的terraform模板及应用架构部署的ansible模板文件。
用户通过RESTAPI调用更新应用集群架构方法,并将模板中需要的应用架构信息传送到服务端。
检查该基础设施架构实例是否在***作。
根据用户上传的应用架构信息,更新创建时保存的应用集群架构信息。调用terraform-provider,完成基础设施架构更新。
调用ansible-playbook,完成指定的基础设施资源中应用的更新部署。
将操作结果推送都MQ中,客户端通过处理接收消息,判断应用集群架构是否更新成功。
删除基础设施架构
用户准备好更新基础资源架构的terraform模板及应用架构部署的ansible模板文件。
用户通过RESTAPI调用删除应用集群架构方法,并将创建时生成的实例ID传送给服务端。
检查该基础设施架构实例是否在***作。
根据用户上传的实例ID,获取保存的应用集群架构信息,并将信息应用到Terraform及ansible模板上。
调用terraform-provider,完成应用集群删除。
将操作结果推送都MQ中,客户端通过处理接收消息,判断应用集群是否删除成功。
b)应用集群架构模板管理
本发明提供高可用模板仓库,对应用集群架构信息以代码形式进行保存,具体功能如下:
模板上传,用户根据自身需求,进行应用集群架构模板上传到指定的模板仓库,各个用户通过用户组及用户名进行区分,防止自己的修改影响到其余应用。
Tags,应用程序在进行模板拉取时,使用tag作为标识,根据功能不同,对模板设置不同的tag,方便多版本管理,方便各个阶段的迭代开发。
Commits,模板仓库可以查询该模板的提交历史,上述tag可以根据指定的commit进行定义,方便开发者确认tag对应的功能需求。
模板下载,用户根据指定的tag,可以下载对应tag的模板应用,各个tag可以根据用户定义,设置不同的功能,也可以对应支持不同的版本,根据用户现有需求进行自定义设置。
模板删除,用户可以根据自身需求,对已废弃模板进行删除,防止仓库冗余。
c)负载均衡
本发明支持负载均衡,当集群架构较大时,可以横向部署多个应用,由于各个应用间无依赖关系,可以极大提高架构部署效率,负载架构部署详见附图。
应用的线程池配置中设置的线程池大小为10,表示单个应用支持的最大并发,用户可以根据需求及实际并发数,动态调整应用个数,保证应用稳定的同时,提高基础设施架构创建的效率。
通过对Terraform及Ansible进行封装,可以实现基础设施架构及应用架构自动化部署,包括创建,更新,删除。
实现基应用集群架构自动化部署的管理,整合了原本需要手动创建基础资源,然后在基础资源基础上进行应用部署的复杂流程,用户只需发起一次请求,中间整个处理过程无需人工进行干预;应用集群架构信息以代码形式存储,复用性强,易于版本管理;扩展性强,在构建大规模集群时,可以在不同节点同时进行集群的创建,各个扩展节点间无依赖关系,提高集群创建效率。
以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (8)
1.一种基于Terraform及Ansible的应用集群架构自动化部署方法,其特征在于,
通过对Terraform及Ansible的封装,实现基础架构自动化部署,将基础设施架构及应用架构进行部署,通过代码形式进行保存,并通过版本仓库进行管理;再次进行环境部署时,可以直接通过代码形式,进行环境的搭建。
2.根据权利要求1所述的方法,其特征在于,
主要包括如下三个步骤:
a、自动构建应用集群架构;包括创建,删除,更新应用集群架构;
b、应用集群架构模板管理;提供高可用模板仓库,对应用集群架构信息以代码形式进行保存;
c、负载均衡。
3.根据权利要求2所述的方法,其特征在于,
创建应用集群架构
1)用户准备好搭建基础资源架构的terraform模板及应用架构部署的ansible模板文件;
2)用户通过RESTAPI调用创建应用集群架构方法,并将模板中需要的应用架构信息传送到服务端;
3)检查该基础设施架构实例是否在***作;
4)保存用户上传的应用集群架构信息;
5)调用terraform-provider,完成基础资源设施创建;
6)调用ansible-playbook,在指定的基础资源中完成对应用的部署;
7)将操作结果推送都MQ中,客户端通过异步处理接收消息,判断应用集群架构是否创建成功。
4.根据权利要求2所述的方法,其特征在于,
更新应用集群架构
1)用户准备好更新基础资源架构的terraform模板及应用架构部署的ansible模板文件;
2)用户通过RESTAPI调用更新应用集群架构方法,并将模板中需要的应用架构信息传送到服务端;
3)检查该基础设施架构实例是否在***作;
4)根据用户上传的应用架构信息,更新创建时保存的应用集群架构信息;
5)调用terraform-provider,完成基础设施架构更新;
6)调用ansible-playbook,完成指定的基础设施资源中应用的更新部署;
7)将操作结果推送都MQ中,客户端通过处理接收消息,判断应用集群架构是否更新成功。
5.根据权利要求2所述的方法,其特征在于,
删除基础设施架构
1)用户准备好更新基础资源架构的terraform模板及应用架构部署的ansible模板文件;
2)用户通过RESTAPI调用删除应用集群架构方法,并将创建时生成的实例ID传送给服务端;
3)检查该基础设施架构实例是否在***作;
4)根据用户上传的实例ID,获取保存的应用集群架构信息,并将信息应用到Terraform及ansible模板上;
5)调用terraform-provider,完成应用集群删除;
6)将操作结果推送都MQ中,客户端通过处理接收消息,判断应用集群是否删除成功。
6.根据权利要求2所述的方法,其特征在于,
所述步骤2具体包括:
1)模板上传,用户根据自身需求,进行应用集群架构模板上传到指定的模板仓库,各个用户通过用户组及用户名进行区分,防止自己的修改影响到其余应用;
2)Tags,应用程序在进行模板拉取时,使用tag作为标识,根据功能不同,对模板设置不同的tag;
3)Commits,模板仓库可以查询该模板的提交历史,上述tag可以根据指定的commit进行定义;
4)模板下载,用户根据指定的tag,下载对应tag的模板应用,各个tag根据用户定义,设置不同的功能,对应支持不同的版本,根据用户现有需求进行自定义设置;
5)模板删除,用户根据自身需求,对已废弃模板进行删除,防止仓库冗余。
7.根据权利要求2所述的方法,其特征在于,
支持负载均衡,当集群架构较大时,横向部署一个以上的应用。
8.根据权利要求7所述的方法,其特征在于
应用的线程池配置中设置的线程池大小为10,表示单个应用支持的最大并发,用户可以根据需求及实际并发数,动态调整应用个数,保证应用稳定的同时,提高基础设施架构创建的效率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910764015.8A CN110460670A (zh) | 2019-08-19 | 2019-08-19 | 一种基于Terraform及Ansible的应用集群架构自动化部署方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910764015.8A CN110460670A (zh) | 2019-08-19 | 2019-08-19 | 一种基于Terraform及Ansible的应用集群架构自动化部署方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110460670A true CN110460670A (zh) | 2019-11-15 |
Family
ID=68487499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910764015.8A Pending CN110460670A (zh) | 2019-08-19 | 2019-08-19 | 一种基于Terraform及Ansible的应用集群架构自动化部署方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110460670A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111367618A (zh) * | 2020-03-03 | 2020-07-03 | 山东汇贸电子口岸有限公司 | 基于docker的代码管理方法、***、终端及介质 |
CN111427592A (zh) * | 2020-03-20 | 2020-07-17 | 广州锦行网络科技有限公司 | 一种虚拟化部署mysql高可用*** |
CN112711428A (zh) * | 2021-01-18 | 2021-04-27 | 浪潮云信息技术股份公司 | 一种基于ansible的动态部署方法及*** |
CN112822044A (zh) * | 2020-12-30 | 2021-05-18 | 北京天融信网络安全技术有限公司 | 分布式集群的部署方法、装置、电子设备及可读存储介质 |
CN114443069A (zh) * | 2021-12-30 | 2022-05-06 | 苏州浪潮智能科技有限公司 | 一种动态扩展的集群构建操作***镜像的方法、*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190095230A1 (en) * | 2017-09-26 | 2019-03-28 | The Mitre Corporation | Systems and method for deploying, securing, and maintaining computer-based analytic environments |
CN109947537A (zh) * | 2019-03-28 | 2019-06-28 | 山东浪潮云信息技术有限公司 | 创建云容器服务的***及方法 |
CN110096258A (zh) * | 2019-04-30 | 2019-08-06 | 山东浪潮云信息技术有限公司 | 一种基于Terraform的OpenStack基础设施架构管理的方法 |
-
2019
- 2019-08-19 CN CN201910764015.8A patent/CN110460670A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190095230A1 (en) * | 2017-09-26 | 2019-03-28 | The Mitre Corporation | Systems and method for deploying, securing, and maintaining computer-based analytic environments |
CN109947537A (zh) * | 2019-03-28 | 2019-06-28 | 山东浪潮云信息技术有限公司 | 创建云容器服务的***及方法 |
CN110096258A (zh) * | 2019-04-30 | 2019-08-06 | 山东浪潮云信息技术有限公司 | 一种基于Terraform的OpenStack基础设施架构管理的方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111367618A (zh) * | 2020-03-03 | 2020-07-03 | 山东汇贸电子口岸有限公司 | 基于docker的代码管理方法、***、终端及介质 |
CN111427592A (zh) * | 2020-03-20 | 2020-07-17 | 广州锦行网络科技有限公司 | 一种虚拟化部署mysql高可用*** |
CN112822044A (zh) * | 2020-12-30 | 2021-05-18 | 北京天融信网络安全技术有限公司 | 分布式集群的部署方法、装置、电子设备及可读存储介质 |
CN112822044B (zh) * | 2020-12-30 | 2022-12-20 | 北京天融信网络安全技术有限公司 | 分布式集群的部署方法、装置、电子设备及可读存储介质 |
CN112711428A (zh) * | 2021-01-18 | 2021-04-27 | 浪潮云信息技术股份公司 | 一种基于ansible的动态部署方法及*** |
CN112711428B (zh) * | 2021-01-18 | 2024-04-12 | 浪潮云信息技术股份公司 | 一种基于ansible的动态部署方法及*** |
CN114443069A (zh) * | 2021-12-30 | 2022-05-06 | 苏州浪潮智能科技有限公司 | 一种动态扩展的集群构建操作***镜像的方法、*** |
CN114443069B (zh) * | 2021-12-30 | 2023-09-08 | 苏州浪潮智能科技有限公司 | 一种动态扩展的集群构建操作***镜像的方法、*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110460670A (zh) | 一种基于Terraform及Ansible的应用集群架构自动化部署方法 | |
US20230209330A1 (en) | Service Registration in a Communications Network | |
US9996333B2 (en) | Apparatus and method for automating the installation and configuration of infrastructure | |
JP6164440B2 (ja) | アプリケーションアップグレード方法および装置 | |
US20070130192A1 (en) | Method and system for configuring network devices through an operations support system interface | |
US20190363924A1 (en) | Bulk creation of managed functions in a network that includes virtualized network function | |
US11429353B1 (en) | Dynamic service provisioning using templatized infrastructure resources | |
KR20060029164A (ko) | 장치 관리 시스템에서 관리노드들의 지정 | |
CN110719187B (zh) | 配置管理方法、***及计算机可读存储介质 | |
US11226978B2 (en) | Systems and methods for dynamic creation of schemas | |
CN107943453B (zh) | 一种实现运维***自定义计划任务的方法及*** | |
KR20110093876A (ko) | 표적 동작 객체를 찾아내기 위한 장치 관리 서버, 클라이언트 및 방법 | |
De Benedictis et al. | Rest-based SLA management for cloud applications | |
CN113448837A (zh) | 开发及测试环境部署方法、***、电子设备及介质 | |
US8336057B2 (en) | Method and system for automatically generating message queue scripts | |
CN113467832A (zh) | 设备控制处理方法、装置、存储介质及电子装置 | |
CN105656643B (zh) | 一种基于网络配置协议进行兼容管理的方法及设备 | |
US8898201B1 (en) | Global data migration between home location registers | |
CN114546588A (zh) | 任务的部署方法、装置、存储介质及电子装置 | |
CN116233217B (zh) | 基于路由的页面跳转方法、装置、电子设备及存储介质 | |
CN116233101A (zh) | 一种基于http接口热部署的数据采集任务框架及使用方法 | |
CN111338685A (zh) | 一种公用组件配置方法、装置、设备和存储介质 | |
CN115729590A (zh) | 服务部署方法、装置、设备和计算机可读存储介质 | |
CN114047939A (zh) | 一种数据处理方法及中间件 | |
CN115033290A (zh) | 一种基于指令集的微服务拆分方法、装置及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191115 |
|
RJ01 | Rejection of invention patent application after publication |