【玩转腾讯云】使用ServerLess实现云原生

本文为《冲上云霄——云从业随笔》系列之五——浅谈ServerLess

在云从业随笔系列中,我们介绍了TKE、AS、CVM等等,今天来聊聊ServerLess,也就是所谓的FaaS,笔者有幸经历了IaaS(OS)、CaaS(Container),在这两年又听到了FaaS(Funtion),这也是运维开发领域里的第三个阶段了吧,今天我将从一个不懂得开发的系统工程师视角以及结合之前的几篇系列文章为各位诠释这个概念。 By StatLee

一、简述

一开始听到ServerLess我以为是类似于VPS(建站主机)亦或者是VM、Container之类的具备完整OS或半完整OS生态的一个全新开发方式,后来发现我完全理解错了,如果说传统的云计算是这样分层的:

那么FaaS(ServerLess 为代表的的Funtion As A Service)就是把SaaS再进行精细化拆分,可以看这张图就明白了(特别是红圈部分):

在规划上笔者建议通过私有网络来构造云函数应用。

4、对接cvm apiv3 sdk来实现拉取cvm列表,首先将用到的SDK文件放在云函数所在目录下:

5、通过vscode插件一键部署:

这里推荐使用VSCode来作为主IDE,无论是构造API的Django所用的TKE可以通过Remote Development插件来进行远程开发,还是ServerLess也可以通过腾讯云提供的ServerLess ToolKit(当然大部分提供ServerLess的云厂商都有提供Toolkit,安装ToolKit时主要不要在Remote IDE窗口下点击,否则就变成为远端安装了)进行开发,基本上做到完全体验一致:

6、这里写了一个通过CVM SDK获取ins-id、内网ip,再调用django构造的接口进行传参(为了demo效果,这里写得比较粗糙):

7、我们来通过GIF感受下,首先云端部署与运行SCF(云函数):

8、结果调用成功添加数据:

至此,实操完成,这样相当把后端一个“同步信息”的接口搬上了ServerLess

三、场景

如实验所述,ServerLess只能是一个类似于“转发器”的玩意吗?并不是的,除了业务模块是处于“中间(转发、同步)”的模块类型之外,其实ServerLess也是可以结合其他产品来实现对外输出功能的。

本身ServerLess是没有对外发布能力的,怎么理解呢?就是一般运维同学上手一看,这玩意儿为什么连个ip都没有,域名哪里定义的,端口又在哪里,如何定义协议类型?

实际上ServerLess确实这些都没有,因为如简述所说,这是一个细粒化到只需要关注其上App中的某个Function的一个产品,所以Function之下的所有包括OS、网络、App都是不具备定制化的。

虽然ServerLess本身没有对外发布能力,但是结合API网关就不是这回事儿了,当ServerLess遇到API网关,通常云厂商是支持ServerLess添加(或叫注册)到API网关的,这就相当于你可以借API网关的“力”来使ServerLess实现对外发布的功能。

而腾讯云上的ServerLess(SCF)也提供这么一个功能,点击云函数(SCF)的“触发方式”栏,点击新建触发方式并选择API网关(需要提前新建):

保存后你到对应的API网关的“管理API”中就可以看到绑定的云函数了:

这时候SCF(云函数)就可以借助API网关本身的能力对外提供能力或者被调用了,最终可以实现如图:

四、总结

ServerLess的开发模式业界已经很多公司采用,相比于还在使用传统环境(OS、中间件、选择应用语言、构建数据层、前后端)来说:

  1. 运维压力小了很多,因为只需要专注在ServerLess本身的运行参数以及架构上的调整、运维,而不再需要关注Function以下的运维难点;
  2. 开发人员由于ServerLess一般由云厂商提供全链路的整合,加上IDE插件的支持基本上全程实现云上开发,灵活的版本、环境也可以保证发布出现问题的几率最小化,同时开发职能的交叉度降到最低开发人员之间的干扰依赖降低
  3. 对于公司的商业模式来说,像拥有大量访问量、市场受众的企业客户不单单可以在业务上实现盈利,某些业务系统模块的优势也可以借助ServerLess拆分出来实现内部IT支撑系统的变现

ServerLess也存在一些问题,比如由于ServerLess基本上是依托在云厂商之上,对于有混合云的场景,对于S2S的链接质量要求更高,当然这些在ServerLess的不断优化迭代情况下会越来越顺畅,所以,无论是Dev还是Ops,拥抱并享受ServerLess吧。


附:相关导读 

  1. 这个需求很简单,怎么实现我不管
  2. 2020年你应该关注的8大技术趋势
  3. 为什么说每个开发者都应该关注Serverless?

本站文章资源均来源自网络,除非特别声明,否则均不代表站方观点,并仅供查阅,不作为任何参考依据!
如有侵权请及时跟我们联系,本站将及时删除!
如遇版权问题,请查看 本站版权声明
THE END
分享
二维码
海报
【玩转腾讯云】使用ServerLess实现云原生
一开始听到ServerLess我以为是类似于VPS(建站主机)亦或者是VM、Container之类的具备完整OS或半完整OS生态的一个全新开发方式,后来发现我完...
<<上一篇
下一篇>>