初识 Serverless (上)|学习笔记

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: 快速学习 初识 Serverless (上)

开发者学堂课程【初识 Serverless:初识 Serverless (上)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/840/detail/14006


初识 Serverless (上)

云计算的发展史

l HDFS

l MapReduce

l Hbase

从ENIAC 诞生到谷歌的三篇经典论文,云计算正式拉开帷幕。

 

(一)云计算是什么?

1.云与 Serverless

l 1961年,麻省理工学院百周年纪念典礼上,约翰麦卡锡(1971年图灵奖获得者)第一次提出了 "Utility Computing" 的概念,这个概念可以认为是云计算的一个“最初的",超前的"遐想模型,它翻译成现今的大意就是:计算机在未来,将变成一种公共资源,会像生活中的水、电、煤气一样,被每一个人使用。

l 1996年,康柏 (Compaq) 公司的一群技术主管在讨论计算业务的发展时,首次使用  了 Cloud Computing 这个词,并认为商业计算会向Cloud Computing的方向转移。这也是"云计算”从雏形到正式被提出的基本过程。

l 2009年,UC Berkeley 发表了:  Above the Clouds: A Berkeley View of Cloud Computing。 在该文章中,明确指出:云计算是一个即将实现的古老梦想,是计算作为基础设施这一长久以来梦想的新称谓,它在最近正快速变为商业现实。在该文章中,明确的为云计算做了定义:云计算包含互联网上的应用服务及在数据中心提供这些服务的软硬件设施。

 

l 2012年由 lron.io 的副总裁 Ken Form 所写的一篇名为 Why The Future of Software and Apps is Serveress 的文章中,提出了一个新的观点:即使云计算的已经逐渐的兴起,但是大家仍然在围绕着服务器转。不过,这不会持续太久,云应用正在朝着 无服务器方向发展,这将对应用程序的创建和分发产生重大影响。

l 2014年 Amazon 发布了 AWS Lambda让"Serverless"这一范式提高到-个全新的层面,为云中运行的应用程序提供了-种全新的系统体系结构,至此再也不需要在服务器上持续运行进程以等待 HTTP 请求或API调用,而是可以通过某种事件机制触发代码执行,通常这只需要 在 AWS 的某台服务器上配置一个简单的功能。

l 2016年10 月在伦敦举办了第届的 S erverlessConf, 在两天时间里面,来自全世界40多位演讲嘉宾为开发者分享了关于这个领域进展,并且对未来进行了展望,提出来了 Serverless 的发展机会以及所面临的挑战,这场大会是针对Serverless领域的第一场具 有较大规模的会议,在 Serverless 的发展史 上具有里程碑的意义。Serverless 从提出到落地,再到大规模布局

 

(二)Serverless 是什么?

1.基础介绍

Martin Fowler 在 Serverless Architectures——文中认为 Serverless 实际上是 BaaS 与 FaaS的组合。

l Serverless 最早用于描述那些大部分或者完全依赖于第三方(云端)应用或服务来管理服务器端逻辑和状态的应用,这些应用通常是富客户端应用(单页应用或者移动端App),建立在云服务生态之上,包括数据库(Parse、 Firebase) 、账号系统(AuthO、 AWS Cognito)等。这些服务最早被称为"(Mobile) Backend as a Service",下文将对此简称为" BaaS" 。

l Serverless 还可以指这种情况:应用的一部分服务端逻辑依然由开发者完成,但是和传统架构不同,它运行在一一个无状态的计算容器中,由事件驱动、生命周期很短(甚至只有一次调用) 、完全由第三方管理。这种情况称为 Functions as a service / FaaS. AWS Lambda 是目前的热门 FaaS。

l 2019年 UC Berkeley 的文章 Cloud Programming Simplified: A Berkeley View on Serverless Computing 中也肯定了这一描述:简单地说,Serverless = FaaS + BaaS. 在对于被认为是 Serverless 的服务,它必须具备弹性伸缩和按量付费的特点。 ( Put simply, serverless computing = FaaS + Baas. In our definition, for a service to be considered serverless, it must scale automatically with no need for explicit provisioning, and bebilled based on usage. )

2.观念转变

One Step Forward :

通过提供自动缩放功能,今天的 FaaS 产品在云编程方面迈出了一大步,它提供了一种实际上可管理的,看似无限的计算平台。

Two Steps Back :

首先,他们忽略了高效数据处理的重要性;其次,它们阻碍了分布式系统的开发。

l 新的 BaaS 存储服务会被发明,以扩展在 Serverless 计算上能够运行更加适配的应用程序类型。这样的存储能够与本地块存储的性能相匹配,而且具有临时和持久可供选择。比现有的 x86 微处理器更多的异构计算机。

l 更加安全、易用的编程,不仅具有高级语言的抽象能力,还有很好的细粒度的隔离性。基于 Serverless 计算的价格将低于 Serverful 计算,至少不会高于 Serverful 计算。

l Serverless 将会接入更多的后台支撑服务,如 OLTP 数据库、消息队列服务等。

l Serverless 计算一旦取得技术 上的突破,将会导致 Serverful 服务的下滑

l Serverless  将会成为云时代默认的计算范式,将会取代 Serverful 计算,因此也意味着服务器——客户端模式的终结。


3. 架构对比

图片23.png

通常情况下一些Web应用都是传统的三层 CIS 架构,但是在 Serverless 架构下

 

4.工作流程

图片24.png

当开发者想要开发一个项目的时候,通常只需要根据 FaaS 提供商所提供的Runtime, 选择一个所熟悉的编程语言,然后进行项目开发、测试(图中步骤1) ;完成之后将代码上传到 FaaS 平台(图中步骤2) ;上传完成之后,只需要通过 API/SDK (图中步骤3)或者一些云端的事件源(图中步骤3)触发上传到 FaaS 平台的函数,FaaS 平 台就会根据触发的并发度等弹性执行对应的函数(图中步骤4),最后用户可以根据实际资源使用量进行按量付费

 

5.核心价值

l 降本提效:云厂商为使用者提供服务器的管理和运维工作,为使用者提供数据库、对象存储等 BaaS 服务,让用户将更多的注意力放在自身的业务逻辑上,提升研发效率,缩小项目的创新周期,同时Serverless的使用者不用更多的担心自己的服务器运维,基础设施的运维等工作,更不用为这部分有额外的费用支出,无需承担更多的运维工作成本等; Serverless 架构提供了较为完善、全面的按量付费模型,使用者只需按照自己实际使用的资源量付费即可; Serverless 架构在这一层面有较为明确的优势:

l 降低运维成本

l 降低人力成本

l 提高研发效率

l 降低创新周期

l 按量付费,降低支出成本

 

l 安全、方便、可靠:把更专业的事情交给更专业的人去做,Serverless 架 构将更多服务器运维、安全相关的事情交给云厂商来做,大规模提升项目的整体的安全性:同时,Serverless 架构明显比其他架构更简单,因为更多的 BaaS 服务都是云厂商提供的,使用者将会管理更少的组件,这意味着 Serverless 的使用者可以更简单更方便的管理项目;同时 Serverless 架构拥有着弹性能力,即自动伸缩的能力,该能力可以让项目在流量增加的时候,自动进行扩容,在流量降低的时候,自动进行缩容,进而保证整个业务的安全、稳定。专业团队为用户保障安全,保障性能,这使得Serverless 架构:

l 安全风险更低

l 资源开销更小

l 符合“绿色”计算思想

l 更加方便管理

l 弹性伸缩,服务更可靠

 

6.面临挑战

l 本地函数调用

l Faas 平台函数调用

l 由于冷启动,FaaS 平台的函数,首次调用会耗时较长

l 冷启动与热启动的区别

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
6月前
|
运维 Cloud Native 安全
Serverless是什么
小陈向大刘请教Serverless,了解到Serverless是种云原生开发模式,重点在于FaaS(函数即服务)和BaaS(后端服务),让开发者专注于业务逻辑,而无需管理服务器等基础设施。Serverless并非无服务器,而是将服务器运维工作交给云厂商。FaaS是代码托管服务,例如阿里云的函数计算,提供敏捷、弹性、可靠且成本效益高的计算服务。BaaS则是通过API调用第三方服务,如数据库访问。Serverless与传统架构相比,减少了开发者的负担,提高了效率,降低了成本,并增强了安全性。
617 6
|
6月前
|
运维 Serverless 虚拟化
为什么需求Serverless
公司计划在网站上引入AIGC技术以增强用户互动,但担忧开发周期长和成本高。技术负责人建议使用Serverless技术,这种模式允许只关注核心代码开发,减少资源管理和运维成本,适应快速、低成本的需求。小陈将负责调研Serverless在AIGC应用中的可行性,以实现更高效、节省资源的开发。Serverless的核心是让开发者专注于业务逻辑,减少非必要技术问题的处理,符合开发人员期望的开发模式。
75 6
|
存储 安全 物联网
Serverless 是什么?
Serverless 是什么?
166 0
|
弹性计算 监控 Java
Serverless
Serverless应用引擎SAE(Serverless App Engine)是一个全托管、免运维、高弹性的通用PaaS平台。SAE支持Spring Cloud、Dubbo、HSF、Web应用和XXL-JOB、ElasticJob任务的全托管,零改造迁移、无门槛容器化、并提供了开源侧诸多增强能力和企业级高级特性。
120 3
|
Web App开发 存储 运维
即学即会 Serverless | 初识 Serverless
Serverless 架构被越来越多的业务所采纳,成为其技术选型,大多数开发者已经跨越对 Serverless 概念了解,切实向落地实践出发。本文带大家一探究竟,为什么说 Serverless 可以帮助开发者聚焦核心业务价值,以及有哪些场景更适合 Serverless 架构!
|
消息中间件 缓存 运维
serverless入门介绍
serverless入门介绍
297 13
serverless入门介绍
|
架构师 物联网 Serverless
什么是Serverless? #110
什么是Serverless? #110
82 0
|
运维 Kubernetes Cloud Native
什么是serverless
什么是serverless
136 0
|
Serverless
Serverless
Serverless 自制脑图
142 0
Serverless
|
Web App开发 弹性计算 运维
Serverless 的前世今生
从云计算到云原生再到 Serverless 架构,技术飞速发展的轨迹都有一定规律可循,那么 Serverless 架构为何而来,因何而生呢?
Serverless 的前世今生

热门文章

最新文章

相关产品

  • 函数计算
  • 下一篇
    无影云桌面