System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于serverless架构的Golang运行时实现方法技术_技高网

一种基于serverless架构的Golang运行时实现方法技术

技术编号:40934677 阅读:4 留言:0更新日期:2024-04-18 14:54
本发明专利技术属于云平台容器技术领域,本发明专利技术公开了一种基于serverless架构的Golang运行时实现方法,包括获取源代码,基于源代码编译生成可执行的二进制文件,写入二进制文件到基础镜像;获取Runtime的API,以SDK的形式向用户提供函数注册的能力,即开放供用户注册函数并定义函数的入口点;基于入口点注册生命周期回调函数,供用户在函数执行前后执行特定的操作,没有使用反射技术,执行速度和性能上都比使用了反射的更优,SDK减少了应用程序的依赖和部署的复杂性,进而减少了SDK的体积,该方案可扩展到其他编程语言,包括解释行的编程语言也适用。

【技术实现步骤摘要】

本专利技术涉及云平台容器,更具体地说,本专利技术涉及一种基于serverless架构的golang运行时实现方法。


技术介绍

1、伴随云原生技术日渐成熟,越来越多的用户为了降本增效,也纷纷开始业务上云。传统云原生技术通过容器、服务网络、微服务、不可变基础设施以及声明式应用编程接口(api)等技术,解决了复杂应用/服务的构建、部署和管理问题,为开发者屏蔽了底层硬件的运维,带来了云平台特有的可扩展性、弹性和灵活性优势。但同时也为软件/服务开发增加了额外的复杂性,如容器编排、微服务架构等。

2、与此同时serverless computing(无服务器计算,下面简称为serverless)作为云计算的一种重要模型,开始被广泛使用,serverless以paas(平台即服务)为基础,提供一个轻量级架构,终端客户不需要部署、配置或管理服务器服务,所有代码运行所需要的资源和环境皆由云端平台来提供。

3、这能极大地降低应用/服务的开发复杂度,让用户重新聚焦于业务逻辑的开发,把管理机器资源、网络资源这些繁琐的事情交给更专业的平台去处理。

4、然而用户业务代码往往是多样的,要通过serverless架构运行用户代码需要提供多语言的运行时。


技术实现思路

1、为了克服现有技术的上述缺陷,本专利技术提供一种基于serverless架构的golang运行时实现方法,包括:获取源代码,基于源代码编译生成可执行的二进制文件,写入二进制文件到基础镜像;获取runtime的api,以sdk的形式向用户提供函数注册的能力,即开放供用户注册函数并定义函数的入口点;基于入口点注册生命周期回调函数,供用户在函数执行前后执行特定的操作。

2、优选地,基础镜像包含一个agent脚本,用于启动一个httpserver,并与外部通信,作为容器启动时的entrypoint。

3、优选地,实现一个httpserver,用于接收事件并执行用户的业务逻辑。

4、优选地,定义ctycontext结构体,用于封装运行时相关的信息,在回调函数执行时,将ctycontext结构体传递给用户的业务逻辑代码。

5、优选地,基础镜像的创建方法为,基于golang官方的release镜像创建一个基础镜像,用于直接运行编译后的go可执行文件,即用户已编译的二进制文件;

6、优选地,二进制文件写入基础镜像的方法为,在基础镜像构建阶段则将二进制文件打包进指定目录。

7、一种基于serverless架构的golang运行时实现系统,用于实现上述的一种基于serverless架构的golang运行时实现方法实现,其特征在于,包括:

8、golang runtime docker镜像,基于docker技术,用于创建和运行docker容器,提供基于golang的运行时环境;

9、sdk架构,基于runtime的api,以sdk的形式向用户提供函数注册的能力。

10、优选地,golang runtime docker镜像包括:

11、基础镜像,使用golang官方的release镜像,提供完整的golang运行环境;agent脚本,作为容器启动时的entrypoint,负责设置环境变量和启动一个httpserver,用于与外部通信。

12、优选地,sdk架构包括httpserver实现,用于接收事件并执行用户逻辑。

13、优选地,sdk架构包括定义ctycontext结构体,用于用户获取运行时信息。

14、本专利技术一种基于serverless架构的golang运行时实现方法的技术效果和优点:

15、1.没有使用反射技术,执行速度和性能上都比使用了反射的更优。

16、2.sdk减少了应用程序的依赖和部署的复杂性,进而减少了sdk的体积。

17、3.该方案可扩展到其他编程语言,包括解释行的编程语言也适用。

本文档来自技高网...

【技术保护点】

1.一种基于serverless架构的Golang运行时实现方法,其特征在于,包括:

2.根据权利要求1所述的一种基于serverless架构的Golang运行时实现方法,其特征在于,基础镜像包含一个agent脚本,用于启动一个HttpServer,并与外部通信,作为容器启动时的entrypoint。

3.根据权利要求1所述的一种基于serverless架构的Golang运行时实现方法,其特征在于,实现一个HttpServer,用于接收事件并执行用户的业务逻辑。

4.根据权利要求1所述的一种基于serverless架构的Golang运行时实现方法,其特征在于,定义CtyContext结构体,用于封装运行时相关的信息,在回调函数执行时,将CtyContext结构体传递给用户的业务逻辑代码。

5.根据权利要求1所述的一种基于serverless架构的Golang运行时实现方法,其特征在于,基础镜像的创建方法为,基于Golang官方的release镜像创建一个基础镜像,用于直接运行编译后的go可执行文件,即用户已编译的二进制文件。

6.根据权利要求1所述的一种基于serverless架构的Golang运行时实现方法,其特征在于,二进制文件写入基础镜像的方法为,在基础镜像构建阶段则将二进制文件打包进指定目录。

7.一种基于serverless架构的Golang运行时实现系统,用于实现权利要求1-6任一项所述的一种基于serverless架构的Golang运行时实现方法实现,其特征在于,包括:

8.根据权利要求7所述的一种基于serverless架构的Golang运行时实现系统,其特征在于,Golang Runtime Docker镜像包括:

9.根据权利要求8所述的一种基于serverless架构的Golang运行时实现系统,其特征在于,SDK架构包括HttpServer实现,用于接收事件并执行用户逻辑。

10.根据权利要求9所述的一种基于serverless架构的Golang运行时实现系统,其特征在于,SDK架构包括定义CtyContext结构体,用于用户获取运行时信息。

...

【技术特征摘要】

1.一种基于serverless架构的golang运行时实现方法,其特征在于,包括:

2.根据权利要求1所述的一种基于serverless架构的golang运行时实现方法,其特征在于,基础镜像包含一个agent脚本,用于启动一个httpserver,并与外部通信,作为容器启动时的entrypoint。

3.根据权利要求1所述的一种基于serverless架构的golang运行时实现方法,其特征在于,实现一个httpserver,用于接收事件并执行用户的业务逻辑。

4.根据权利要求1所述的一种基于serverless架构的golang运行时实现方法,其特征在于,定义ctycontext结构体,用于封装运行时相关的信息,在回调函数执行时,将ctycontext结构体传递给用户的业务逻辑代码。

5.根据权利要求1所述的一种基于serverless架构的golang运行时实现方法,其特征在于,基础镜像的创建方法为,基于golang官方的release镜像创建一个基础镜像,用于直接运行编译后的go可执...

【专利技术属性】
技术研发人员:莫振永
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1