CN107807859A - 一种FaaS框架及其工作方法、开发运维FaaS框架的系统 - Google Patents
一种FaaS框架及其工作方法、开发运维FaaS框架的系统 Download PDFInfo
- Publication number
- CN107807859A CN107807859A CN201711003633.8A CN201711003633A CN107807859A CN 107807859 A CN107807859 A CN 107807859A CN 201711003633 A CN201711003633 A CN 201711003633A CN 107807859 A CN107807859 A CN 107807859A
- Authority
- CN
- China
- Prior art keywords
- modules
- docker
- function
- module
- faas
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/22—Procedural
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
一种FaaS框架,包括API gateway模块和function watchdog模块,用于实时扩展新的功能模块;还包括一种FaaS框架的工作方法、一种开发运维FaaS框架的系统。可确保开发人员只需关注待开发的功能,避免了大量重复的开发工作,同时极大地减少了以往Faas的开发成本。
Description
技术领域
本方面涉及系统体系结构技术领域,具体地说是一种FaaS框架及其工作方法、开发运维FaaS框架的系统。
背景技术
云计算时代出现了大量XaaS形式的概念,从IaaS(Infrastructure as aService)、PaaS(Platform as a Service)、SaaS(Software as a Service)到容器云引领的CaaS(Containers as a Service),再到火热的微服务架构,它们都在试着将各种软、硬件资源等抽象为一种服务提供给开发者使用,让他们不再担心基础设施、资源需求、中间件等等,在减轻心智负担的同时更好地专注于业务。FaaS是Functions as a Service的简称,它往往和无服务架构(Serverless Architecture)一同被提起。
Lambda是FaaS的典型代表,它为云中运行的应用程序提供了一种全新的系统体系结构。至此再也不需要在服务器上持续运行进程以等待HTTP请求或API调用,而是可以通过某种事件机制触发代码的执行,通常这只需要在AWS的某台服务器上运行一个简单的功能。Lambda允许用户仅仅上传代码而无需提供和管理服务器,由它负责代码的执行、高可用扩展,支持从别的AWS服务或其他Web应用直接调用等。以电子商务应用为例,微服务中可以将浏览商品、添加购物车、下单、支付、查看物流等拆分为解耦的微服务。在FaaS里,它可以拆分到用户的所有CRUD操作代码。当发生“下单”事件时,将触发相应的Functions,交由Lambda执行。
虽然AWS Lambda提供了强大的应用程序开发/运行新方法,但在完全基于AWSLambda开发首个项目时急需一种新的结构。对Lambda所引入的所有容器进行管理这是一项困难的任务。对于包含多名开发者、多种阶段,或需要为多个区域提供支持的团队,很快就会开始变得手忙脚乱,导致开发测试工作的复杂度和成本会增加。
发明内容
本发明的目的在于提供一种FaaS框架及其工作方法、开发运维FaaS框架的系统,用于解决FaaS框架的容器管理困难、框架的开发测试复杂、成本高的问题。
本发明解决其技术问题所采取的技术方案是:一种FaaS框架,包括API gateway模块和function watchdog模块,用于实时扩展新的功能模块;
所述API gateway模块包括外部路由模块,用于提供外部路由,将web事件传递给对应的function单元;和,
Prometheus模块,用于实现性能度量数据的采集;和,
WEB UI模块,用于允许用户在浏览器中激活或创建function单元;和,
功能创建模块,用于基于采集到的性能度量数据,调用docker swarm或Kubernetes的api,对负荷紧张的function实例进行扩展,创建冗余的function实例;
所述function watchdog模块包括启动模块,用于启动目标进程;和,
转发输出模块,用于将http请求通过标准输入转发给对应的目标进程,通过标准输出返回相应的应答信息。
进一步地,所述的性能度量数据为每秒钟服务的访问次数。
一种FaaS框架的工作方法,具体包括以下步骤:
创建一个默认业务工具为fucntion watchdog的docker镜像;
把新开发的业务工具打包进该镜像,并把tprocess环境变量设为该工具的启动命令,导出8080端口;
把支持目前业务工具的运行环境打包到该镜像中;
在浏览器中创建新增的function或在配置文件中添加新增的功能单元定义;
启动业务工具。
进一步地,创建一个默认启动进程通过Dockerfile命令。
进一步地,在配置文件中添加新增的功能单元通过编辑docker-compose.yml文件。
所述启动业务工具具体包括:
在8080端口监听http请求;
收到客户端的http请求,解析该请求;
启动业务工具,并取得该程序的标准输入和标准输出;
将请求数据从标准输入发送给业务工具;
从标准输出获得业务工具的输出,并将该输出作为http请求的响应返回给客户端。
一种开发运维FaaS框架的系统,包括docker hub仓库,还包括发布模块,用于将API gateway模块发布到docker hub仓库中,以供下载使用;和,
下载点提供模块,用于给function watchdog模块提供下载点,方便新增function镜像的制作;和,
配置模块,用于部署API gateway模块、function watchdog模块以及这些模块之间的共享网络。
进一步地,将API gateway模块通过docker push命令发布到docker hub仓库中。
进一步地,所述的下载点为镜像在docker hub仓库中的位置。
进一步地,配置模块部署模块以及模块之间的网络按照docker指定的格式添加编辑docker-compose.yml。
以上发明内容提供的仅仅是本发明实施例的表述,而不是发明本身。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
减少开支:通过购买共享的基础设施,同时减少了花费在运维上的人力成本,最终减少了开支。
减轻负担:不再需要重复造轮子,需要什么功能直接集成调用即可,也无需考虑整体的性能,只专注于业务代码的实现。
易于扩展:提供了自动的弹性扩展。
简化管理:自动化的弹性扩展、减少了打包和部署的复杂度、可以快速推向市场,这些都让管理变得简单高效。
可确保开发人员只需关注待开发的功能,避免了大量重复的开发工作,同时极大地减少了以往Faas的开发成本。
附图说明
此处所说明的附图用来提供对本发明的进一步解释,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例的框架结构示意图;
图2为本发明实施例的工作流程示意图;
图3为本发明实施例的系统模块连接示意图。
具体实施方式
为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
如图1所示,一种FaaS框架,包括API gateway模块和function watchdog模块,用于实时扩展新的功能模块。
API gateway模块包括外部路由模块,用于提供外部路由,将web事件传递给对应的function单元;和,Prometheus模块,用于实现性能度量数据的采集;和,WEB UI模块,用于允许用户在浏览器中激活或创建function单元;和,功能创建模块,用于基于采集到的性能度量数据,调用docker swarm或Kubernetes的api,对负荷紧张的function实例进行扩展,创建冗余的function实例。
function watchdog模块包括启动模块,用于启动目标进程;和,转发输出模块,用于将http请求通过标准输入转发给对应的目标进程,通过标准输出返回相应的应答信息。
性能度量数据为每秒钟服务的访问次数。Api gateway模块会对每个服务的访问次数进行记录,同时Prometheus模块会定时地向Api gateway模块定时地要这些数据。
如图2所示,一种FaaS框架的工作方法,具体包括以下步骤:
步骤1)创建一个默认业务工具为fucntionwatchdog的docker镜像;
步骤2)把新开发的业务工具打包进该镜像,并把tprocess环境变量设为该工具的启动命令,导出8080端口;
步骤3)把支持目前业务工具的运行环境打包到该镜像中;运行环境是指业务工具运行所依赖的库,如配置文件。例如运行python脚本需要先安装python以及该进程所依赖的python模块。打包是指将这些依赖的文件拷贝到该镜像中。具体可以编辑上文中的Dockerfile,新增如下命令:
COPY依赖文件1目标路径。
步骤4)在浏览器中创建新增的function或在配置文件中添加新增的功能单元定义;
步骤5)启动业务工具。
创建一个默认启动进程通过Dockerfile命令。如:Dockerfile
FROM alpine
ADD./funcwatchdog/usr/bin
CMD[“funwatchdog”]
然后运行命令,docker build
在配置文件中添加新增的功能单元通过编辑docker-compose.yml文件。
步骤5)中启动业务工具具体包括:
步骤51)在8080端口监听http请求;
步骤52)收到客户端的http请求,解析该请求;
步骤53)启动业务工具,并取得该程序的标准输入和标准输出;
步骤54)将请求数据从标准输入发送给业务工具;
步骤55)从标准输出获得业务工具的输出,并将该输出作为http请求的响应返回给客户端。
如图3所示,一种开发运维FaaS框架的系统,包括docker hub仓库,还包括发布模块,用于将API gateway模块发布到docker hub仓库中,以供下载使用;和,下载点提供模块,用于给function watchdog模块提供下载点,方便新增function镜像的制作;和,配置模块,用于部署API gateway模块、function watchdog模块以及这些模块之间的共享网络。
将API gateway模块通过docker push命令发布到docker hub仓库中。Docker hub仓库是个公有的docker镜像的仓库,用户可以使用docker push命令将创建的镜像发布到该仓库中供所有人下载使用该镜像。
下载点为镜像在docker hub仓库中的位置。可使用docker pull镜像名将其下下来。例如:docker pull inspur/function_watchdog。
配置模块按照docker指定的格式添加编辑docker-compose.yml并指定这些服务使用同一个网络,docker会解析这文件,然后创建这些服务和网络,并指定这些服务使用该网络。
以上所述只是本发明的优选实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也被视为本发明的保护范围。
Claims (10)
1.一种FaaS框架,其特征是,包括API gateway模块和function watchdog模块,用于实时扩展新的功能模块;
所述API gateway模块包括外部路由模块,用于提供外部路由,将web事件传递给对应的function单元;和,
Prometheus模块,用于实现性能度量数据的采集;和,
WEB UI模块,用于允许用户在浏览器中激活或创建function单元;和,
功能创建模块,用于基于采集到的性能度量数据,调用docker swarm或Kubernetes的api,对负荷紧张的function实例进行扩展,创建冗余的function实例;
所述function watchdog模块包括启动模块,用于启动目标进程;和,
转发输出模块,用于将http请求通过标准输入转发给对应的目标进程,通过标准输出返回相应的应答信息。
2.根据权利要求1所述的框架,其特征是,所述的性能度量数据为每秒钟服务的访问次数。
3.一种FaaS框架的工作方法,其特征是,具体包括以下步骤:
创建一个默认业务工具为fucntion watchdog的docker镜像;
把新开发的业务工具打包进该镜像,并把tprocess环境变量设为该工具的启动命令,导出8080端口;
把支持目前业务工具的运行环境打包到该镜像中;
在浏览器中创建新增的function或在配置文件中添加新增的功能单元定义;
启动业务工具。
4.根据权利要求3所述的方法,其特征是,创建一个默认启动进程通过Dockerfile命令。
5.根据权利要求3所述的方法,其特征是,在配置文件中添加新增的功能单元通过编辑docker-compose.yml文件。
6.根据权利要求3所述的方法,其特征是,所述启动业务工具具体包括:
在8080端口监听http请求;
收到客户端的http请求,解析该请求;
启动业务工具,并取得该程序的标准输入和标准输出;
将请求数据从标准输入发送给业务工具;
从标准输出获得业务工具的输出,并将该输出作为http请求的响应返回给客户端。
7.一种开发运维FaaS框架的系统,包括docker hub仓库,其特征是,还包括发布模块,用于将API gateway模块发布到docker hub仓库中,以供下载使用;和,
下载点提供模块,用于给function watchdog模块提供下载点,方便新增function镜像的制作;和,
配置模块,用于部署API gateway模块、function watchdog模块以及这些模块之间的共享网络。
8.根据权利要求7所述的系统,其特征是,将API gateway模块通过docker push命令发布到docker hub仓库中。
9.根据权利要求7所述的系统,其特征是,所述的下载点为镜像在docker hub仓库中的位置。
10.根据权利要求7所述的系统,其特征是,配置模块部署模块以及模块之间的网络按照docker指定的格式添加编辑docker-compose.yml。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711003633.8A CN107807859A (zh) | 2017-10-24 | 2017-10-24 | 一种FaaS框架及其工作方法、开发运维FaaS框架的系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711003633.8A CN107807859A (zh) | 2017-10-24 | 2017-10-24 | 一种FaaS框架及其工作方法、开发运维FaaS框架的系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107807859A true CN107807859A (zh) | 2018-03-16 |
Family
ID=61591713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711003633.8A Pending CN107807859A (zh) | 2017-10-24 | 2017-10-24 | 一种FaaS框架及其工作方法、开发运维FaaS框架的系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107807859A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109508432A (zh) * | 2018-11-28 | 2019-03-22 | 段红 | 一种基于区块链的高性能faas系统 |
CN109710223A (zh) * | 2018-12-29 | 2019-05-03 | 北京邮电大学 | 基于分布式kv存储系统的api网关热插拔系统 |
CN109783194A (zh) * | 2018-12-29 | 2019-05-21 | 广东万云信息科技有限公司 | 国防动员平台的处理方法、装置、设备和存储介质 |
CN112470126A (zh) * | 2018-05-29 | 2021-03-09 | 瑞典爱立信有限公司 | 功能即服务的提高的性能 |
CN114663202A (zh) * | 2022-05-19 | 2022-06-24 | 山东佳联电子商务有限公司 | 一种基于faas函数服务的拍卖竞价系统及方法 |
CN115695412A (zh) * | 2022-09-28 | 2023-02-03 | 北京亚控科技发展有限公司 | 工业应用系统、开发方法、装置及存储介质 |
CN116643950A (zh) * | 2023-07-19 | 2023-08-25 | 浩鲸云计算科技股份有限公司 | 一种基于FaaS的云原生应用自动化运维方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101442842A (zh) * | 2007-11-19 | 2009-05-27 | 株式会社Ntt都科摩 | 虚拟终端服务器、移动通信终端、通信控制系统及方法 |
US20160020959A1 (en) * | 2014-07-15 | 2016-01-21 | Mohammad Ashiqur Rahaman | Forensic software investigation |
CN106681834A (zh) * | 2016-12-28 | 2017-05-17 | 上海优刻得信息科技有限公司 | 分布式计算方法、管理装置及系统 |
-
2017
- 2017-10-24 CN CN201711003633.8A patent/CN107807859A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101442842A (zh) * | 2007-11-19 | 2009-05-27 | 株式会社Ntt都科摩 | 虚拟终端服务器、移动通信终端、通信控制系统及方法 |
US20160020959A1 (en) * | 2014-07-15 | 2016-01-21 | Mohammad Ashiqur Rahaman | Forensic software investigation |
CN106681834A (zh) * | 2016-12-28 | 2017-05-17 | 上海优刻得信息科技有限公司 | 分布式计算方法、管理装置及系统 |
Non-Patent Citations (1)
Title |
---|
IT168: ""无服务器功能构建简单化 功能即服务-OpenFaaS介绍"", 《IT168》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112470126A (zh) * | 2018-05-29 | 2021-03-09 | 瑞典爱立信有限公司 | 功能即服务的提高的性能 |
US11960940B2 (en) | 2018-05-29 | 2024-04-16 | Telefonaktiebolaget Lm Ericsson (Publ) | Performance of function as a service |
CN112470126B (zh) * | 2018-05-29 | 2024-05-24 | 瑞典爱立信有限公司 | 功能即服务的提高的性能 |
CN109508432A (zh) * | 2018-11-28 | 2019-03-22 | 段红 | 一种基于区块链的高性能faas系统 |
CN109508432B (zh) * | 2018-11-28 | 2023-07-14 | 智鸟科技有限公司 | 一种基于区块链的高性能faas系统 |
CN109710223A (zh) * | 2018-12-29 | 2019-05-03 | 北京邮电大学 | 基于分布式kv存储系统的api网关热插拔系统 |
CN109783194A (zh) * | 2018-12-29 | 2019-05-21 | 广东万云信息科技有限公司 | 国防动员平台的处理方法、装置、设备和存储介质 |
CN114663202A (zh) * | 2022-05-19 | 2022-06-24 | 山东佳联电子商务有限公司 | 一种基于faas函数服务的拍卖竞价系统及方法 |
CN115695412A (zh) * | 2022-09-28 | 2023-02-03 | 北京亚控科技发展有限公司 | 工业应用系统、开发方法、装置及存储介质 |
CN116643950A (zh) * | 2023-07-19 | 2023-08-25 | 浩鲸云计算科技股份有限公司 | 一种基于FaaS的云原生应用自动化运维方法 |
CN116643950B (zh) * | 2023-07-19 | 2023-10-20 | 浩鲸云计算科技股份有限公司 | 一种基于FaaS的云原生应用自动化运维方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107807859A (zh) | 一种FaaS框架及其工作方法、开发运维FaaS框架的系统 | |
JP7011737B2 (ja) | コネクタ開発および統合チャネル展開のためのシステムおよび方法 | |
CN108196915B (zh) | 基于应用容器引擎的代码处理方法、设备及存储介质 | |
CN112035228B (zh) | 一种资源调度方法及装置 | |
US20150220308A1 (en) | Model-based development | |
CN101853152B (zh) | 一种生成用户图形界面的方法和系统 | |
KR20230054474A (ko) | 마이크로프론트엔드 시스템, 서브애플리케이션 로딩 방법, 전자 디바이스, 컴퓨터 프로그램 제품 및 컴퓨터로 판독 가능한 저장 매체 | |
US11003835B2 (en) | System and method to convert a webpage built on a legacy framework to a webpage compatible with a target framework | |
CN112114890A (zh) | 小程序的处理方法、装置、设备及存储介质 | |
US10732948B2 (en) | System and method for implementing automated deployment | |
CN110336695A (zh) | 一种部署和维护应用的方法和服务器 | |
CN112698921A (zh) | 一种逻辑代码运行方法、装置、计算机设备和存储介质 | |
CN104133717A (zh) | 一种用于数据开放系统的服务自动化生成和部署方法 | |
CN112199567A (zh) | 一种分布式数据采集方法、系统、服务器和存储介质 | |
CN112368678A (zh) | 用于应用程序的虚拟机容器 | |
CN113094028A (zh) | 一种Windows桌面程序开发框架、方法及相关组件 | |
CN114816375A (zh) | 服务编排方法、装置、设备及存储介质 | |
KR102352265B1 (ko) | 웹 애플리케이션 개발 플랫폼 제공 시스템 및 방법 | |
CN116719523A (zh) | 页面渲染方法及电子设备 | |
CN115390846A (zh) | 编译构建方法、装置、电子设备和存储介质 | |
CN115167972A (zh) | 一种云原生平台集成方法及系统 | |
CN105404522A (zh) | 一种构建智能终端应用程序的方法、装置及智能终端 | |
CN115567526B (zh) | 数据监控方法、装置、设备及介质 | |
CN116700745A (zh) | 基于容器云平台的应用部署方法、装置、电子设备和介质 | |
US10802810B2 (en) | Consuming persistent library bundles |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180316 |