CN106095476B - 一种基于heat的新增组件服务方法 - Google Patents

一种基于heat的新增组件服务方法 Download PDF

Info

Publication number
CN106095476B
CN106095476B CN201610368064.6A CN201610368064A CN106095476B CN 106095476 B CN106095476 B CN 106095476B CN 201610368064 A CN201610368064 A CN 201610368064A CN 106095476 B CN106095476 B CN 106095476B
Authority
CN
China
Prior art keywords
newly
service
increased
heat
packet
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.)
Active
Application number
CN201610368064.6A
Other languages
English (en)
Other versions
CN106095476A (zh
Inventor
熊梦
杨松
季统凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan Zhongke Guoyun big data industry development Co.,Ltd.
Original Assignee
G Cloud Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by G Cloud Technology Co Ltd filed Critical G Cloud Technology Co Ltd
Priority to CN201610368064.6A priority Critical patent/CN106095476B/zh
Publication of CN106095476A publication Critical patent/CN106095476A/zh
Application granted granted Critical
Publication of CN106095476B publication Critical patent/CN106095476B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及云计算技术领域,特别是一种基于heat的新增组件服务方法。本发明所述方法包括:在heat的db包中设计新增服务的数据库ORM,在heat的api包下定义新增服务包,在heat的common包wsgi模块下新增服务相关字典配置,对新增服务设置paste deploy,将新增服务配置成类似systemd系统服务。采用本发明提供的方法可以在heat上快速创建新的组件服务,以扩展heat对云平台应用的管理;用于heat的新增组件服务。

Description

一种基于heat的新增组件服务方法
技术领域
本发明涉及云计算技术领域,特别是一种基于heat的新增组件服务方法。
背景技术
Openstack和heat
Heat是OpenStack的负责编排计划的主要项目。它可以基于模板来实现云环境中资源的初始化,依赖关系处理,部署等基本操作;也可以解决自动收缩,负载均衡等高级特性。在模板文件中可以定义应用需要的资源,资源可以包括多种类型(CFN以及HOT支持的资源类型可能会存在一定的差别)例如IP,网络,镜像,用户,实例等。定义资源的同时也可以指定资源之间的依赖关系,例如使用云硬盘创建一个实例时,可以指定在创建实例时必须要创建云硬盘。
Heat以模板的形式提供了基本的应用管理功能,但是openstack原生的heat项目并不适合于生产环境,云平台开发者需要对heat进行二次开发;例如对模板管理的外部封装,新增模板服务等。另外heat组件涉及面比较广,功能较复杂,所以开发者在对其进行二次开发的过程中,需要找到一种通用、简单快速的方法来增加新服务。
发明内容
本发明解决的技术问题在于提出了一种基于heat的新增组件服务方法,实现简单快速新增heat组件服务,保证云平台开发者可以快速实现自定义扩展服务。
本发明解决上述技术问题的技术方案是:
所述的方法包括:
在heat的db包中设计新增服务的数据库ORM;
在heat的api包下定义新增服务包;
在heat的common包wsgi模块下新增服务相关字典配置;
对新增服务设置paste deploy;
将新增服务配置成类似systemd系统服务。
所述的在heat的db包中设计新增服务的数据库ORM进一步包括:
在sqlalchemy包下的modules包中定义新增服务的数据库表的实体类;
在versions包中定义新增服务的数据库表设计文件;
所述的ORM是指对象关系映射,实现将数据库表直接映射到编程语言对象,一个表对应一个实体类;
所述的数据库设计文件是一个带有版本系列号的.py文件,用于对现有heat的数据库进行版本升级,以便支持新增服务。
所述的在heat的api包下定义新增服务包进一步包括:
定义新增服务的controller类;
定义新增服务的业务处理类;
设置新增服务api的URL映射;
所述的controller类被URL映射所调用,用于实现各种api接口调用后的入口控制;controller类继续调用业务处理类,完成接口的业务实现,包括数据的数据库保存。
所述的新增服务相关字典配置是指服务所必须的一些参数设置,包括服务启动主机地址bind_host,服务启动端口号bind_port。
所述的heat是开源云平台openstack的一个负责编排计划的组件,其主要功能是实现对云平台的上层应用进行模板化管理;所述的模板化管理是指heat根据模板内容来进行应用的自动部署;所述的模板是指一个类似于任务计划表的指定格式文件,该格式文件被heat所识别;所述的应用部署过程包括了基本的虚拟机创建和上层应用程序的安装配置;
所述的db包是指heat项目下一个包含了__init__.py文件的文件夹,所述的包是python语言的通用称呼;所述的api包定义与db包定义一致;所述的模块是python语言的一个通用称呼,特指一个.py文件;
所述的paste deploy是python的一个开源插件,用于实现wsgi服务的启动配置,利用其可以实现新增服务的启动加载;
所述的systemd是linux系统的一个系统服务管理模块,用于在进程启动过程中更有效地引导加载服务。
本发明方案的有益效果如下:
1、提供一种方法让云平台开发者可以快速实现基于heat的自定义扩展组件服务的创建。
2、本发明方法实现起来简单方便,且具有通用性。
附图说明
下面结合附图对本发明进一步说明:
图1为本发明的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出实质性创造的方案,都属于本发明保护的范围。
请参见图1,为本发明实施例提供的一种基于heat的新增组件服务方法的流程示意图,本实施类以新增一份模板管理的服务为例进行描述,其他新增服务类似。所述方法包括:
在heat/db/sqlalchemy/modules.py文件中定义模板管理服务的数据库表的实体类:
继续在heat/db/sqlalchemy/migrate_repo/versions包中定义新增服务的数据库表设计文件,例如047_gcloud_templates.py。其中047代表的是heat数据库表设计文件递增序号,该文件主要定义upgrade函数和downgrade函数,分别用于升级和降级数据库。
在heat/api包目录下新增gcloud_template/v1子包,该子包里面主要用来设计新增模板服务的api接口相关,如定义URL映射的class API,定义接口处理类TemplateController,定义接口业务处理、数据存储类Template_inst以及接口数据验证相关。其中URL映射设计如下:
如上定义了模板管理服务的所有接口,并统一调用template_resource=template.create_resource(conf)创建的TemplateController类实例template_resource作为接口控制,其中TemplateController定义了URL映射指定的create/template_count/get_template_contents/delete/index/show/direct_add等方法,在这些方法中又进一步调用了业务数据管理相关的Template_inst类实例方法。这样新增的模板服务主要的业务流程已经实现。
在heat的common包wsgi模块下新增服务相关字典配置,对于模板管理服务主要包括服务启动节点bind_host和服务启动端口bind_port等,如下:
经过如上步骤,我们已经完成了模板管理服务的主流程,下面只需要将服务进行部署,并配置成系统服务即可。
这里我们使用paste deploy部署新增服务,主要过程是在heat启动配置文件/usr/share/heat/api-paste-dist.ini中定义如下配置:
[pipeline:gcloud-template-api]
pipeline=request_id faultwrap ssl versionnegotiation authurlauthtoken context gcloud-templatevlapp
[app:gcloud-templatevlapp]
paste.app_factory=heat.common.wsgi:app_factory
heat.app_factory=heat.api.gcloud-template.v1:API
继续将模板服务设计成系统systemd服务,只需要在/usr/lib/systemd/system/下面增加模板服务文件gcloud-template-api.service即可,内容如下:
[root@controller~]#cat/usr/lib/systemd/system/gcloud-template-api.service
[Unit]
Description=OpenStack Heat APIService
After=syslog.target network.target
[Service]
Type=simple
User=heat
ExecStart=/usr/bin/gcloud-template-api--logfile/var/log/heat/gcloud-template-api.log
[Install]
WantedBy=multi-user.target。

Claims (7)

1.一种基于heat的新增组件服务方法,其特征在于,所述的方法包括:
在heat的db包中设计新增服务的数据库ORM;
在heat的api包下定义新增服务包;
在heat的common包wsgi模块下新增服务相关字典配置;
对新增服务设置paste deploy;
将新增服务配置成类似systemd系统服务。
2.根据权利要求1所述的新增组件服务方法,其特征在于,所述的在heat的db包中设计新增服务的数据库ORM进一步包括:
在sqlalchemy包下的modules包中定义新增服务的数据库表的实体类;
在versions包中定义新增服务的数据库表设计文件;
所述的ORM是指对象关系映射,实现将数据库表直接映射到编程语言对象,一个表对应一个实体类;
所述的数据库设计文件是一个带有版本系列号的.py文件,用于对现有heat的数据库进行版本升级,以便支持新增服务。
3.根据权利要求1所述的新增组件服务方法,其特征在于,所述的在heat的api包下定义新增服务包进一步包括:
定义新增服务的controller类;
定义新增服务的业务处理类;
设置新增服务api的URL映射;
所述的controller类被URL映射所调用,用于实现各种api接口调用后的入口控制;controller类继续调用业务处理类,完成接口的业务实现,包括数据的数据库保存。
4.根据权利要求2所述的新增组件服务方法,其特征在于,所述的在heat的api包下定义新增服务包进一步包括:
定义新增服务的controller类;
定义新增服务的业务处理类;
设置新增服务api的URL映射;
所述的controller类被URL映射所调用,用于实现各种api接口调用后的入口控制;controller类继续调用业务处理类,完成接口的业务实现,包括数据的数据库保存。
5.根据权利要求1至4任一项所述的新增组件服务方法,其特征在于,所述的新增服务相关字典配置是指服务所必须的一些参数设置,包括服务启动主机地址bind_host,服务启动端口号bind_port。
6.根据权利要求1至4任一项所述的新增组件服务方法,其特征在于,
所述的heat是开源云平台openstack的一个负责编排计划的组件,其功能是实现对云平台的上层应用进行模板化管理;所述的模板化管理是指heat根据模板内容来进行应用的自动部署;所述的模板是指一个类似于任务计划表的指定格式文件,该格式文件被heat所识别;所述的应用部署过程包括了基本的虚拟机创建和上层应用程序的安装配置;
所述的db包是指heat项目下一个包含了__init__.py文件的文件夹,所述的包是python语言的通用称呼;所述的api包定义与db包定义一致;所述的模块是python语言的一个通用称呼,特指一个.py文件;
所述的paste deploy是python的一个开源插件,用于实现wsgi服务的启动配置,利用其可以实现新增服务的启动加载;
所述的systemd是linux系统的一个系统服务管理模块,用于在进程启动过程中更有效地引导加载服务。
7.根据权利要求5所述的新增组件服务方法,其特征在于,
所述的heat是开源云平台openstack的一个负责编排计划的组件,其功能是实现对云平台的上层应用进行模板化管理;所述的模板化管理是指heat根据模板内容来进行应用的自动部署;所述的模板是指一个类似于任务计划表的指定格式文件,该格式文件被heat所识别;所述的应用部署过程包括了基本的虚拟机创建和上层应用程序的安装配置;
所述的db包是指heat项目下一个包含了__init__.py文件的文件夹,所述的包是python语言的通用称呼;所述的api包定义与db包定义一致;所述的模块是python语言的一个通用称呼,特指一个.py文件;
所述的paste deploy是python的一个开源插件,用于实现wsgi服务的启动配置,利用其可以实现新增服务的启动加载;
所述的systemd是linux系统的一个系统服务管理模块,用于在进程启动过程中更有效地引导加载服务。
CN201610368064.6A 2016-05-26 2016-05-26 一种基于heat的新增组件服务方法 Active CN106095476B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610368064.6A CN106095476B (zh) 2016-05-26 2016-05-26 一种基于heat的新增组件服务方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610368064.6A CN106095476B (zh) 2016-05-26 2016-05-26 一种基于heat的新增组件服务方法

Publications (2)

Publication Number Publication Date
CN106095476A CN106095476A (zh) 2016-11-09
CN106095476B true CN106095476B (zh) 2019-04-26

Family

ID=57230259

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610368064.6A Active CN106095476B (zh) 2016-05-26 2016-05-26 一种基于heat的新增组件服务方法

Country Status (1)

Country Link
CN (1) CN106095476B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106528253A (zh) * 2016-12-13 2017-03-22 上海仪电(集团)有限公司中央研究院 基于OpenStack Heat的智慧城市应用删除方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130127636A1 (en) * 2011-11-20 2013-05-23 Cardibo, Inc. Wireless sensor network for determining cardiovascular machine usage
CN104717251B (zh) * 2013-12-12 2018-02-09 中国科学院深圳先进技术研究院 OpenStack云计算管理平台Cell节点调度方法和系统
CN104902005A (zh) * 2015-04-13 2015-09-09 中国联合网络通信集团有限公司 一种混合云中的资源调度方法、系统和私有云
CN105607903A (zh) * 2015-12-15 2016-05-25 国云科技股份有限公司 一种部署openstack组件的方法

Also Published As

Publication number Publication date
CN106095476A (zh) 2016-11-09

Similar Documents

Publication Publication Date Title
US11966771B2 (en) Dynamic image composition for container deployment
TWI493465B (zh) 分配式應用程式堆疊與部署方法及系統
CN103514023B (zh) 一种虚拟机离线自动软件安装的方法及系统
US9053236B1 (en) Automated directory services test setup utility
CN103235725A (zh) 一种基于linux的Oracle数据库在云计算中的快速部署方法
CN106406960B (zh) 一种linux环境中快速部署软件的方法
CN106155651A (zh) 应用程序版本的自动化发布及更新的方法和系统
CN109871213A (zh) 基于国产平台的OpenStack容器化系统及方法
US20130007726A1 (en) Virtual machine disk image installation
CN103327108B (zh) 一种基于云的跨平台的软件管理平台及其构建方法
CN105224466A (zh) 一种基于Docker的集成测试方法及系统
US20170249469A1 (en) Accessing file systems in a virtual environment
CN103324474B (zh) 基于Linux操作系统跨体系构造ISO的方法及模块
CN103425511A (zh) 云计算环境中应用软件安装部署的系统及方法
US9892122B2 (en) Method and apparatus for determining a range of files to be migrated
CN103856343A (zh) 配置虚拟机网络信息的方法及系统
CN109739616A (zh) 一种云平台容器镜像批量制作方法
CN103873534A (zh) 一种应用集群迁移方法及装置
WO2017020459A1 (zh) 一种为宿主配置插件包的方法与装置
CN104700025A (zh) 基于云计算的软件安装控制方法及系统
CN105426208A (zh) 一种云计算系统OpenStack离线自动安装方法
US20180284999A1 (en) Data Migration with Application-Native Export and Import Capabilities
US20200106711A1 (en) Apparatus and method for managing application on multi-cloud service environment
CN111868685A (zh) 用于对装置的云环境进行版本控制的系统和方法
CN106201466B (zh) 一种基于heat的模板管理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 523808 19th Floor, Cloud Computing Center, Chinese Academy of Sciences, No. 1 Kehui Road, Songshan Lake Hi-tech Industrial Development Zone, Dongguan City, Guangdong Province

Applicant after: G-Cloud Technology Co., Ltd.

Address before: 523808 No. 14 Building, Songke Garden, Songshan Lake Science and Technology Industrial Park, Dongguan City, Guangdong Province

Applicant before: G-Cloud Technology Co., Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20201214

Address after: Room 203, 2 / F, building 6, modern service industry headquarters park, 1769 Yunfeng Avenue, Yunlong demonstration zone, Zhuzhou City, Hunan Province

Patentee after: Hunan Zhongke Guoyun big data industry development Co.,Ltd.

Address before: 523808 19th floor, Cloud Computing Center, Chinese Academy of Sciences, No.1 Kehui Road, Songshanhu high tech Industrial Development Zone, Dongguan City, Guangdong Province

Patentee before: G-CLOUD TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right