课时1:从0 入门,Serverless 技术及价值

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 课时1:从0 入门,Serverless 技术及价值

从0入门,Serverless 实战与创新:课时1:从0 入门,Serverless 技术及价值

课程地址:https://developer.aliyun.com/trainingcamp/2fa0d6a98ffb4b71a65b3034cc8ca5d7?spm=a2cwt.28237621.J_9603273760.4.4236b726aYRcMj

Serverless架构模式

 

内容简介

一、介绍环节

二、静态站点

三、单体和微服务

四、事件触发

五、总结

 

首先简单的自我介绍一下,我是阿里云的研发工程师,西刘也是本次赛道一的导师呃,非常荣幸能站在这里给大家分享Serverless架构模式这个主题。今天的分享会由以下五个章节依次展开

图片1.png

分别第一个章节的话是会深入的介绍一下service概念以及service架构的好处, 234这三个章节的话会以三个比较经典的场景,然后比较一下传统架构和升级到serverless架构以后带来的好处,做一些设计模式的探讨最后简单的做一个总结。

 

一、介绍环节

图片2.png

我用一下阿里云峰会,粤港澳大湾区,阿里云原生负责人第一演讲的主题,云上开发成为主流serverless定义新范式

对于定义新范式的话包括以下这四个东西大概就是通过颜值化的服务能力前托管让开发者更加专注于逻辑开发云服务的可编排可复用,提升开发效率,然后serverless产品的架构特性等弹性扩缩容保证了用户从容面对流量洪峰,从功能的交付的角度来看的话,也会缩短交付的周期。Gartner的预测,2025年将有50%的全球企业会采用severless架构。那既然serverless助力企业创新,然后刚刚说定义了新范式,那什么是收理架构呢?那相信大家可能有的人看过这张经典的图

图片3.png

以人类进化的角度来看待计算的进化就是说serverless可能会代表着一个中态,就代表着生产力的解放,会提高客户使用云的效率

本质上来说,他可以从这个角度来看,可以看出他无需关注底层设施更高专注于业务逻辑代码带来的收益的话,就是能效的提高,然后资源的利用率会提高。当然就是说,什么是社会生产,就是根据cnc f的官方定义的话,就是说serverless是一种一延伸的开发模式,是允许开发人员去构建运行应用程序,而不需要管理服务器所以说serverless不等于没有服务器,只是说对于开发者来说,这个serverless可能被影响上托管了,对我来说,我只需要开发用户代码部署应用,然后我对这个应用请求的时候,这个会弹性的扩缩容。因此在有一段时间的话,在那么大影响的话,serverless架构一般指的是一种fast就是函数即服务加bus就是后端服务来解决问题的一种设计,比如说像函数计服务fast这种产品的典型代表,可能有比如说f拉玛达或者说是阿里云函数计算,然后bus的话,典型的像这个S3就awS 3或者阿里云对象存储oss,其实对开发者来说他都不需要服务器管理但这个SERVERLESS的定义,可能就这个东西就说fast+bus,可能就是让我们对这个serverless定义有一些清楚了,但是他可能也造成了一些争议,比如说现在越来越多的服务就是以前是serverless服务,就是有服务器的服务也进入了solace形态,比如说像fast这种纯按量的也有一些一游形态。但是不管怎么样,servwerless有一个最根本的理念是没有变化的,就是让用户最大化的继教他的业务价值。其他特性,比如说像serverless还有一些特性,比如说no server,不关心服务器,自动弹性,然后按量付费等,其实本质上都是为这个理念去服务的,所以我们只需要关注serverless这个理念就好了。因为有这个理念,我们可以看到很多serverless产品都有这样的特性

图片4.png

,第一个就是全面托管,因为只有云厂商全面托管了,对你来说才没有服务器的概念。然后资源的购买,释放,什么按量付费就不需要去管

第二比如说是对象程度,我不需要关注存储空间,用用少,担心预值会怎么样,对我来说我只需要按量付费就好了。所以说还要开箱即用,就是说不需要很复杂的运维

个最重要的有个最重要的就是按量付费,可以看到这些特性,还是刚刚我们探讨的这个东西,其实都是为serverless最根本的理念,让用户最大化的专注逻辑这个理念去设计的,也就是阿里云自己本身也在前面拥抱serverless。有37款产品实现了serverless化,就是从计算到存储,从AI到大数据均有涉及。

图片5.png

从开发者自己的角度来看, 使用好这些收尾产品,实现自己serverless业务的收尾是架构也是一个大的趋势。刚刚说的就是采用那些收尾的产品,然后做一些serverless架构,是一个比较一个大势所趋的东西,那么就是说我们去做一些serverless架构的实践,有一些延伸心智,就是在你实践serverless架构的时候最重要的心智不是你去选择那些在流行的时务或者技术,攻克哪些技术难题,而是明确专注自己的业务逻辑,这样才可以使我们选择更加合适的技术和服务。对于如何设计应用架构有一个非常著名的社会实践者,BenKehoe就是这样描述serverless原生心智

第一,我的业务是什么,第二做这件事能不能让我的业务出类拔萃三如果不能,我为什么要做这件事,而不是让别人去解决这个问题,四在解决业务问题之前,没必要解决技术问题。因为人的精力是有限的,组织的资源也是有限的,serverless的理念可以更好的让我们用有限的资源解决真正需要解决的问题,这是因为我们少做了一些事情,比如说服务器的管理dedorce工具防护管理让别人去做这件事情,比如说银行上去把这件事做了,我们才可以在业务上做的更多。

接下来的话就是说我们会描述一些常见的业务场景,探讨如何使用serverless架构来支持这些场景,为了不使这些讨论过于抽象,我们会使用一些具体的技术实现作为参考。但是这些架构的思想是通用的,可以使用其他类似的产品去实现。当然,我们也会从两个维度去对比,比如说传统架构和serverless架构带来了一些优劣比如从技术角度,我们看一下就计算存储消息通信从衡量的维度的话,我们可以看一下运维安全可靠可扩展成本等等。

 

二、静态站点

图片6.png

假设我们要做一个信息展示的网站比如类似于最早期的中国黄页,或者现在大家都流行企业门户网站或者说是个人博客网站,其实信息更新的频率其实没有那么高。它的特点就是,第一展示信息,第二更新不频繁,第三不确定访问量。

架构演进①

图片7.png

就是说按照以前最老的服务器,也就是买一台服务器在IDC机房运行这个站点。然后客户端用户浏览器去访问这个服务器,但这个服务器可能会有淡点的问题,就是访问不确定,比如没有流量的时候,这个机器在浪费流量一多的时候,这个机器可能就掉了。为了提高这个网站的稳定性和可用性,一般会提升到这个架构,前面会加一层负载均衡,然后加多个服务器,然后解决他的高可用性问题。然后可以看到,从这个self的架构传递到serverless架构的话,比如我们选用了两个serverless产品,一个是cdn 一个是镜像存储。把这个页面发布到对象存储就好了,对象存储它是一个海量存储系统,对我来说我根本不需要担心我的容量空间会不会打爆我只需要为我按需发布的存储空间内容去付费。然后从客户端的角度来说,我可以直接访问oss,但是如果前面加一层cdn的话,会让你的客户的访问速度得到极大的优化。另一方面,如果访问量不确定有流量洪峰,这个东西都是能帮你去把这些问题给解决掉。如果没有访问也是按量付费的,你不会付出额外的流量成本或者存储成本。同时,在cdn和oss层面上隐藏的层面上,还可以帮你把dedorce这种问题给解决掉。其实你刚我们刚才那个例子就是中国黄页,那个例子可能对当时的马云来说,最核心的价值就是展示信息让世界了解中国,这是他的核心业务,所以serverless就是这么一个理念就最大化的让你专注我的价值,对我来说我只需要开发这个展示的页面,其他的高可用,按量付费,安全问题其实都交给了这个serverless产品去做,对我来说我无需管理服务器,我也不需要对资源做预估和考虑未来扩展,因为oss本身是弹性的使用cdn会使弹性更小。然后还有一个最重要就是按实际的使用资源付费这个可能是对我来说能带来其他的价值。

架构延伸②

图片8.png

当然静态是很好的,但是还有一些动态的东西有些动态的东西,就比如cdn可能不止可以回原到对象存储纯静态资源的东西,它也可以回原到一些计算产品。比如说函数计算fase ,Fast就是函数g服务的典型代表阿里云的函数计算,或者说是serverless、K8s就Ask或者是阿里云的serverles运用引擎,计算产品。这些计算产品都是有按息付费,弹性扩容的能力。这样你可以看到这种架构延伸这三个都是成serverless,对开发者来说,他还是去专注在这一块,他的技术业务还是专注这一块。

 

三、单体和微服务

图片9.png

接下来我们会讲一下单体和微服务。刚刚那个讲的都是静态页面,比如说这个,现在假设有个业务需求,商品详情页。首先,他会有海量的商品呃,更新频繁,动态信息会来源广泛,如基本信息价格运费评论等等。首先我们可以看到前面的这个ser server for单体架构可以继续支持这种场景,还是可以保留了这种高可用的特性。对所有的逻辑都在一个应用中去完成,然后结合数据库

这是一种单体架构,但是随着业务的发展,功能会变得越来越多,访问量也变高了。这个时候会把庞大的单体应用进行拆分拆分成微服务的做法,比如商品详情页面会有一些评论信息售卖信息配送信息,都可以对应一个单独的微服务,右图就是我们引进的一个service架构,

图片10.png

其实这种serverless架构看起来和微服务架构比较相似 ,但是他的好处是每个单元都是高度自制的, 比如可能使用客户端请求通过统一的API网关,动态资源,然后函数计算,或者是ASK这种弹性阶段产品。比如说API网关对应A函数,假如A函数就是刚说的评论信息,然后b函数就配送信息,或者ASK的A 应用,B应用,也就是通过API网站进行预测。回到这种情况,静态资源就是刚刚我们讲的第一个场景,也就是cdn和对象存储这个时候我们再去想想之前我们讲的serverless延伸心智,去对应一下比如说我们是否需要去自己购买服务器安装数据库实现高可用管理备份升级版本,还是把这些事情交给托管的服务,比如ASK,是否可以使用serverless整个数据库表格存储。或者serverless hbese ,实现了这个按需或收容和按量付费。单体应用的话,是需要自己购买服务器去运行的,还是直接把应用托管给serverless计算平台,比如说是sk函数计算或者sae。

这里提到的一些技术问题,都是和我们业务无关的,我们的业务是展示商品信息。所以我们可以想象一下让这个service这些产品去承担更多基础设施,或者说流量管理或者安量管理,让我们只专注于说这个商品信息的这个业务价值,这样我们最主要精力集中在商品展示信息的需求上。

架构延伸③

图片11.png

因此的话,这个还架构还有个延伸,比如说这个微服务内部是通过阿里云应用或ask这种去实现。这里还有一个比较流行的模式,叫Bff就是baking for flat flat定制的后台,这个也是备受全单开发工程师推荐的一个东西,针对电脑和手机的不同的应用,针对这个调这个接口的话进行各种适配,这个适配其实可以是通过这个方式来做一个函数去实现的,前端就可以把这些事情给做了,微服务的后端的话要提供原则的接口,然后数据的聚合和裁剪可以完全通过中间的BFF解决。这在全南工程师里是特别流行的。

 

四、事件触发

接下来我们还是以业务需求为导向。比如业务需求,买家秀首先会发表视频、评论。对于后台服务需求我们需要对视图片进行缩放加水印然后 审核。同时呢,会对视频做各种格式的转换审核这种事情会比较复杂,如果这种架构,也就是多媒体文件的处理架构大致经历了以下的演变。

 

结构演变

图片12.png

比如说第一种最简单的也是最传统的。就是发表的图片,或者这个视频直接上传到服务器由服务器处理完成,然后保存在服务器。第二种更基本,传统,非常弱就是引入一些serverless存储产品,比如oss还有流量加速cdn,然后把图片或视频上传到服务器,服务器直转给oss同时发一个消息告诉另外服务器这个服务器可能CPU能力比较强,算力比较强的接收这个消息oss视频进行转码,或者加水印处理完毕,再保存回oss。最后显示的时候是通过CDN加速的,可以理解成微服务的服务架构。然后我们进行下一步,进一步提升记忆事件触发的serverless架构。也就是用户直接直传这个视频到对象存储,对象存储直接利用fast和事件源的集成能力直接触发函数的执行函数的逻辑就是对视频进行转码加水印。或者说调用第三方的审核服务。之后把处理后的视频保存回OSSOSS通过Cdn加速到客户端显示。这样我们可以看一下这三种架构,可能会感觉到serverless架构的好处

图片13.png

其实我们可以想一下serverless架构解决了哪些问题

第一个问题就是如何处理海量文件,走单台服务器空间有限,购买更多的服务器去做文件服务器第二个是如何扩展WEB服务器web web这个应用服务器是不是适合做CPU密集型任务第三个是如何解决上场的高可用问题比如说slb是有带宽的,就像oss,她可能做对象存储产品的话,可能对上传的带宽,上行带宽。还有显示的时候,这个下线带宽高可用,或者说是对于你上传视频,忽然来了一大波用户上传这个视频,对忽然一下要很多计算资源的时候,你怎么保证这个计算资源的弹性包可用。或者说怎么去自己去管理消息队列的弹性,其实这些都是问题如果你采用serverless架构的话,对于刚才那些问题,都能很好的解决,就是我们可以看到随着serverless架构的演进,开发人员计较他的业务价值,就是说买家秀需要把这个文件处理缩略图,打水印视频转码,审核其他的高可用的显示流量防控存储空间的扩容我都不需要管。这样也验证新范式里面的交付速度也是会大大提升的。当然我们就进行架构的延伸,对于这个架构的延伸,比如说消息的服务。对消息主题他可以直接同步和异步触发这个函数你可以理解成fast这种受类产品和很多其他的银产品天然进行了集成。

有一种叫pub sub模式,也就是这个服务发送一个消息就直接触发一个函数,然后把这个消息给消费执行自定义的处理。

第二种是说是拉的模式,比如我有的服务把日志写到日志服务,我需要对这个日志进行ETL处理我们也可以这种有序拉起。还有一种thousand能力,比如说我对表格存储的变更其实我是希望有一些订阅机制的,比如函数去做了些处理,比如说这几张简单例子,我写了个数据库,写了一个东西,我可能是需要有一些变更处理。我们可以看到天然的这个serverless产品和其他云服务的集成能力,可以让我们在写软件的时候使这种pub sub世界流的这种模式可以简化我们的编程。因为之前的pub和sub中间的连接枢纽都是开发者自己去负责的,但servverless架构省略了让生产者发送事件维护连接枢纽通知用户职责。只需要关注这个消费者的逻辑就好了,这就是serverless的价值。

 

五、总结

第一个就是serverless期望,我们就是专注业务的,专注业务的逻辑价值也确实能帮助我们更好的专注业务逻辑。

第二使用solid架构的话,可以覆盖很多场景,这里只是介绍了下,就是说静态站点,一个动态站点就web前后端,然后微服务事件触发等几个经典场景的架构,其实它可以扩展的更多,大家可以发挥去想想,最后希望大家接下来先来想一想,想想过去做过的务系统有哪些事情可以是完全交给别人去完成,比如说是云厂商,或者说是其他sa as服务。

而不是所有事情自己一个人去扛,首先就是刚刚就是回到那个时候的原生心智,就第一条就是我的业务是什么,就是你想一下,你让你去专注自己的一个业务其他的,比如说安全,扩容安全升级补丁,这种事情是不是可以交给专业的云厂商去做

就像这个冰川一样就是说可能这个东西事情是很庞大的,可能对你的来说,你看到的业务价值只有这么一点点,但是可能很多事情还希望是由serverless这种产品体系架构去承担更多的责任。是让用户更快去创建更好的应用。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
1月前
|
存储 运维 监控
Elasticsearch Serverless 高性价比智能日志分析关键技术解读
本文解析了Elasticsearch Serverless在智能日志分析领域的关键技术、优势及应用价值。
Elasticsearch Serverless 高性价比智能日志分析关键技术解读
|
19天前
|
监控 安全 Serverless
"揭秘D2终端大会热点技术:Serverless架构最佳实践全解析,让你的开发效率翻倍,迈向技术新高峰!"
【10月更文挑战第23天】D2终端大会汇聚了众多前沿技术,其中Serverless架构备受瞩目。它让开发者无需关注服务器管理,专注于业务逻辑,提高开发效率。本文介绍了选择合适平台、设计合理函数架构、优化性能及安全监控的最佳实践,助力开发者充分挖掘Serverless潜力,推动技术发展。
41 1
|
1月前
|
缓存 前端开发 Serverless
前端技术新趋势:从PWA到Serverless架构
【10月更文挑战第1天】前端技术新趋势:从PWA到Serverless架构
47 3
|
3月前
|
运维 Cloud Native 开发者
云原生技术演进:从微服务到无服务器的旅程
【8月更文挑战第20天】在数字化时代的浪潮中,云原生技术如同一艘航船,承载着企业转型的梦想与挑战。本文将深入探讨云原生技术的发展路径,从微服务的兴起到无服务器架构的革新,揭示这一技术演进背后的逻辑与动力。通过分析云原生技术的优势、面临的挑战以及未来的发展趋势,我们将描绘出一幅云原生技术演进的宏伟蓝图。
|
3月前
|
Cloud Native Serverless 云计算
云原生时代的技术演进:从微服务到Serverless
在数字化转型的浪潮中,云原生技术正成为推动企业IT架构现代化的重要力量。本文将探讨云原生技术的关键组成部分—微服务与Serverless架构—如何助力企业实现敏捷开发和高效运维。通过深入分析这两种架构模式的优势与挑战,我们旨在为读者揭示云原生环境下的最佳实践和未来发展趋势。
|
3月前
|
机器学习/深度学习 监控 Serverless
Serverless 应用的监控与调试问题之Flink在内部使用的未来规划,以及接下来有什么打算贡献社区的创新技术
Serverless 应用的监控与调试问题之Flink在内部使用的未来规划,以及接下来有什么打算贡献社区的创新技术
|
3月前
|
Cloud Native 安全 云计算
云原生技术的未来:探索服务网格和无服务器架构
随着企业数字化转型的深入,云计算已成为推动业务创新的核心力量。本文将深入探讨云原生技术的最新发展趋势,重点分析服务网格和无服务器架构如何重塑云计算的未来。通过实际案例和技术解析,揭示这些前沿技术如何解决现代应用部署的复杂性,提高系统的可伸缩性和弹性。文章旨在为读者提供云原生领域的深度见解,并激发对云技术未来发展的思考。
94 0
|
2月前
|
人工智能 自然语言处理 Serverless
阿里云函数计算 x NVIDIA 加速企业 AI 应用落地
阿里云函数计算与 NVIDIA TensorRT/TensorRT-LLM 展开合作,通过结合阿里云的无缝计算体验和 NVIDIA 的高性能推理库,开发者能够以更低的成本、更高的效率完成复杂的 AI 任务,加速技术落地和应用创新。
149 13
|
3月前
|
Serverless API 异构计算
函数计算产品使用问题之修改SD模版应用的运行环境
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3月前
|
运维 Serverless 网络安全
函数计算产品使用问题之通过仓库导入应用时无法配置域名外网访问,该如何排查
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。