关键词:
一、2020年的服务端革命
你知道吗我们天天使用的石墨文档、微博、芒果TV都在全部或部分使用Serverless技术。
其实知乎也是用的leancloud。
技术的发展使我们有可能不花一分钱、不雇佣一个只强大的后端团队也可以建立一个媲美大厂的高可用服务端。
1. 石墨文档案例
石墨文档并不是使用了常规意义上的服务器或者微服务架构所支持的。而是通过Serverless架构生长在云端的。
阿里云函数计算(Function Compute)作为中国发展较早的事件驱动的全托管计算服务,已经落地了码隆科技、微博、芒果 TV、石墨文档等多个客户。我们一起看看中国的头部互联网企业是如何利用函数计算助力业务发展的。
客户需求
多位石墨文档的用户在同一文档 / 表格上协同编辑时,有可能对同一内容进行了修改,产生冲突。石墨文档需要实现一套服务来实时处理文档编辑冲突,并能在合理的成本下平滑处理峰值负载。
解决方案
将文档实时协作等计算密集型的逻辑实现为函数,通过 HTTP 请求触发函数执行。
使用效果
借助函数计算毫秒级别的资源伸缩能力,解决了早晚高峰用量突增的计算资源扩容问题,并节省了 58% 的服务器成本。 由于不用再考虑 CPU 密集型计算的负载均衡问题,大大提高了开发效率和进程稳定性。
2. Nodersurvey年度报告
Nodersurvey是由阿里巴巴、腾讯等公司领先的Node年度趋势报告。
nodersurvey.github.io/reporters/
在未来关键词中Serverless成为最被关注的话题。
二、什么是Serverless
服务器端服务就是为我们提供稳定可靠的服务,
另外还要减低成本,提高效率。
比如:
- 动态扩容 - 不需要的机器及时关掉
- 减低成本 - 人员越少越好 能租的就不要买
为了达到这个目的,后端的目的不断的升级演进。
1. 互联网架构演进
互联网架构的演进大概分为以下三个阶段:
- 单体时代
- 微服务时代
- Serverless
1.1 单体时代
相当于所有应用都安装在一台服务器中比如最早的网易和搜狐也许都是从一台Unix主机开始的。
这个有点像最原始的街机游戏 从硬件 + 软件 + 操作系统都是一个公司做的。
1.2 微服务时代
微服务架构是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。它的主要作用是将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持。
简单的讲就是将复杂的事情拆开做。需要有庞大的团队。
这个有点像腾讯的王者荣耀团队。从年终奖的数额你就可以看到他们组织架构的庞大
1.3 Serverless
无服务器架构,并不是说不需要服务器,而是指由第三方云计算供应商以服务的方式为开发者提供所需功能,例如数据库、消息,以及身份验证等。它的核心思想是让开发者专注构建和运行应用,而无需管理服务器。
这相当于开发游戏我们只需要专注于程序逻辑就好了。其他全部外包。
让我想起了蓝洞开发吃鸡的时候,基本上3D模型、游戏引擎、都是从游戏市场购买然后组装。整个蓝洞的组织规模并不大。
2. 云服务架构演进
为了达到让我们的服务资源可以达到自动伸缩的目的,目前绝大多数数应用都是使用云技术完成的。
![image-20201114184313929](/Users/xiaran/Library/Application Support/typora-user-images/image-20201114184313929.png)
大家知道吗?其实后端程序员编写代码的比例不足百分之三十那么其余时间都在干什么?
随着云计算时代的到来传统的IT架构和运维方式带来了很多新的技术、其中包括虚拟机、容器、微服务。
这些技术为了一下目的:
- 减低成本
- 提高效率
如何能达到这个目的呢?答案应该是尽量减少业务用户的运维和IT架构工作量,专注构建自己的业务应用,
剩下的交给云服务商。
前端开发 + 后端开发 => 云开发 + 端开发
2.1 BareMetal 裸金属服务器
可以认为专属物理服务器租赁业务。这样就不需要租赁机房、拉光缆、装服务器了。
2.2 Virtual machines 虚拟机服务
用虚拟机代替实体机主要是免去了安装操作系统和基础软件的烦恼。
我们只需要租赁虚拟机就可以了。
2.3 Container 容器化部署
相当于轻量化虚拟机,主要是以Docker技术为代表。
2.4 Serverless
无服务器架构,并不是说不需要服务器,而是指由第三方云计算供应商以服务的方式为开发者提供所需功能,例如数据库、消息,以及身份验证等。它的核心思想是让开发者专注构建和运行应用,而无需管理服务器。
简单的说只需要上传代码就好了。
最终的结论就是
BareMetal | Virtual machines | Container | Serverless | ||
函数 | 业务代码 | ✅ | ✅ | ✅ | ✅ |
Layer | eggjs/spring | ✅ | ✅ | ✅ | ✅ |
运行时 | Node/Java/Python | ✅ | ✅ | ✅ | |
基础设施 | Kubeless | ✅ | ✅ | ||
硬件设备 | 网络、硬件 | ✅ |
可以看到目前为止的最优解就是Serverless。
三、Serverless架构
有人说,
编程 = 算法 + 数据结构
那么,
应用 = 逻辑 + 存储 ,
我们可以将应用分为无状态的业务逻辑 和 状态服务组成。
Serverless(应用) = Faas(业务逻辑) + Baas (状态保持)
如果想要在Serverless上面构建一个完整的服务我们就需要将程序分解为这两个部分。
我们以小程序为例
1. Faas
Faas即Function as a service ,我们一般会叫做函数计算,或者是函数运行服务。其实就是将云平台上的计算量打包转卖。只需要用户上传函数就好。
特点
- Stateless 无状态
- 代码 + 依赖配置
案例
- 亚马逊 AWS lamabda
- 谷歌 Google Cloud Functions
- 阿里云 Aliyun FC
- 腾讯云 SCF - Serverless Cloud Function serverless.cloud.tencent.com/start?c=ft
另外如果要函数可以通过Http请求调用还需要网关
- AWS API网关
2. Baas
Bass即Backend as a Service, 后端即服务的意思是说我们可以租用远程的后端服务而无需自己编写。这里面用的比较多的就是状态保持服务,比如类MongoDB这样的存储服务、鉴权服务等。
特点
- 有状态
- 提供服务API
服务商
- LeanCloud
- Firebase
四、应用场景
最后我们说说serverless的应用场景。
首先我认为所有想创业的朋友可以考虑直接将项目放在Serverless上面。
1. 创业项目
以一个toC的项目为了在获得融资前你的项目用户数量不会很多。及时有突发性的场景也可以很容易动态扩容。关键是可以有效的剩下一笔后端人员的费用。要知道如果找一个能够完整搭建微服务架构的后端团队一定是一个不菲的数字。而且团队是否靠谱和高效也是一个问题,给项目的推进带来很多不确定因素。
等有了投资,再说。
甚至你都不用花钱
链接在此
cloud.tencent.com/act/pro/ser…
2. 事件请求场景
- 定制图片
- 物联网
- 埋点记录
- 定时脚本
3. 高运维成本场景
- 网页截图 - pupteer截图 + SSR渲染
- 大数据计算
4.流量突发场景
- 活动、大促
- 规律场景 (外卖 每天有明显的峰谷)
年轻人要讲武德!!!点赞、关注、收藏都要安排起来!!!
- 这是我们花果山前端团队的开源项目 element3
- 一个支持 vue3 的前端组件库
serverless时代下大规模微服务应用运维的最佳实践
简介:原来的微服务用户需要自建非常多的组件,包括PaaS微服务一些技术框架,运维IaaS、K8s,还包括可观测组件等。SAE针对这些方面都做了整体的解决方案,使用户只需要关注自己的业务系统,这极大地... 查看详情
三大特性,多个场景,serverless应用引擎sae全面升级
简介:Serverless应用引擎SAE凭借着天然技术优势,已经帮助成千上万家企业实现容器和微服务技术转型。近日,SAE不仅进一步提供了全套微服务能力,更为传统Job和PHP用户提供了全新的,更高效、更经济且可平滑迁移的解决方... 查看详情
微服务和serverless如何强强联合?
导语 | 微服务与Serverless被不少开发者称为“天作之合”,在当前的微服务体系中,Serverless的定位是什么?Serverless在微服务分布式应用中又是如何落地的?本文由腾讯云微服务产品中心技术总监韩欣在TechoTVP开... 查看详情
当rocketmq遇上serverless,会碰撞出怎样的火花?(代码片段)
...书!想必大家都比较了解RocketMQ消息服务,那么RocketMQ与Serverless结合会碰撞出怎样的火花呢?我们今天介绍一下如何基于RocketMQ+Knative驱动云原生Serverless应用。本文主要从以下几个方面展开介绍:云原生与ServerlessKnative简介RocketMQS... 查看详情
看懂serverless,这一篇就够了
一、无服务器(Serverless)计算是什么云计算涌现出很多改变传统IT架构和运维方式的新技术,比如虚拟机、容器、微服务,无论这些技术应用在哪些场景,降低成本、提升效率是云服务永恒的主题。过去十年来,我们已经把应用... 查看详情
当微服务遇上serverless|微服务容器化最短路径,微服务onserverless最佳实践
简介: 阿里云Serverless应用引擎(SAE)初衷是让客户不改任何代码,不改变应用部署方式,就可以享受到微服务+K8s+Serverless的完整体验,开箱即用免运维。前言微服务作为一种更灵活、可靠、开放的... 查看详情
三大特性,多个场景,serverless应用引擎sae全面升级
简介:Serverless应用引擎SAE凭借着天然技术优势,已经帮助成千上万家企业实现容器和微服务技术转型。近日,SAE不仅进一步提供了全套微服务能力,更为传统Job和PHP用户提供了全新的,更高效、更经济且可平... 查看详情
云原生的定义(代码片段)
想必大家都比较了解RocketMQ消息服务,那么RocketMQ与Serverless结合会碰撞出怎样的火花呢?我们今天介绍一下如何基于RocketMQ+Knative驱动云原生Serverless应用。本文主要从以下几个方面展开介绍:云原生与ServerlessKnative简介RocketMQSource... 查看详情
火出边际的serverless,你居然还不了解?
...和Spark共同创始人IonStoica,在19年伯克利的会议上发布Serverless将是下一代默认的计算范式。本文分享自华为云社区《听说最近Serverless很火?一文读懂什么是下一代云计算范式》,作者:敏捷的小智。云计算发展至... 查看详情
极致体验!基于阿里云serverless快速部署function
Serverless前世今生Serverless背景介绍云计算的不断发展,涌现出很多改变传统IT架构和运维方式的新技术,而以虚拟机、容器、微服务为代表的技术更是在各个层面不断提升云服务的技术能力,它们将应用和环境中很多... 查看详情
基于阿里云serverless快速部署function的极致体验
1.Serverless前世今生1.1Serverless背景介绍云计算的不断发展,涌现出很多改变传统IT架构和运维方式的新技术,而以虚拟机、容器、微服务为代表的技术更是在各个层面不断提升云服务的技术能力,它们将应用和环境中很... 查看详情
身为程序员,就应该了解微服务的未来发展趋势:云原生应用架构
...将讲解云原生架构、ServiceMesh技术、无服务器架构(Serverless)技术。云原生应用架构云原生应用架构的3个特征包括:容器化、微服务、DevOps。通俗地讲,就是将现代应用基于微服务架构原则(云原生12因子ÿ... 查看详情
《前端serverless面向全栈的无服务器架构实战》读书笔记
《前端serverless面向全栈的无服务器架构实战》读书笔记第1章什么是severless什么是NoOps利用自动化运维代替手工运维模式什么是severless开发者无需关注服务器资源配置情况、部署情况、操作系统以及依赖软件等在内等所有细节,... 查看详情
阿里云serverless助力企业全面拥抱云原生
简介:相信随着云计算的发展,Serverless将成为云时代默认的计算范式,越来越多的企业客户将会采用这个技术。作者:洛浩视频解析点击此处,可查看相关直播回放~Serverless应用引擎的组件架构最早的时候ÿ... 查看详情
微服务的很多思想,serverless可以借鉴
微服务的很多思想,Serverless可以借鉴微服务是老生常谈的话题,微服务架构也是当前最流行的一种架构模式,微服务的内容包括容错机制,容灾机制,安全验证鉴权,监控,自动扩缩容,日志链路跟踪,多版本控制,灰度,CICD... 查看详情
与伙伴同行,serverless让创新触手可及
...行,让创新触手可及》,他在分享中详细介绍了阿里云在Serverless领域的产品布局、技术创新以及服务伙伴和客户的经验。今天Serverless的方式真正意义上做到了云产品、云技术的开箱即用,企业和开发者不需要再关注底层的资源... 查看详情
下一代微服务:serverless在字节阿里等大厂的落地实践
微服务和Serverless正在成为一对最佳拍档。云计算时代,容器和K8s的出现让微服务架构开始发挥更大的效能,如今云应用正朝着无服务器的方向发展,Serverless简化了开发模式,开发者不用再关心Server,只需专注... 查看详情
每日一书丨serverless架构从原理入门到实战的技术指南
Serverless架构是云计算发展的产物,它继承了云计算的优点,并具备极致弹性、按量付费、免运维等优势。Serverless架构让开发者可以将更多精力放在业务逻辑上,让资源浪费更少,让服务器运维成本更低,真正... 查看详情