什么是serverless?

发布于:2021-05-05 15:24:43

serverless是目前很火的概念,它是下一代云技术,是真正的“云”。

传统的云服务,让开发者免于购买实体服务器硬件,改为购买虚拟机。但开发者仍然要自己装操作系统、web服务器、数据库,自己处理热备,自己新购服务器来应对高并发,自己抗DDOS攻击...

这不是成熟的“云”!

真正的云计算,就像用水用电,没有复杂的门槛,即用即有、按需付费。

简单回顾下用电的历史。几十年前,很多单位都有专门管电的工程师,当单位的电力负荷不够时,就需要找这个管电的工程师扩容发电机。

现在这个管电工程师的岗位已经淘汰了,电已经变成随用随取、按需付费了。

传统云模式下,开发商仍然需要一个管服务器的工程师,当用户量激增或被攻击时,甚至需要半夜把工程师叫醒来扩容。这当然不合理。

serverless的云,真正的把计算、存储的能力进行了云化,开发者只需要按量租用这些计算和存储能力,再也不用关心扩容和攻击。

开发者不再有“服务器”的概念,因为没有一台具体的机器。就像现在的你再也找不到自己的发电机一样。

当用户量激增时,开发者什么都不用做,系统自动承载更高并发。开发者只需要按照对资源的消耗付费即可。

同理,如果没有用户使用,即没有资源消耗,则根本无需为云资源付费。

开发者写好云端业务代码,即js编写的云函数,通过HBuilderX部署到uniCloud上即可。

云端庞大的serverless资源池,有无数个node进程待命。当手机用户发起请求时,serverless系统会调配闲置的资源来运行开发者相应的云函数。

  • serverless,让一个不懂服务器运维的开发者,可以只处理自己的业务,再不用关心热备、负载、增容、DDOS等事情。

  • serverless,让一个大学生,也可以享受世界最顶级的IT基础设置。

serverless在国外兴起,但国内的发展速度已经超过了国外。微信、支付宝、百度、字节跳动、快应用联盟都上线了自己的serverless云开发。

目前国内已经有超过60万开发者在使用serverless云开发,包括腾讯、阿里、DCloud的很多自有业务都在使用。

就像uni-app可跨端一样,uniCloud可跨云。基于uniCloud,无需担心使用云开发被绑定到专用的小程序平台。uni-app + uniCloud 是跨端跨云的开发方案。

uniCloud为何可降低云服务租用成本

1、传统云服务的租用,按占用的硬件资源的上限值+固定时长来租用。

选择CPU和内存的配置,不到满配时,资源是浪费的,接近满配就需要立即扩容新的配置。

serverless不是传统云,它不需要开发者选择CPU和内存配置,也没有操作系统的选择。开发者编写云函数代码,上传到uniCloud的阿里云版或腾讯云版。

阿里云和腾讯云搭建了巨大的serverless资源池,有众多node进程用于云函数的运行。

这些资源是复用和共享的,并不存在某个开发者租用了3G CPU和8G内存,这些硬件就只能为他所用。

因为共享大资源池,云服务厂商的成本大幅下降,开发者无需为闲置资源付费,云函数被调用才计费。

从技术原理上serverless就有明显成本优势,所以租用serverless比租用传统云要便宜的多。

2、没有名目繁多的收费项

在传统云的世界里,有大量的收费产品。

在阿里云和腾讯云的官网可以看到长长的收费产品列表,比如负载均衡、高防、安全中心...

在uniCloud的世界,简单清晰,没有这些收费项。

只需按对计算资源、存储资源的消耗计费,只需关心业务,无需关心其他各种名目的增值产品,也无需为它们付费。

要知道一个用于防DDoS的高防套餐,每个月至少几万元。而这些费用,在uniCloud中无需支付。

展开说下uniCloud为什么不用买高防也不害怕DDoS:由于阿里云和腾讯云的serverless有巨大的资源池,且serverless没有固定ip,云函数使用的是阿里云和腾讯云的自有域名,前端网页托管在cdn上,DDoS攻击者打不起、也打不挂uniCloud。

3、云厂商的促销补贴

目前阿里云为uniCloud提供了纯免费的云资源,不但云函数、云数据库免费,连存储和cdn都免费。

腾讯云也提供了一个免费服务空间,此外再建服务空间的收费也比传统云要低很多。

基于以上3点原因,uniCloud大幅降低了开发者云资源的租用成本。

除了云资源的成本,uniCloud还可以减少开发商的人工成本、招聘成本、沟通管理成本,这些成本往往远大于云资源成本。

uniCloud降低前端掌握后端的门槛

前端工程师想掌握后端开发,有6大门槛:

  • 学习php、java等非js的语言

  • 学习数据库设计

  • 学习SQL

  • 学习linux、nginx等系统和三方软件

  • 学习服务器运维:熟悉负载均衡、大并发处理。了解各种复杂的云厂商产品目录和报价

  • 学习系统安全:避免业务安全漏洞(权限漏洞、防SQL注入)、操作系统和三方软件补丁、DDoS等网络攻击

而有了uniCloud,这些门槛全都降了下去:

  1. uniCloud采用js编写后端服务代码,无需单独学习php或java,甚至也无需提前掌握nodejs。看下uniCloud的api文档即可。

  2. uniCloud基于serverless,开发者无需了解linux、nginx,无需熟悉负载均衡、大并发处理,不用关心系统补丁和DDoS攻击,只需要用js写好云端业务代码,上传到uniCloud即可。

  3. uniCloud推出了opendb,包含了大量的开源数据库模板,常见数据表无需自己设计。通过opendb模板,开发者可以快速掌握数据库设计。

  4. SQL在过去也需要单独学习,尤其是复杂的联表查询、Tree查询,掌握很不容易。uniCloud推出了JQL(Javascript Query Language),会js即可掌握数据库查询,更对联表查询、Tree查询提供了非常简便的操作封装。

  5. uniCloud提供了uni-id,无需自己开发账户体系,登录、注册、修改密码、角色权限体系、token管理一应俱全。

  6. uniCloud在DB Schema中提供了与uni-id的角色权限体系配套的数据权限控制方案。这套方案让小白也不会在权限控制中犯错。在一目了然的权限配置清单中可以轻松发现漏做的事情,比以往在大坨php代码中分析是否存在权限漏洞要简单的多。这套方案还能让多人协作、或项目二次开发变的更容易,因为规范的存在,新人可以轻易读懂老代码的权限体系逻辑。

所以说,uniCloud是前端变全栈的最佳机会,只需花点时间熟读uniCloud的文档,你就可以成为全栈!

https://uniapp.dcloud.io/uniCloud/README?id=%e4%bb%80%e4%b9%88%e6%98%afserverless%ef%bc%9f

阅读 448+

一片空白

父爱如山,不善表达。回想十多年前,总记得父亲有个宽厚的肩膀,小小的自己跨坐在上面,越过人山人海去看更广阔的天空,那个时候期望自己有一双翅膀,能够像鸟儿一样飞得高,看得远。虽然父亲有时会和自己开玩笑,但在做错事的时候会受到严厉的训斥。父亲有双粗糙的大手掌。