前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >当我们在聊Serverless时你应该知道这些

当我们在聊Serverless时你应该知道这些

作者头像
Nealyang
发布于 2019-10-24 15:38:56
发布于 2019-10-24 15:38:56
1.2K0
举报
文章被收录于专栏:全栈前端精选全栈前端精选

作者:竹涧 原文地址:https://yq.aliyun.com/articles/574222

说起当前最火的技术,除了最新的区块链,AI,还有一个不得不提的概念是Serverless。Serverless作为一种新型的互联网架构直接或间接推动了云计算的发展,从AWS Lambda到阿里云函数计算,Serverless一路高歌,同时基于Serverless的轻量计算开始登录云计算的舞台,本文将从两个部分展开:

  1. 介绍 Serverless的概念,历史及其现状与未来的思考。
  2. Serverless Container的概念及现状。

一、聊聊Serverless

前文讲到serverless是一种新型的互联网架构,目前尚没有官方权威的定义,可以认为:

Serverless无服务器架构是基于互联网的系统,其中应用开发不使用常规的服务进程。相反,它们仅依赖于第三方服务(例如AWS Lambda服务),客户端逻辑和服务托管远程过程调用的组合。

AWS Lambda 作为Serverless最早的框架产品由亚马逊在2014年推出,但最早Serverless概念的并不是由亚马逊提出,下面我们简单来聊聊Serverless的历史。

Serverless 历史

image.png | center | 752x198

发轫之始

2012年云基础设施服务提供商Iron.io的副总裁Ken 提出软件的未来 ,首次提出来Serverless概念, 以下是原文的一段摘录:

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.

初出茅庐

AWS Lambda产品的发布可以认为是Serverless的里程碑,在此之前Serverless几乎是停留在概念期,直到14年Lambda发布,让“Serverless”这一范式提高到一个全新的层面,为云中运行的应用程序提供了一种全新的系统体系架构,Serverless开始正式走向云计算的舞台。

崭露头角

在AWS发布Lambda之后,众多IaaS及Pass厂商争相入市,Google Cloud Functions, Azure Funcions, IBM OpenWhisk,阿里云函数计算,短短数年时间Serverless产品已遍地开花。

未来已来

随着容器技术,IoT,5G,区块链等技术的快速发展, 技术上对去中心化,轻量虚拟化,细粒度计算等技术需求愈发强烈,而Serverless必将借势迅速发展,未来Serverless将在云计算的舞台上大放异彩!

云计算发展看Serverless

首先,抛一个总结性观点:云计算的发展从IaaS,PaaS,SaaS,到最新的BaaS,FasS,在这个趋势中serverless(去服务器化)越来越明显,而Serveless的完善带给云计算将会是一次完美进化!

众所周知,云计算经历了从IDC -> IaaS -> PaaS -> Serverless/FaaS 的发展历程,下面对这些概念做一些基本介绍。

IaaS

image.png | center | 600x347

__IaaS(Infrastructure as a Service) 基础设施即服务,__服务商提供底层/物理层基础设施资源(服务器,数据中心,环境控制,电源,服务器机房),用户需要通过IaaS提供的服务平台购买虚拟资源,选择操作系统,安装软件,部署程序,监控应用。

目前知名的IaaS平台有AWS,Azure,Google Cloud Plantform,阿里云以及开源的OpenStack等。

PaaS

image.png | center | 600x347

PaaS(Platform as a Service) 平台即服务,服务商提供基础设施底层服务,提供操作系统(Windows,Linux)、数据库服务器、Web服务器、负载均衡器和其他中间件,相对于IaaS客户仅仅需要自己控制上层的应用程序部署与应用托管的环境。

目前知名的PaaS平台有 Amazon Elastic Beanstalk,Azure,Google App Engine,VMware Cloud Foundry等。

SaaS

SaaS(Software as a Service) 软件即服务, 服务商提供基于软件的解决方案,如OA、CRM、MIS、ERP、HRM、CM、Office 365、iCloud等,客户不需考虑任何形式的专业技术知识,只需要通过服务商平台获取软件使用即可。

image.png | center | 600x347

BaaS

BaaS(Backend as a Service) 后端即服务,服务商为客户(开发者)提供整合云后端的服务,如提供文件存储数据存储、推送服务、身份验证服务等功能,以帮助开发者快速开发应用。

FaaS

FaaS(Function as a Service) 函数即服务,服务商提供一个平台,允许客户开发、运行和管理应用程序功能,而无需构建和维护基础架构。按照此模型构建应用程序是实现“无服务器”体系结构的一种方式,通常在构建微服务应用程序时使用。

IaaS,PaaS,FaaS 对比

举个例子,比如小明想开一个水果店

  • IDC:如果盖房子,装修,然后上架水果这些工作都是小明自己来做。
  • IaaS:如果小明房子是租的,装修,上架水果是自己做。
  • PaaS: 如果小明房子是租的,可是房子已经装修好了,但是上架水果要自己来做。
  • FaaS:如果有一个商家提供装修好的水果店,小明只负责把水果送过来,其余上架工作都由商家来做。
总结

从IDC → IaaS,用户不用关注真实的物理资源。从IaaS → PaaS,用户不再关注操作系统,数据库,中间件等基础软件。从PaaS → BaaS/FaaS, 用户可以很少甚至不用关注backend,app可以简化为一个单页面程序。

可以说,Serverless是云计算发展到一定阶段的必然产物,云计算作为普惠科技,发展到最后一定是绿色科技(最大程度利用资源,减少空闲资源浪费),大众科技(成本低,包括学习成本及使用成本)的产品,而Serverless将很好的诠释这些!

Serverless/FaaS 模型

Serverless是基于事件驱动的编程范型,其底层的计算平台一般为轻量计算比如容器计算Docker。针对该模型本文不再赘述, 下面以AWS Lambda及阿里云函数计算为例,简单介绍该模型。

AWS Lambda

lambda.gif | center | 752x335

大致流程如下:

  1. UI驱动,通过模拟鼠标点击触发事件
  2. 当触发事件增多时lambda实例自动扩容
  3. 当触发事件减少时lambda实例自动缩容
阿里云函数计算

流程大致如下:

  1. UI/Event/Message Driven触发事件
  2. 用户Function会package为一个docker镜像
  3. 事件调度系统配合Docker集群运行Docker容器来执行Function

Serverless价值与影响

低成本
  • 运营成本,Serverless将用户的服务器,数据库,中间件委托于BaaS/FaaS,用户将不再参与基础设施及软件的维护,尤其在大规模的集群运营上成本大幅度降低。
  • 开发成本,对比IaaS或者PaaS平台的服务器或者操作系统,Serverless的架构中,用户操作的是服务化的组件比如存储服务,授权服务等,可以缩短开发周期,降低开发难度。
真正的按需计费

Serverless/FaaS区别于IaaS/PaaS预先分配计算资源的计费方式,其计费方式通常是按请求次数及运行时间,一方面可以最大程度利用资源,另一方面真正的按需计费可以降低用户的资源成本。

高扩展

Serverless架构一个显而易见的优点即“横向扩展是完全自动的、有弹性的、且由服务提供者所管理”。

“绿色”计算

据统计,商业和企业数据中心的典型服务器仅提供5%~15%的平均最大处理能力的输出,本质上这是对社会资源的一种浪费。而在Serverless架构下,提供商将提供更细力度的计算能力最大限度满足实时需求,资源利用率将大幅度提升,可以认为相对IaaS与PaaS Serverless/FaaS是一种 “绿色” 计算。

NoOps

运维的发展经历了人肉运维,自动化运维,DevOps,AiOps等,而Serverless带来一种新的运维模式,这种模式下用户需要管理的只有Code可以认为NoOps。

Serverless应用场景

  • 事件驱动以及响应式架构
    • IoT物联网场景中低频请求
    • 请求对及时响应需求不够
    • 固定时间触发计算资源利用低的业务
  • 流量突发场景
    • 比如短时间大流量视频转码
    • 短周期内的流量峰值
  • 跨云与混合云
  • 边缘计算
  • 其它 ...

Serverless未来的一些思考

细粒度的计算资源

目前主流的Serverless/FaaS技术底层的计算环境通常是容器比如Docker,容器技术是一种比硬件虚拟化更轻量的实现,用户可以在虚拟机上运行大量的容器,可以更大程度的利用计算资源。

而Serverless的需求可能是更细粒度的计算资源,比如最近华为发布的CCI产品容器的规格已经支持千分之一核,相信千分之一核只是开始,未来Serverless在细粒度资源使用上将发挥无限可能。

统一的容器调度模型

从当前Serverless/FaaS及容器生态的发展来看,容器基本都是运行在云主机之上比如aws的ec2,阿里云的ecs。

由于云厂商实现方式及不同产品的差异性,容器的调度框架选择不尽相同,比如有的厂商其Serverless产品是基于kubernetes管理云主机集群进行容器编排及调度比如华为的CCI,而有的产品比如阿里云的函数计算产品是基于自研的Agent进行容器调度。那么为什么没有一种产品可以为不同的Serverless服务提供通用的容器调度能力呢?

生态圈多样化

Serverless的发展必然会带动其周边生态的完善,比如BaaS及FaaS产品的形态将多样化输出,举个例子:Serverless架构下用户的Code是没有服务端的,而这些服务将由云厂商以BaaS的服务形态提供,随着Serverless的发展,必然会催生多样化的BaaS服务。

产品抽象输出

Serverless是云计算普惠科技的重磅技术!Serverless出现将开发者从复杂的硬件及软件环境中解脱出来,而未来可以想象Serverless的产品将会以更加简单的方式呈现给用户,举个例子:大家熟知的乐高积木,不同的小零件按照不同的方式组装可以得到作品最终是多样化的。

而Serverless天生具备这种优势,可以想象如果Function以服务化的方式抽象,开发者开发一个Cloud App需要做的事情就是在无数的Function里面挑选自己需要的“积木“,然后通过一种可视化的工具进行"积木"组合!

二、Serverless Container

前文讲了一些Serverless生态的概念及现状,从当前主流Serverless/FaaS 框架如AWS Lambda,IBM OpenWhisk,Iron.io,阿里云函数计算分析来看,其底层的计算资源通常是Docker容器。可以认为Serverless构建于容器(Docker)之上!

什么是Serverless Container

** Serverless Container(无服务器容器),用户不再需要关注容器集群和服务器,只需关注Docker容器或者Docker Image即可。**

通过分析业界主流的的Serverless Container产品如 AWS Fargate, Azure ACI, 华为CCI 可以看出

  • Serverless Container 提供了更为简单的体验,用户不再需要理解容器编排技术如k8s,swarm
  • Serverless Container 提供了更细粒度的的能力,比如微核粒度的CPU资源和MB粒度的内存资源
  • Serverless Container 提供了将容器作为基础计算单元的思路
Serverless Container VS kubernets

kuberntes(k8s) 是谷歌开源的容器管理系统,类似的产品还有Docker Swarm, Apache Mesos。无疑这些优秀的集群管理系统尤其是k8s已经在生成得到了充分验证,从使用角度来说k8s需要用户具备容器及容器编排,集群管理等多方面的专业知识,而Serverless Container对用户屏蔽了容器集群管理,用户使用起来将更简单!

结论:Serverless Container在容器产品形态上是高于kubernetes的,事实上大部分的Serverless Container产品都基于或者兼容kubernetes。

Serverless Container VS Serverless/FaaS

根据上文的分析Serverless Container对用户提供的是一种容器计算资源,用户不需要关心容器集群,只需要定制vCpu,mem及Docker Image;而Serverless/FaaS 提供的是一种服务化的计算能力,用户同样不用关心计算集群,只需指定vCpu,mem及Code。

结论:FaaS及Serverless Container的底层计算资源都是Docker容器!

参考链接

  • Serverless加CRDT是Edge的未来
  • Why the future of cloud app is serverless
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 全栈前端精选 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
深度使用了下 Serverless,太丝滑了!
最近在开发自己的小项目的时候,因为各种原因使用上了云函数这个东西,不夸张的说开发时间直接减少一半,当然也没啥复杂业务逻辑,但是乱七八糟各种配置基本都可以摒弃掉了。
飞天小牛肉
2023/09/19
6200
深度使用了下 Serverless,太丝滑了!
Serverless(无服务)基础知识
链接 | juejin.im/post/5d42945ff265da03a715b2f0
五月君
2020/02/11
2.1K0
Serverless(无服务)基础知识
2021年,Serverless大爆发的时间到了!
从初创企业到成熟的大型企业,从互联网企业到传统实体经济企业,从民间组织到领先的政府机构,上云几乎成为一个共同的选择,云几乎可以运行各种不同的工作负载。
科技云报道
2022/04/16
5480
2021年,Serverless大爆发的时间到了!
Serverless简介
Serverless的全称是Serverless computing无服务器运算,又被称为函数即服务(Function-as-a-Service,缩写为 FaaS),是云计算的一种模型。以平台即服务(PaaS)为基础,无服务器运算提供一个微型的架构,终端客户不需要部署、配置或管理服务器服务,代码运行所需要的服务器服务皆由云端平台来提供。 国内外比较出名的产品有Tencent Serverless、AWS Lambda、Microsoft Azure Functions 等。
xiangzhihong
2020/12/21
2.6K0
4000字8分钟带你理解Serverless架构
我们要上线一个系统,需要考虑的是需要多少台服务器或者多少容器资源,还有多大的存储,以及上线之后运行的过程中当需要扩容的时候,到底需要新增多少资源,而且流量高峰之后还需要缩掉多少资源。
王新栋
2019/10/14
1.2K0
4000字8分钟带你理解Serverless架构
周末漫谈 | 什么是 Serverless 架构
Serverless 架构是不是就不要服务器了?回答这个问题,我们需要了解下 Serverless 是什么。
aoho求索
2020/12/01
1.1K0
周末漫谈 | 什么是 Serverless 架构
入门 Serverless:如何实现 Hello World?
近年来,IT 技术的更新迭代速度非常快,每个时间点都有典型的代表名词以及概念,就目前而言,人工智能领域中的机器学习、深度学习、强化学习等名词和概念就非常热,同时区块链、物联网等技术发展也是异常火热。在云计算领域,有这样一个技术被众多云厂商认为是“风口项目”,甚至可以颠覆现有云计算中的某些格局,为此包括 AWS、谷歌以及腾讯云、阿里云等在内的云厂商,都为此投入了重大人力以及精力进行相关产品建设,它就是 Serverless 技术。 自 2006 年 8 月 9 日,Google 首席执行官埃里克·施密特(E
腾讯云serverless团队
2020/04/09
2.1K1
Serverless安全研究 — Serverless概述
在“云”的概念还没有产生之前,开发者购买物理机,并在其上部署应用程序,企业将购买的机器放置数据中心,其网络、安全配置均需要专业的技术人员管理,在这种高成本运营模式下,虚拟化技术应运而生。
绿盟科技研究通讯
2020/09/08
2.2K0
一文讲透 Serverless 到底是什么
上图是 MVC 架构的 Web 应用部署之后的典型情况。上图中的整个蓝色部分就是服务端的边界,它是负责应用或代码的线上运维。而 Serverless 要解决的问题的边界就是服务端的边界,也就是服务端运维。
syy
2021/02/02
1.2K0
看懂 Serverless,这一篇就够了
云计算涌现出很多改变传统IT架构和运维方式的新技术,比如虚拟机、容器、微服务,无论这些技术应用在哪些场景,降低成本、提升效率是云服务永恒的主题。
全栈程序员站长
2022/09/06
1.4K0
看懂 Serverless,这一篇就够了
Serverless 技术思考点滴
这个世界每天都在发生新的变化,无论你是否觉察到,它总是无声无息的发生着。技术生态也是一样,就像光阴,不会因为我们而驻留,从早期的 Cloud/Virtualization、IaaS、PaaS、CaaS 以及到当前比较火热的 Serverless ,无一不是基于业务发展的需要。
Luga Lee
2021/11/20
8331
Serverless 技术思考点滴
《前端Serverless:面向全栈的无服务架构实战》-- 1.Serverless综述(笔记)
IaaS:Infrastructure as a Service,基础设施即服务。
爱学习的程序媛
2022/10/27
9080
《前端Serverless:面向全栈的无服务架构实战》-- 1.Serverless综述(笔记)
备受云厂商们推崇的 Serverless,现在究竟发展到什么水平了?
作者 | 舒超 Serverless 是什么 根据 CNCF 的定义,Serverless 的概念是指构建和运行不需要服务器管理的应用程序。它描述了一种更细粒度的部署模型,在该模型中,应用程序被捆绑为一个或多个功能,被上传到一个平台,然后根据当前所需的确切需求执行、扩展和计费。所以首先需要明确的一点是,Serverless 并非指托管和运行我们的应用程序不再需要服务器,而是指从前耗费研发和运维人员无数精力和资源的 CI/CD、服务器配置维护更新、IT 资源容量的规划和伸缩等工作,被 Serverless
深度学习与Python
2023/03/29
1.1K0
备受云厂商们推崇的 Serverless,现在究竟发展到什么水平了?
Serverless初探
无服务器计算是指开发者在构建和运行应用时无需管理服务器等基础设施,应用被解耦为细粒度的函数,函数是部署和运行的基本单位。用户只为实际使用的资源付费。这些代码完全由事件触发(event-trigger),平台根据请求自动平行调整服务资源,拥有近乎无限的扩容能力,空闲时则没有任何资源在运行。代码运行无状态,可以轻易实现快速迭代、极速部署。
KaliArch
2018/08/31
11.3K0
Serverless初探
写给前端工程师的 Serverless 入门
Serverless 是前端圈近两年比较火热的词汇,但其第一次被提出已经是 7 年前的事情,那么什么是 Serverless 服务,其架构由哪些部分组成,又有什么优缺点,本文将一一道来。
政采云前端团队
2019/12/20
8000
写给前端工程师的 Serverless 入门
前端学serverless系列——WebApplication迁移实践
导语:说起当前最火的技术,除了最新的区块链,AI,还有一个不得不提的概念是Serverless。Serverless作为一种新型的互联网架构直接或间接推动了云计算的发展,从AWS Lambda到各厂商争先推出Serverless服务框架,Serverless一路高歌。在这个风口,前端好像都要做点什么?
腾讯云serverless团队
2019/08/06
9680
Serverless架构:用服务代替服务器
还记得在十多年前,SaaS鼻祖SalesForce喊出的口号『No Software』吗?SalesForce在这个口号声中开创了SaaS行业,并成为当今市值520亿美元的SaaS之王。今天谈谈『No Server』有关的事, 继OpenStack、Docker 、MiscroService、Unikernel、Kubernetes和Mesos之后,ServerLess正成为Google、AWS乃至创业公司暗战的新战场,它能否成为云计算领域的颠覆性趋势? 我相信大家也会存在一些疑问: Serverless到
yuanyi928
2018/04/02
3.8K0
Serverless架构:用服务代替服务器
云原生时代,如何构建自己的Serverless平台
2009 年加州大学伯克利分校发表了一篇文章,预言云计算将是未来重要的技术趋势。十年后的2019年,该校对 Serverless 技术再次进行预测,认为 Serverless 技术是未来十年的技术趋势。Serverless 计算被认为是云主机、容器之后的第三代计算形态。 下图为云计算发展的整个过程,同时也是Serverless的发展过程,共分为四个阶段。 a) 物理机阶段: 此时如果进行一个网站的开发是极为麻烦的,不仅需要购置物理机,还要手动安装  各种运行环境,开发,部署,测试,上线。除此之外,还要在物
博文视点Broadview
2022/07/25
2.1K0
云原生时代,如何构建自己的Serverless平台
深入浅出Serverless:2 Serverless与相关技术
介绍 作为一个热门词汇,Serverless并不孤单,和它一起受到广泛关注的还有诸如微服务(Microservice)、容器(Container)和云等。其实这些技术之间有着很强的关联关系。正确地理解Serverless和其他技术的关系,是正确理解Serverless架构的一个重要基础。要深入理解Serverless,需要结合当下业界发展的整个大环境和趋势进行思考。 云计算 从私有数据中心到云 按所管控的计算资源的范围来划分,云计算模式可以分为基础架构即服务(Infrastructure as a Serv
yeedomliu
2019/09/29
1.1K0
深入浅出Serverless:3 Serverless的实现
AWS Lambda、Microsoft Azure Functions及Google Cloud Functions支持的开发语言
yeedomliu
2019/09/27
3.6K0
推荐阅读
相关推荐
深度使用了下 Serverless,太丝滑了!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档