关于 Serverless 的清单分享

“ 中台和Serverless是今年最火的两个技术名词了,程序员不得不了解一下。短期来看,运维会失业或转行;长远来看,程序员将分化。未来编程可能极其简单。”


我们把系统资源进行 Serverless 化,这些系统资源大概分为 2 大类: 一种是 CaaS:compute as a service 用来提供计算能力; 一种是 BaaS:backend as a service,相当于把第三方组件也 Serverless 化,用户也不用去关注第三方组建的搭建和运维,只需要调用 api 去使用即可。所以 Serverless 大概可以理解为:CaaS + BaaS

在Serverless开发模式中,没有MySQL,没有DB,没有关系存储,没有对象存储等,资源分为两类,一类是自己的计算类资源,另一类是别人提供的计算类资源,自己复用。

在物理机阶段,我们要去购买物理服务器,然后还可能需要去建自己的机房,安装制冷设备,招聘运维人员,然后在上面搭建一系列的基础设施,比如:虚拟化,操作系统,容器等,有很多工作要去做。到了虚拟机这一阶段,云厂商维护了硬件和虚拟化这 2 个基础设施,到了容器这一阶段云厂商又维护了 OS、容器和 Runtime,可以看到用户需要做的运维工作越来越少。然后到了 Serverless 这个阶段,用户只需要关注 Function,也就是只需要关注自己的业务逻辑。

大体是三个阶段吧:

  1. 物理机时代,机房帮助企业管理物理机
  2. 云计算容器迭代,云厂商帮我们把脏活累活做了
  3. 无服务化时代(Serverless)

Serverless是如何运行的?

开发者创建Func,用户访问的也是Func。照这样发展,迟早有一天,编程将普及化、简单化。随着计算能力的大幅提升,一个一个成熟的Func被开源,在大量应用中复用。个体只需要拖拽一个一个Func,就可以开发一款应用。并且随时可以测试效果,不满意再修改。编程将成为一种像舞蹈一样的乐趣。创意将越来越重要。

在那个时代,程序员分为两种:

1,云下程序员,负责维护和迭代底层的云,会C、C++、Go等编程语言;

2,云上程序员,不需要学习和使用任何编程语言,只需要有创意。

国内用户用的比较多的 IDE 是 VS CODE,为此,我们开发了 VS CODE 插件,可以方便开发进行函数的开发和部署。

腾讯云提供了VSCode插件,可以像微信开发者工具那样,直接在工具内将编好的云函数上传至云端。

除了开发者工具,我们也提供完善的 DevOps 支持,从最佳实战,到工作流,到工具链,以及产品打通,我们都提供了很多方案和支持。比如工作流这里,我们支持编码、构建、打包、部署、测试和发布等一系列流程。

呵呵,某些研发团队三天两天测试环境出问题,这个时代可能要过去了,前提是采用Serverless开发模式。编码、构建、打包、部署、测试、发布,一整套的开发流程能力都具备了。

可能不久之后,运维、测试都要失业了,不久将来,可能程序员也要失业了。但从另一个维度来看,他们可能也没有失业,只是工作内容发生了什么。

将替代BFF

前端在发展,后端也在发展,在分层和模块划分上更加的粒度化,微服务化。微服务的接口不再是面向页面,前端的接口调用变得复杂了,所以需要在微服务和前端中间,加了一个 BFF 层,全称(backend for frontend),由这一层对接口进行聚合、裁剪后,再输出给前端。而这层不是后端本质工作,距离前端比较近,关系更大一些,所以前端工程师很自然选择了 Node.js 来实现。这也是当前 Node.js 在服务端比较广泛的应用。

以前程序员不分前端和后端,做为一名ASP程序员,既要建表、写ASP代码,也要写HTML代码。后来出现了一个职业叫网页设计师,是专门将美工做的效果图切成HTML页面的。

BFF发展发展,在今年被并到了中台里。用NodeJS编写,专门聚合后端接口,为前端所用。

很多公司连BFF还没有用过,可以直接升级到Serverless了。

Serverless 的这些特点

  • 无运维,使用 Serverless 我们不需要关心服务器,不需要关心运维,这也是 Serverless 思想的核心。
  • 无状态,因为每次函数执行,可能使用的都是不同的容器,无法进行内存或数据共享。如果要共享数据,则只能通过Redis 、COS等第三方服务。
  • 事件驱动,函数在 FaaS 平台中,是需要通过事件来触发函数执行。
  • 低成本,实现按需调用,按需伸缩、按使用收费。

无运维和低成本是亮点,无状态和事件驱动将变革前端开发模式。

SSR还没有普及,感觉也要被替代了

传统的服务端渲染,服务端根据路由返回渲染好的HTML页面。而在Serverless上实现也类似,可以将多个页面返回放到一个函数中,也可以将每个页面拆分成一个个云函数,这样用户请求的一个页面,对应的就是每个单独的函数。

还有很多,建议阅读:

  • Serverless,将给前端发展带来大变革的技术? https://mp.weixin.qq.com/s/ooX7uMFjxFfSai9URo6kYw
  • 以微信小程序相册为例,看Serverless DevOps最佳实践 https://mp.weixin.qq.com/s/vbCwQdc-nWhS7t4mh0PlEA

本文分享自微信公众号 - 艺述思维(yishulun2005)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端资源

原生JS动态添加、删除元素&内容

创建元素 createElement ,创建内容 createTextNode ,添加元素 appendChild

35040
来自专栏前端资源

git add命令行添加文件、文件夹以及撤销文件add的方法

在工作区(working directory)进行内容改动后,需要add操作,将文件添加到暂存区(index)。

24920
来自专栏前端资源

table固定表头,tbody滚动条样式设置以及填的几个坑

有的建议使用:position: absolute 或者 position: fixed;

11920
来自专栏前端资源

利用CSS选择器nth-child实现隔行设置不同样式

奇葩老板就会有奇葩需求,他要求像上图一样,每两行用一条横线隔开,但这是循环出来的呀,怎么才能每隔一行选中5个呢?

7010
来自专栏前端资源

使用jQuery的delay()延迟执行show()和hide()不起效的解决方法

今天使用 jQuery 的 delay() 来延迟执行 hide() ,发现延时不起效,查了一些资料,找到了其中的原因。

9010
来自专栏前端资源

HTML中嵌入PHP代码会被浏览器注释的解决方法

今天在引入模板文件时,在HTML文件中直接嵌入PHP代码引入模板文件,发现不起效。打开浏览器开发者工具,发现该部分代码被注释了。

9820
来自专栏小詹同学

干货 | 机器学习入门方法和资料合集

近些天在微信群里经常看小伙伴问到“机器学习如何入门,看哪些资料 ?”,于是乎想根据笔者学习两年多的学习经验,介绍下机器学习如何入门,该看哪些资料?下面我将从以下...

11260
来自专栏前端资源

利用jQuery not()方法选取除某个元素外的所有元素

这时我们可以使用 jQuery 遍历中的 not() 方法来排除某些元素,例如根据元素的 #id ,.class 等排除,代码如下:

5510
来自专栏前端资源

本地搭建外网访问网站,.htaccess实现网站升级时重定向到友好页面

准备更换网站服务器,在本地搭了一个友好页面,也就是维护提示页面。期间遇到了一些问题,记录一下:

5510
来自专栏前端资源

为什么网站中的CSS或JS会带有v或version参数

在查看网页源码的时候经常会发现带有类似 ?v=13566 或者 ?version=15678 的 CSS 和 JS 文件。如下所示:

7310

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励