CN109753302B - 基于混合云计算平台的无服务函数的服务方法 - Google Patents
基于混合云计算平台的无服务函数的服务方法 Download PDFInfo
- Publication number
- CN109753302B CN109753302B CN201811555136.3A CN201811555136A CN109753302B CN 109753302 B CN109753302 B CN 109753302B CN 201811555136 A CN201811555136 A CN 201811555136A CN 109753302 B CN109753302 B CN 109753302B
- Authority
- CN
- China
- Prior art keywords
- service
- function
- service function
- storage
- cloud computing
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明属于无服务函数服务技术领域,具体涉及基于混合云计算平台的无服务函数的服务方法,包括以下步骤:无服务函数的提交过程、无服务函数的运行过程、无服务函数的结果及状态回收过程。本发明提供的基于混合云计算平台的无服务函数的服务方法,适用于高性能计算领域,通过方法可集成不同种类的云计算服务或自建开源的容器化集群,并提供无服务函数的解决方案。
Description
技术领域
本发明属于无服务函数服务技术领域,具体涉及基于混合云计算平台的无服务函数的服务方法。
背景技术
现今无服务式架构成为软件架构设计中非常热门的话题,包括世界三大云服务提供商——Amazon,Google和微软都在无服务架构的产品及生态打造上投入相对较大的研发成本,而国内也不乏例如阿里云函数计算平台、腾讯云SCF无服务平台在科学计算与无服务架构上的产品推广与实践。同时,我们也逐步看到越来越多的文献、资料以及开源社区开始致力于各种类型的无服务架构设计的探索。我们可以将典型的无服务类型架构划分为两大类:
第一类用于描述某些应用将服务端的业务逻辑托管于第三方云服务,亦或者通过客户端直接与第三方云服务建立连接共同完成服务端的逻辑与状态控制。具有“富客户端”类型的应用多采用此类架构,例如一些手机软件通过将数据存储逻辑托管给GoogleFirebase服务,而将认证逻辑托管给第三方认证服务Auth0,实现一个完整的无服务应用架构。此类型的无服务架构也通常被称为”(Mobile) Backend as a Service”(以下统称BaaS)。
第二类无服务架构区别于第一类的特点是服务端的逻辑不再完全托管于第三方云服务提供商,而是可以由应用开发人员参与设计与编写。区别于传统的服务端架构设计,此类服务端完全由一个无状态的容器环境通过事件驱动方式触发逻辑执行,而开发人员无需关注容器环境的运维与资源调度问题。通常成此类方法为“Function as a Service”(以下统称FaaS)。例如,AWS Lambda服务、腾讯云SCF服务以及阿里云函数计算服务都属于此类设计的封装与实现。
无论以上两种方式,目前都存在以下缺陷与不足:
(1)云平台或者云服务提供商架构绑定,无论BaaS服务还是FaaS服务,其平台设计实现与服务商的服务栈绑定较强,而对于跨服务、跨云以及本地存储的支持较弱。从而增加了在同时使用不同类型云服务提供商时的资源伸缩和成本评估难度。
(2)两种类型的产品对于后端运行环境的要求颇为严格,环境依赖配置的修改与管理均较为复杂,且对于自定义环境的支持不足。
(3)两类产品的数据结构与存储模型无统一标准,各自云服务提供商有不同的解决方案与存储服务提供给用户,导致用户在同时使用不同类型的无服务系统构建应用时很难统一配置和调度不同云服务的计算资源及计算结果聚合。
(4)两类云服务产品均不支持对接自建的容器化集群,无法给那些既有自建容器化集群系统(例如开源的Mesos,Kubernetes容器管理平台)或对于计算资源有特殊隔离性要求的用户提供无服务架构解决方案。
发明内容
针对上述技术问题,本发明提供一种基于混合云计算平台的无服务函数的服务方法,适用于高性能计算领域,通过方法可集成不同种类的云计算服务或自建开源的容器化集群,并提供无服务函数的解决方案。
具体技术方案为:
基于混合云计算平台的无服务函数的服务方法,包括以下步骤:无服务函数的提交过程、无服务函数的运行过程、无服务函数的结果及状态回收过程。
具体的,所述的无服务函数的提交流程,包括以下步骤:
(1)用户编写好自定义函数后与函数运行时的环境配置脚本后,通过对象序列化方式将函数与参数转换成字符串并以文件形式存储,同时需要序列化的还有定义函数的编程环境参数,用于在服务端反序列执行该函数时可以还原编程开发时的环境依赖关系
(2)初始化无服务函数的服务端类型,任意一个指定的服务端需要配属一个可供使用的存储服务;进而可以将序列化好后的函数、参数、环境配置脚本与编程环境参数文件上传到指定服务端的云存储服务中,并触发无服务函数的运行;成功开始运行会返回一个唯一的无服务函数存储ID,即无服务函数的存储实例地址,其中保存有无服务函数的序列化文件、运行状态、运行结果相关数据。
所述的无服务函数运行过程,包括以下步骤:
(1)通过解析提交参数中的无服务函数存储ID,到对应的存储服务中下载到所有的用户序列化上传文件;
(2)按照“恢复编程开发环境依赖关系”->“执行环境配置脚本”->“反序列化用户自定义函数与参数”->“执行用户自定义函数与参数”的顺序以此执行,并将自定义函数的结果序列化后存储成文件,最终上传回无服务函数存储ID所指定的地址;
若运行失败,则将错误信息捕获后序列化,通过同样的方式回传给存储服务中。
所述的无服务函数结果及状态回收过程,包括以下步骤:
通过无服务函数的存储ID,可以恢复出与原提交端等同的无服务函数实例,继而可通过该实例对当前无服务函数的运行状态进行查询;
若运行成功,可从存储ID所指定的地方下载结果文件并进行反序列获取内容;
若运行失败,可用同样方式下载运行错误信息。
本发明提供的基于混合云计算平台的无服务函数的服务方法,具有以下技术效果:
(1)可以对接多种无服务产品以及开源容器管理平台,实现混合云计算平台的无服务函数调度。
(2)对于依赖管理有独立的依赖配置模块,支持开发人员通过典型的Linux Shell脚本实现服务端环境的配置管理;同时在对接容器化集群时,以插件形式集成到任意容器中,将容器变成无服务函数的运行环境。
(3)统一的对象存储平台持久化所有无服务函数的状态及运算结果,并通过统一的对象序列化方式与SDK帮助无服务函数使用者回收计算结果。
(4)能够灵活的扩展支持开源的容器管理系统,例如Mesos、Kubernetes,或者托管的容器管理云服务例如AWS ECS等,将传统容器化集群封装成无服务函数系统。
附图说明
图1是本发明的无服务函数的提交过程的流程图;
图2是本发明的无服务函数的运行过程的流程图;
图3是本发明的无服务函数的结果及状态回收过程的流程图;
图4是本发明对接不同云服务与自建容器集群的架构示意图。
具体实施方式
结合实施例说明本发明的具体技术方案。
基于混合云计算平台的无服务函数的服务方法,主要可分为三个流程:无服务函数的提交过程、运行过程、结果及状态回收过程。
如图1所示,无服务函数的提交流程:
首先,用户编写好自定义函数后与函数运行时的环境配置脚本后,通过对象序列化方式将函数与参数转换成字符串并以文件形式存储,同时需要序列化的还有定义函数的编程环境参数,用于在服务端反序列执行该函数时可以还原编程开发时的环境依赖关系。其次,初始化无服务函数的服务端类型,可以是指定的第三方云服务例如AWS Lambda、腾讯云SCF等,或者是自建容器花集群例如Kubernetes、Mesos等,任意一个指定的服务端需要配属一个可供使用的存储服务,可以是AWS S3、腾讯云的COS,或者集群内的硬盘存储服务。进而可以将序列化好后的函数、参数、环境配置脚本与编程环境参数文件上传到指定服务端的云存储服务中,并触发无服务函数的运行。成功开始运行会返回一个唯一的无服务函数存储ID,即无服务函数的存储实例地址,其中保存有无服务函数的序列化文件、运行状态、运行结果等相关数据。
如图2所示,无服务函数运行过程:
首先,通过解析提交参数中的无服务函数存储ID,到对应的存储服务中下载到所有的用户序列化上传文件。然后,按照“恢复编程开发环境依赖关系”->“执行环境配置脚本”->“反序列化用户自定义函数与参数”->“执行用户自定义函数与参数”的顺序以此执行,并将自定义函数的结果序列化后存储成文件,最终上传回无服务函数存储ID所指定的地址。若运行失败,则将错误信息捕获后序列化,通过同样的方式回传给存储服务中。
如图3所示,无服务函数结果及状态回收过程:
因为无服务函数的状态回收端可能并非是任务提交端,所以通过无服务函数的存储ID,可以恢复出与原提交端等同的无服务函数实例,继而可通过该实例对当前无服务函数的运行状态进行查询。若运行成功,可从存储ID所指定的地方下载结果文件并进行反序列获取内容;若运行失败,可用同样方式下载运行错误信息。
如图4所示,基于混合云计算平台的无服务函数的服务方法,对接不同云服务与自建容器集群的架构方式。其中,用户按无服务函数的提交流程的描述方式将自定义函数与参数列表序列化后,通过存储适配器模块上传到指定云存储中。该存储适配器模块通过抽象化存储过程中的增删改查接口,实现对接不同云服务提供商的对象存储服务,亦或者自建容器化集群的硬盘存储过程。同时,调度适配器模块用于抽象不同云服务与自建容器化集群在任务提交与管理过程中的相关接口。因此,用户可通过存储适配器与调度适配器的初始化过程中指定需要使用的云服务或者容器化集群资源,无需修改自定义函数和参数即可实现无服务函数的混合云计算平台支持。
本基于混合云计算平台的无服务函数的服务方法,实现主要基于AWS Lambda与自建Mesos容器化集群,基于Python 2.7.13所开发的无服务函数存储适配器与调度适配器完成以上两个云计算平台的混合无服务架构。其中AWS Lambda的云服务存储采用的AWS S3,而自建Mesos集群由于建立于AWS EC2虚拟机之上,所以也可公用AWS S3作为其无服务函数的存储服务。
用户可通过Python环境配置安装整个客户端,当用户在本机编写完Python的自定义函数与参数后,通过调用客户端的存储适配器storage_engine将当前环境依赖关系、自定义函数、自定义参数列表、运行环境配置脚本均序列化上传至AWS S3的指定Bucket内,Bucket的目录名称为一个随机分配的全局唯一字符串ID,用于帮助用户标示不同的无服务函数调用实例。当完成以上无服务函数存储过程后即可通过调度适配器Executor进行无服务函数提交,executor封装了底层对接不同云服务及容器化集群的调度接口,并通过Invoker进行调度接口抽象后暴露给Executor进行调用。此时,用户可通过无服务函数提交返回的唯一ID对无服务函数的状态进行监控,并可在运行成功结束后,通过存储适配器storage_engine下载并反序列化无服务函数的运行结果,即用户本地自定义函数与参数执行的结果一致。反之,则获取到运行错误信息帮助用户排查函数定义及运行时错误。
Claims (3)
1.基于混合云计算平台的无服务函数的服务方法,其特征在于,包括以下步骤:无服务函数的提交过程、无服务函数的运行过程、无服务函数的结果及状态回收过程,
所述的无服务函数的提交流程,包括以下步骤:
(1)用户编写好自定义函数后与函数运行时的环境配置脚本后,通过对象序列化方式将函数与参数转换成字符串并以文件形式存储,同时需要序列化的还有定义函数的编程环境参数,用于在服务端反序列执行该函数时可以还原编程开发时的环境依赖关系;
(2)初始化无服务函数的服务端类型,任意一个指定的服务端需要配属一个可供使用的存储服务;进而可以将序列化好后的函数、参数、环境配置脚本与编程环境参数文件上传到指定服务端的云存储服务中,并触发无服务函数的运行;成功开始运行会返回一个唯一的无服务函数存储ID,即无服务函数的存储实例地址,其中保存有无服务函数的序列化文件、运行状态、运行结果相关数据。
2.根据权利要求1所述的基于混合云计算平台的无服务函数的服务方法,其特征在于,所述的无服务函数运行过程,包括以下步骤:
(1)通过解析提交参数中的无服务函数存储ID,到对应的存储服务中下载到所有的用户序列化上传文件;
(2)按照“恢复编程开发环境依赖关系”->“执行环境配置脚本”->“反序列化用户自定义函数与参数”->“执行用户自定义函数与参数”的顺序以此执行,并将自定义函数的结果序列化后存储成文件,最终上传回无服务函数存储ID所指定的地址;
若运行失败,则将错误信息捕获后序列化,通过同样的方式回传给存储服务中。
3.根据权利要求1所述的基于混合云计算平台的无服务函数的服务方法,其特征在于,所述的无服务函数结果及状态回收过程,包括以下步骤:
通过无服务函数的存储ID,可以恢复出与原提交端等同的无服务函数实例,继而可通过该实例对当前无服务函数的运行状态进行查询;
若运行成功,可从存储ID所指定的地方下载结果文件并进行反序列获取内容;
若运行失败,可用同样方式下载运行错误信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811555136.3A CN109753302B (zh) | 2018-12-19 | 2018-12-19 | 基于混合云计算平台的无服务函数的服务方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811555136.3A CN109753302B (zh) | 2018-12-19 | 2018-12-19 | 基于混合云计算平台的无服务函数的服务方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109753302A CN109753302A (zh) | 2019-05-14 |
CN109753302B true CN109753302B (zh) | 2022-03-18 |
Family
ID=66403968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811555136.3A Active CN109753302B (zh) | 2018-12-19 | 2018-12-19 | 基于混合云计算平台的无服务函数的服务方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109753302B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11873709B2 (en) * | 2020-10-07 | 2024-01-16 | Saudi Arabian Oil Company | Log based diagenetic rock typing and sweet spot identification for tight gas sandstone reservoirs |
CN117112074B (zh) * | 2023-06-19 | 2024-03-12 | 领悦数字信息技术有限公司 | 将http应用自动转换成无服务器函数的方法、系统和介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9755858B2 (en) * | 2014-04-15 | 2017-09-05 | Cisco Technology, Inc. | Programmable infrastructure gateway for enabling hybrid cloud services in a network environment |
CN105939375A (zh) * | 2016-04-13 | 2016-09-14 | 福州大学 | 基于模型的PaaS混合云构造方法 |
CN106227728A (zh) * | 2016-07-01 | 2016-12-14 | 江苏省广播电视集团有限公司 | 一种基于混合云服务平台的边传边编PaaS服务能力应用系统及方法 |
CN108270728B (zh) * | 2016-12-30 | 2020-10-30 | 上海华讯网络系统有限公司 | 基于容器的混合云管理系统及方法 |
US10257033B2 (en) * | 2017-04-12 | 2019-04-09 | Cisco Technology, Inc. | Virtualized network functions and service chaining in serverless computing infrastructure |
-
2018
- 2018-12-19 CN CN201811555136.3A patent/CN109753302B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109753302A (zh) | 2019-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109062655B (zh) | 一种容器化云平台及服务器 | |
CN112585919B (zh) | 利用基于云的应用管理技术来管理应用配置状态的方法 | |
CN107967159B (zh) | 一种配置文件应用的方法以及服务器 | |
JP7421511B2 (ja) | アプリケーションをデプロイするための方法及び装置、電子機器、読み取り可能な記憶媒体並びにコンピュータプログラム | |
US10324709B2 (en) | Apparatus and method for validating application deployment topology in cloud computing environment | |
US20190026085A1 (en) | Intelligent cloud engineering platform | |
US20240152406A1 (en) | Deploying cloud-native services across control planes | |
US20130262923A1 (en) | Efficient application management in a cloud with failures | |
CN114008605A (zh) | 大数据应用生命周期管理 | |
US9542174B2 (en) | Deployment of software images with distinct configuration logic | |
US10949271B2 (en) | Enhanced copy-and-paste | |
CN103608773A (zh) | 用于多节点应用的部署系统 | |
WO2022037612A1 (zh) | 提供应用构建服务的方法及应用构建平台、应用部署方法和系统 | |
CN111984270A (zh) | 应用部署方法和系统 | |
CN111274002A (zh) | 支撑paas平台构建方法、装置、计算机设备及存储介质 | |
CN111124286A (zh) | 一种基于Libcloud的多云管理实现方法 | |
CN103077034B (zh) | 混合虚拟化平台java应用迁移方法与系统 | |
WO2024077885A1 (zh) | 容器集群的管理方法、装置、设备及非易失性可读存储介质 | |
CN112199164A (zh) | 一种保证容器镜像一致性的方法 | |
EP2842044A1 (en) | Platform runtime abstraction | |
CN109753302B (zh) | 基于混合云计算平台的无服务函数的服务方法 | |
CN107741874B (zh) | 一种gis云虚拟机自动创建方法及系统 | |
WO2020124459A1 (zh) | 基于混合云计算平台的无服务函数的服务方法 | |
CN111273960A (zh) | 一种实现云原生的mips架构容器云的方法 | |
CN113419813B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 3 / F, Shunfeng industrial building, No.2 Hongliu Road, Fubao community, Fubao street, Futian District, Shenzhen City, Guangdong Province Applicant after: Shenzhen Jingtai Technology Co.,Ltd. Address before: 518000 4th floor, No.9 Hualian Industrial Zone, Xinshi community, Dalang street, Longhua District, Shenzhen City, Guangdong Province Applicant before: Shenzhen Jingtai Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |