Serverless 进阶实战课
静远
某大厂资深云原生技术专家
11937 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 29 讲
Serverless 进阶实战课
15
15
1.0x
00:00/00:00
登录|注册

07 | 运行时(上):不同语言形态下的函数在容器中是如何执行的?

你好,我是静远。
生命周期这节课里,我和你提到了支撑函数运行起来的核心之一是运行时,而且我们还可以在函数计算的平台上选择不同语言的运行时来开发我们的函数,这其实也是函数的一大优势:多语言的运行时,可以极大降低开发者的语言门槛
那么函数计算层面的运行时是什么呢?不同语言的运行时,它们的工作机制是一样的么?如果让你来自定义一个运行时,你打算怎么做呢?
带着这些问题,今天我们来聊聊这背后的实现。我会从源码的角度,以编译型语言 Golang、解释型语言 Python 为代表,来跟你层层分析函数计算运行时的机制,带你抽象出通用的思路,并体验如何构建一个自定义运行时。
希望通过这两节课,你能够对运行时的原理和特性有一定的理解,搞清楚函数计算平台究竟是如何打破编程语言技术栈的限制,为开发人员提供多种开发环境的。同时,相信这节课也会帮助你在后续的函数计算使用和开发中更加得心应手。
今天这节课,我将重点介绍运行时的基本特性和实现原理,并以编译型语言 Golang 为切入点来讲解它的运行流程,让你先有一个从 0 到 1 的认知过程。

运行时究竟是什么?

我们对“运行时”这个名词并不陌生,任何编程语言都有它自己的运行时。比如 Java 的运行时叫 Java Runtime,它能够让机器读懂这些 Java 的代码并且运行起来,换个说法,就是它让代码可以和机器“打交道”,进而实现你的业务逻辑。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

函数计算平台中不同语言形态下的函数在容器中的执行机制是本文的主要内容。文章从Golang和Python两种语言的代表性函数计算运行时机制入手,分析了不同语言的运行时实现原理。通过对Golang运行时的详细介绍,读者可以了解函数计算平台如何打破编程语言技术栈的限制,为开发人员提供多种开发环境。文章通过代码分析和调用关系的追踪,深入探讨了函数计算运行时的执行流程,以及不同语言类型的运行时实现上的差异。总结了函数计算运行时的主要工作,以及对编程语言类型的不同所带来的影响。通过对Golang Runtime的代码框架的解析,读者可以对函数计算形态下的语言运行时有一定的了解,不仅会用,更知道它如何实现的。文章最后留下了一个思考题,引发读者对Knative和运行时的讨论和思考。整体而言,本文通过深入的技术分析,为读者呈现了函数计算平台中不同语言形态下的函数在容器中执行的机制,为开发人员提供了有益的技术参考。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Serverless 进阶实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(4)

  • 最新
  • 精选
  • Jade@pluto-lang
    startRuntimeAPILoop函数里,go func创建协程中,handleInvoke的参数应该是闭包的f,不应该是function?

    作者回复: 嗯嗯,是的

    2023-08-15归属地:浙江
    2
  • Wang Yifei
    猜测:Knative,Runtime作为容器镜像的一部分直接运行在User Pod的User Container里。 而前面的课程讲过,云平台Runtime以挂载的形式注入到容器内。

    作者回复: 赞

    2023-04-03归属地:北京
  • 吴红霞
    讲解很详细,看完后觉得自己入门了

    作者回复: 赞,如果后续有自己实现的诉求,欢迎随时探讨

    2023-03-08归属地:上海
  • seek
    你好,我想请问下,以go为例,冷启动运行时从拉去代码开始,然后编译后运行,这样不会很慢吗?还是说保存的就是编译后的文件

    作者回复: 编译后的文件

    2022-11-09归属地:上海
    3
收起评论
显示
设置
留言
4
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部