Jerry一直认为,金庸的《天龙八部》里的武学建模已经有点脱离传统武侠小说的范畴了,像已经走上玄幻道路的灵鹫宫“八荒六合唯我独尊功”,以及杀伤力足够能被视为现代激光武器的鼻祖,大理段式的“六脉神剑”之类。而另一部经典的射雕三部曲里很多的武功设定则中规中矩,其中周伯通自创的七十二路空明拳,是金老独具匠心的创造之一。

周伯通被黄药师困在桃花岛,宅了十余年,从《道德经》中参悟到「以虚击实」,「以不足胜有余」的武学(编程)思想。《道德经》有云:「天下莫柔弱于水,而攻坚强者莫之能胜,其无以易之。弱之胜强,柔之胜刚,天下莫不知,莫能行。」

而这套拳力“若有若无”的武功,使用在生产环境最经典的一幕,就是在百花谷和杨过的“黯然销魂掌”PK的时候:

周伯通生性好武,虽在百花谷隐居,每日仍是练功不辍,但以他如此功力,普天下哪里找对手去?这时见杨过愿意比武,自是心痒难搔,跃跃欲试,心想若再多言,只怕他忽而又不愿动手了,岂不是错过良机?当下左掌一提,喝道:“看拳!”右手一拳打了出去,使的是七十二路的“空明拳法”。

杨过左手还了一掌,猛觉得对方拳力若有若无,自己掌力使实了固然不对,使虚了也是极其危险,不禁暗暗吃惊,当下展开十余年来在狂涛怒潮中所苦练的掌法还击出去。

无独有偶,在车田正美笔下的《圣斗士星矢》里,也有很多像周伯通一样,拥有一套招式若有若无的好手。如果按照动漫里越晚出场的人物实力越强的设定,那么最强的人物无疑是Jerry这张卡片里秀的,冥界三巨头之首,天贵星的狮鹫米诺斯,第一域的最高主宰者。

米诺斯的绝技星尘傀儡线,能够用一根根看不见的丝线将对手的身体缠绕起来,从而使其像一具傀儡一样,只能按照自己的意志来活动,是一种非常可怕的招式。在对手眼中,这些由米诺斯小宇宙形成的丝线若有若无,根本无从防御。米诺斯最高光的战绩,就是一度全面压制在黄金圣斗士中实力位居中上游的加隆,后者尽管拥有威力“能让星星粉碎”的银河星爆,但是在米诺斯的星尘傀儡线面前,毫无反击的机会。

同样,Jerry第一次接触SAP Kyma基于Serverless架构的Lambda Function时,感受同周伯通和米诺斯的对手一样有些疑惑:名字都叫Serverless了,没了服务器,那我的函数代码到底运行在什么地方的?

比如在最近Jerry写的一系列SAP Kyma的文章里介绍过,我在Kyma上创建了一个名为zjerry-lambda的函数,基于nodejs8:

可以直接在Kyma的测试控制台里调用这个Lambda Function:

Serverless的字面意思,不是暗示我们没有服务器了吗?那么这段函数代码到底运行在哪里的?

米诺斯的星尘傀儡线,在冰系法师,百鸟座冰河的冻气之下,终于被冻结成肉眼可见的丝线了。同样的,因为SAP Kyma是基于Kubernetes的,因此我们还是可以通过Kubernetes提供的一些工具,来探索SAP Kyma上Lambda Function运行原理的一些蛛丝马迹。跟Jerry一起看看吧。

首先找到zjerry-lambda函数创建后,对应生成的pod,把名字抄下来:zjerry-lambda-86668f75d4-pfbk6

使用kubectl的交互式参数-ti,进入这个pod内部:

kubectl exec -ti zjerry-lambda-86668f75d4-pfbk6 -n ctu-demo – /bin/sh

进入之后,查看进程列表,发现了node kubeless这个进程,Jerry顿时觉得有点眉目了:

看样子,SAP Kyma的Lambda Function是通过一个node进程执行的。查看一下这个pod里都有哪些文件:

打开kubeless.js看看里面的内容:

如果您是一位nodejs开发人员,看到上面Jerry高亮的红色内容,一定会恍然大悟。SAP Kyma的Lambda Function,其实运行在对应的Kubernetes pod里启动的express应用框架上。

Express的依赖定义在pod内部的package.json里:

而待执行的Lambda Function逻辑,通过环境变量FUNC_HANDLER进行注入,在Jerry这个例子里,函数体名称为main:

在Lambda Function的Serverless框架,即kubeless.js运行时,会从pod内部的kubeless这个文件夹里,找到应用开发人员编写的Lambda Function,加载并运行。

大家可以看到,Jerry红色高亮的位于pod内部的handler.js, 其内容就是Kyma控制台里编写的函数体。

至此,SAP Kyma的Lambda Function实现,在Jerry眼中没有任何神秘可言了。回到Serverless这个术语本身,并不意味着整个场景里不再需要服务器的参与,而是服务器的这个关注点,在Serverless架构下,已经从应用开发人员的视角中隐藏起来罢了。

感谢阅读。

更多阅读

  • 站在巨人肩膀上的牛顿:Kubernetes和SAP Kyma

  • 高射炮打蚊子,杀鸡用绝世好剑:在SAP Kyma上运行UI5应用

  • 什么?在SAP中国研究院里还需要会PHP开发?

  • 第三方应用如何在SAP Kyma上进行服务注册

  • 基于SAP Kyma的订单编排增强介绍

  • WordPress,SAP Kyma和微信三者的集成

  • 从ABAP Netweaver的SICF到SAP Kyma的Lambda Function

要获取更多Jerry的原创文章,请关注公众号"汪子熙":
[外链图片转存失败(img-76HkWVbA-1565578526774)(https://user-images.githubusercontent.com/5669954/60097669-68224900-9786-11e9-9f1e-e8bee08db4fa.png)]要获取更多Jerry的原创文章,请关注公众号"汪子熙":

周伯通的空明拳,米诺斯的星尘傀儡线,SAP Kyma的Serverless相关推荐

  1. 递归的逻辑(5)——米诺斯的迷宫

    米诺斯迷宫的传说来源于克里特神话,在希腊神话中也有大量的描述,号称世界四大迷宫之一. 米诺斯是宙斯和欧罗巴的儿子,因智慧和公正而闻名,死后成为了冥国的判官.由于米诺斯得罪了海神波塞冬,波塞冬便以神力使 ...

  2. C++题目:米诺斯的迷宫

    米诺斯的迷宫 题目背景 传说米诺斯王在克里特岛为米诺陶洛斯(Minotaur,"米诺斯的牛")修建了一个迷宫(Labyrinth).而你想找到米诺陶洛斯,然后杀掉他,从而成为英雄. ...

  3. sap crm行业解决方案_SAP云平台和第三方CRM解决方案(火锅)互联

    光看封面配图,这篇文章很容易被误认为在讲成都的美食之一:火锅. SAP成都研究院坐落在被联合国教科文组织授予过"美食之都"称号的成都,所在的天府软件园,半径1公里左右星罗棋布着很多 ...

  4. 一步步把 SAP UI5 应用部署到 SAP BTP Kyma 运行环境中去

    这是 Jerry 2021 年的第 40 篇文章,也是汪子熙公众号总共第 317 篇原创文章. Jerry 2018年曾经写过两篇文章,介绍了如何在 Kubernetes 这个容器编排平台上运行一个包 ...

  5. 计算机世界的虚拟机,容器和医学界的人工硬脑膜

    这是Jerry 2020年的第69篇文章,也是汪子熙公众号总共第251篇原创文章. 本文不含惊悚内容的图片,请大家放心阅读. 医学界的虚拟化技术挽救了Jerry的生命,所以有了这篇文章. 计算机世界的 ...

  6. SAP API开发方法大全

    Jerry之前的文章:**从SAP Leonardo到SAP Data Intelligence **曾经提到,SAP Leonardo Machine Learning Foundation的机器学 ...

  7. SAP云平台和第三方CRM解决方案(火锅)互联

    光看封面配图,这篇文章很容易被误认为在讲成都的美食之一:火锅. SAP成都研究院坐落在被联合国教科文组织授予过"美食之都"称号的成都,所在的天府软件园,半径1公里左右星罗棋布着很多 ...

  8. SAP API 开发方法大全

    Jerry之前的文章:**从SAP Leonardo到SAP Data Intelligence **曾经提到,SAP Leonardo Machine Learning Foundation的机器学 ...

  9. Jerry号召广大程序员同仁们,把身体锻炼好,每天把砖搬起来

    侃在广州,无事辄朝运百甓于斋外,暮运于斋内.人问其故,答曰:"吾方致力中原,过尔优逸,恐不堪事,故自老耳". --<晋书陶侃列传> 以上的文字,说的是我国晋代著名诗人陶 ...

最新文章

  1. 使用Python,OpenCV构建透明的叠加层
  2. Linux+Apache2+openssl实现https验证
  3. hp服务器330g6怎么安装系统,Hp DL380 g6 安装WIN2003的图文方法
  4. 同步云数据库MySQL到自建数据库
  5. 汇编语言 -第十一章
  6. 为什么需要消息队列MQ
  7. [vue] 为什么data属性必须声明为返回一个初始数据对应的函数呢?
  8. js将秒转化成时间格式
  9. 【图像分割】基于matlab GUI FCMKFCM MRI图像分割【含Matlab源码 582期】
  10. 毕业设计源码——旅游打卡小程序
  11. 使用计算机录制声音10,win10系统电脑中如何解决录屏时无法录制声音的问题
  12. python计算相关性显著性p值_基于python如何实现计算两组数据P值
  13. B站学习法之深度学习笔记一
  14. 续费Enom域名的三种办法
  15. 认知学习:当代学习理论的主流
  16. ABeam Insight (德硕)| Smart Conference ——让你的生意跨越语言障碍
  17. 计算机正确的按键手法游戏,lol正确的按键手法图解
  18. 数据仓库 pdf 电子书大全
  19. python requests+unittest+beautifulreport+jenkins实现接口自动化(下)
  20. [转]一些软件设计的原则

热门文章

  1. 使用谷歌浏览器的speechSynthesis的API,实现语音播报功能
  2. C语言中几种输入方式
  3. PHP不包括字母,数字和下划线的webshell
  4. Flutter学习-多子布局Widget
  5. shell脚本获取当前时间和1分钟/1小时前时间
  6. twig html不转义,twig输出转义
  7. php2twig,php twig是什么意思
  8. 基于NodeJS+VUE+Mysql的大学生校园疫情防控管理系统
  9. vue自适应布局(各种浏览器,分辨率)
  10. 计算机蓝牙快捷键,如何打开Windows10笔记本电脑的蓝牙,快捷键打开笔记本电脑的蓝牙!...