2020了,都在说ServerLess,那你需要先了解这些概念

693 阅读5分钟

1.为什么会有ServerLess

我们现在都知道,应用要想跑起来,肯定是离不开服务器。那最开始,大部分的公司都是会去自己购买硬件服务器来自己配置开发。那这个就很头疼了,因为这样不仅需要更多的资金并且还需要产生更多的人力去维护,而且,还挺占地方不是? 嘿嘿。所以,后来就开始衍化出虚拟服务技术。将服务布在云上,公司只需去找云厂商们购买一台云服务器即可。但是在后来,大家又不满足了,例如有家电商平台公司,它需要做活动,当做活动的时候请求并发量十分之大,不购买多台服务器可能支撑不住。所以公司只能硬着头皮去购买多台服务器,那这又导致了啥后果咧?那就是当这次活动过了,那这些用来负载分发请求的服务器它们就闲置在那了。但他们闲置着,依然是需要继续向云厂商们进行付费,钱就这样哗哗哗得流走了,我要是老板,我非得心肌梗塞。

所以,再到后来,就又衍化诞生出了Serverless这个东西。

2.什么是ServerLess

ServerLess(无服务器)

ServerLess概念最早是在12年由云基础设施服务提供商Iron.io的副总裁Ken提出来的: 原话是

Even with the rise of cloud computing, the world still revolves around servers. That won’t last, though. Cloud apps are moving into a serverless world, and that will bring big implications for the creation and distribution of software and applications.Even with the rise of cloud computing, the world still revolves around servers. That won’t last, though. Cloud apps are moving into a serverless world, and that will bring big implications for the creation and distribution of software and applications.

意思大致就是虽然现在云计算很普及了,但是大部分应用还是围绕这个服务器去运行滴。 但不会很久,将会进入无服务器时代 首先我们需要明确一点的是,ServerLess是一种概念 ServerLess的意思是即“无服务器”,那很多人疑惑道:无服务器那你还跑个锤子程序???

当然啦,这里的无服务器指的是Developer无需去关心服务器层的相关东西配置。因为这一层云服务厂商们已经给你提供配置好了,你只需去接入厂商们定义并提供的云函数去开发你的业务逻辑即可。好,这里有人又会疑惑,云函数?那又是个什么神奇的东西?

3.什么是云函数

云函数,官网的定义是:云函数是云厂商们提供的 Serverless执行环境。您只需编写简单的、目的单一的云函数即可将它与您的云基础设施及其他云服务产生的事件关联。

具体参考 -> cloud.tencent.com/document/pr…

通俗点讲:云函数是ServerLess产品中的计算产品。它包含如下技术特性:

1 自动伸缩: 云函数支持毫秒级别的实时弹性伸缩,完全根据请求量扩容或缩容。动态负载均衡将请求分发至后端近乎无限的函数实例上,完全无需任何手动配置和操作,满足并发量从 0 到成千上万的不同场景。

意思就是你可能无需再花费大量的资金去购买更多的服务器来进行高并发请求负载。使用云函数既可以根据你的请求并发量实时进行扩容,我个人觉得这点是十分合老板们的胃口的。

2 事件驱动 1. 云函数的运行,是由事件驱动起来的,在有事件到来时,云函数会启动运行 2. Serverless 应用不会类似于原有的「监听 - 处理」类型的应用一直在线,而是按需启动 3. 事件的定义可以很丰富,一次 http 请求,一个文件上传,一次数据库条目修改,一条消息发送,都可以定义为事件

3. ServerLess时代的到来意味着什么?

在互联网早期时代,前端开发的工作可能就是切切图而已。后来随着ajax的诞生,node.js, webpack的诞生,前端逐渐从最开始的切图仔时代走向工程化的时代,再到后来随着各种js框架的兴起,又走向了组件化的时代。再到现在的ServerLess概念的提出,前端又再次推向了一个新的时代,ServerLess可以让前端开发者们无需再去关心服务器的部署,真正的把核心放在了业务逻辑这个层面,甚至自己可以去承担一些后端基础业务逻辑。但是很多人会疑虑道:那这样前端要做的事不就更多了吗?我个人并不这样觉得,我觉得如果作为一个前端开发者,你始终这是在写一些渲染层的逻辑,那你个人的能力并没有可以得到充分的体现,俗点来讲就是你做的工作随时都可以被别人替代。而只有真正做到逻辑层面的核心业务时,你在公司所作的工作价值的重量才可能体现出来。 以上仅是我个人的一些观点,不喜轻喷。谢谢

4. ServerLess为前端开发带来什么机遇?

很多人会疑虑道:那这样前端要做的事不就更多了吗?我个人并不这样觉得,我觉得如果作为一个前端开发者,你始终这是在写一些渲染层的逻辑,那你个人的能力并没有可以得到充分的体现,俗点来讲就是你做的工作随时都可以被别人替代。而只有真正做到逻辑层面的核心业务时,你在公司所作的工作价值的重量才可能体现出来。

The stronger the ability, the greater the responsibility

能力越大,责任越大,责任越大,越不可被取代