为什么 Serverless 将推动边缘计算的革命_云原生Serverless的博客-程序员信息网

技术标签: 边缘计算  serverless  

为什么 Serverless 将推动边缘计算的革命

Serverless 不仅在技术上也在概念上改变了我们构建应用的方式,这种变更已经被边缘计算领域所采用。

1. 在边缘

边缘计算是一种计算和存储更接近用户的场景。目前,大概有 10% 的企业数据是在传统数据中心外部产生和处理的,这个规模预计在 2025 年将达到 75%。

内容分发网络(CDN)代表了边缘计算的第一波浪潮。使用 CDN,用户所需的数据缓存在距离用户更近的位置,从而减少了回源时的传输时间,提高了性能。随着 CDN 和虚拟化技术变得越来越成熟,计算和存储已经逐渐移出了云数据中心的范围。这使得计算资源可以在边缘位置作为单独的服务出现。

边缘计算的典型应用是实时和即时数据处理。与强调 “大数据”的云计算不同,当转移到边缘时,更多时候关注的是“即时数据”。

边缘计算的核心在于性能优化:即减少等待时间,流量,带宽,地理距离,能源和功率。

边缘计算带来的延迟减少可以使物联网、人工智能和机器学习中的某些应用更加容易实现。例如:自动化设备的实时指令、远程手术和面部识别等都是在一定程度上利用边缘计算的新兴技术。

5G 的发展,更快的连接性和 5G 设备的普及进一步推动了边缘计算的兴起。边缘计算通过使计算更接近用户来减少延迟,而 5G 则可用于减少通信过程的延迟。 5G 和 边缘计算一起可以将延迟降低到以前无法达到的水平,从而可以催生新一代的应用场景。

为什么是 Serverless

Serverless 能让我们构建应用时无需考虑底层服务器。Serverless 并不是真的不需要服务器,从根本上来讲,这是一项旨在通过降低总成本(Total Cost of Ownership ,TCO)来提高敏捷性的架构革命。

简言之,Serverless 是一种抽象,通过对底层计算机的细节进行抽象,封装成一个模型,在模型中,只需要将程序的核心代码提供给服务提供商(如 AWS),就可以根据不同的事件来进行运行并响应。

Lambda 是最广为人知的 Serverless ,即 AWS 提供的 FaaS 平台。 Lambda 改变了我们构建应用程序的方式,Lambda 的函数触发器也促进了事件驱动架构的发展。

技术总是周期性的

以 Web 应用程序为例。最初,很多逻辑都存在于服务器端。当加载网页时,框架和模板引擎将使用数据库中的相关数据填充页面的动态部分。然后将生成的渲染 HTML 页面发送并显示在客户端。随着前端越来越复杂的技术演进中,见证了诸如 React 和 Vue 之类的 SPA 框架的出现,并且越来越多的业务逻辑移至客户端(CSR)。随着时间的推移,负面影响逐渐体现出来:低端用户的体验变得很慢,并且严重影响到网站 SEO。后来,像 React 这样的框架“重塑了” SSR(服务器端渲染),我们又看到了向服务器端渲染(SSR)的转变。

我们构建整个应用程序的方式经历了类似的周期。最初的计算发生在大型机上,然后随着功能更强大的 PC 的出现而转移到了客户端,现在我们又看到了向中心云计算中心的转移。

我们将经历另一个循环,我们将移到边缘

真实世界的边缘计算

智能摄像机,IoT 设备,医疗设备和 CDN(如上所述)都是边缘计算的用例。我们正在将数据处理移到更靠近生成数据的地方。在电视直播中,可以通过模型来识别跌倒的人员(即时跌倒检测)-识别动作几乎可以零延迟。在工业生产中,零延时的优势可以使得机器立刻停机。

边缘计算并非没有风险。物联网在所有行业中的迅速采用,“智能”设备的安全性问题也普遍存在。边缘计算服务的可伸缩性可以缓解一些安全威胁,例如 DDoS,但核心计算模型必须在信任度较低(或者零信任)环境中运行。

Serverless 边缘 or 去中心化?

如上所述,Serverless 就是关于抽象的。开发人员可以编写应用程序代码,而不必关注基础设施的详细信息。 FaaS 解决方案的这种抽象,按需付费的定价模型和按需使用的执行模型具有与边缘计算互补的概念。

在边缘计算场景:

  • 我们不必控制硬件,这是抽象的关键

  • 这是一个不受信任的环境-因此我们需要严格的沙箱环境

  • 我们通常会大规模处理不可预测的实时数据,因此我们需要一个高度可扩展的弹性模型来进行计算

边缘计算场景下使用的计算机通常配置比较低,因此,涉及到CPU,内存,磁盘时,应用执行效率必须要高,并且使用较低的内存,磁盘。

这些都是 Serverless 所面临的挑战,也是 Serverless 的优势,所以说 Serverless 是边缘计算的补充也不为过。

自推出以来,Serverless 现在已经逐渐成熟。无论是在供应商方面还是在开源领域,用户体验及工具都得到了极大的改进。与此同时,开发者已经适应了在 Serverless 环境中工作的最佳实践和思维模式。所有这些进步将推动边缘计算的兴起。

开发人员已经习惯于在无状态抽象运行时环境中进行编码,以及与 Serverless 数据库和其他云原生设计模式的结合。从 Serverless 计算模型到边缘计算模型的模式转变是微乎其微的,而从传统的 Server 甚至 Kubernetes 环境转变到边缘计算是一个更大的飞跃,无论是思维方式还是工具方面。

Lambda @ Edge ,边缘计算的 Serverless

Lambda @ Edge 实际上并不属于AWS的 Serverlss 团队。实际上,它是 CloudFront(CDN)产品。 Lambda @ Edge 通过在 CDN 层中运行,计算逻辑更接近用户。它与传统 Lambda 非常相似,我们无需管理基础架构,只需按需付费。

笔者经常使用 Lambda @ Edge 来做一些安全检查、路由和上下文特定的数据修改、基于 React 的 SSR、经典的图像转换用例、甚至用于一些基本的 A/B测试。

借助 Lambda @ Edge,代码必须首先部署在US-East-1,然后再分发到全球 100 多个数据中心。 将代码分发到 100 个位置并在 CDN 层中运行并不是很复杂,与部署 Lambda 函数几乎相同,这要归功于 Serverless 社区的多年发展。

Serverless.yml 定义了一个单独的 [email protected] 函数

使用 Serverless 框架,我们可以定义我们的功能:声明由 CloudFront 事件触发的,然后运行一个 Serverless 部署命令。

代码本身可以用 PythonJavaScript 编写,无需处理任何手动引导或虚拟化问题。例如,我们可以用几行代码逐步将流量从一个 S3(AWS 存储服务)bucket 迁移到另一个S3 bucket。

Lambda 开发者都熟悉的 handler 函数

Lambda @Edge 使用起来与 Lambda 一致, 唯一的区别是,它需要首先部署到 US-East-1,并且在执行时间,CPU 和内存上相比 Lambda 有更多的限制。此外,只能使用JSPython(没有其他受支持的语言或“自定义运行时”选项),并且由于分发时间的缘故,部署/回滚会花费更长的时间。

这是一个很好的例子,说明了 Serverless 的执行模型如何与边缘计算的执行环境互补。

Firecracker 正在解决 Serverless 在边缘计算场景面临的许多挑战

AWS 开发了 Firecracker 作为 LambdaFargate (AWS 的计算引擎)的底层虚拟化组件。Firecracker 是一种虚拟化技术,可让工作负载在 microVM 中执行。 microVM 是轻量级 VM(虚拟机),可在保持性能和灵活性的同时提供安全性和隔离性。

通过极小的设计可以实现安全性和低启动时间。这样可确保内存占用量保持较低,运行速度快且受攻击面最小。

简而言之,Firecracker 带来了更高的租户密度(每台计算机的 microVM 数量),更高的安全性,减少了内存需求并缩短了启动时间。这可以通过利用 Linux KVM(内核级别的虚拟化-内核充当虚拟机管理程序)来实现,它使用 Rust 作为高性能的实现语言,实现了特定的最小功能集的 API。

Firecracker 旨在改善资源受限环境中的启动延迟,以实现 Serverless FaaS(Lambda)的功能。在低资源环境中对低延迟、强安全隔离和多租户的需求与边缘计算的需求有很大的重叠。在小型资源机器上的低信任度多租户环境中,程序需要快速启动。

那么 Lambda @ Edge 基于 Firecracker 运行代码也就顺理成章了。可以说是 Serverless 技术促进边缘计算发展的一个典型特性。

新兴边缘计算服务

除了 Lambda @ Edge,还有许多其他 FaaS 边缘计算平台。 FastlyCloudflare Workers 是另外两个典型的边缘计算平台。

借助 Cloudflare Workers,可以在 V8 隔离的全球网络上获得 Serverless 执行环境。该代码在 Cloudflare 的网络上运行(目前几乎所有互联网用户都在几毫秒内),冷启动时间不到1毫秒。支持一系列运行时(JS,Rust,C和C ++),并支持访问 Cloudflare 的边缘 K-V 存储。

对于基于边缘的应用来说,存储是一个有趣的挑战。 Cloudflare 最近与 Fauna(一种由 API 驱动的 Serverless 事务数据库)之类的 Serverless 数据库提供商合作,以改善边缘存储。基于此,边缘计算可以与“边缘优先”数据库结合使用。边缘应用程序通常需要计算和状态,基于 API 的 Serverless 数据库正好可以填补边缘存储的空白。

Fastly 是另一家提供边缘计算的厂家,它提供了 [email protected] 平台。作为 CDN 提供商,Fastly 在设计时考虑到边缘计算功能,它提供了在用户附近运行代码的功能以及 CDN 的常规功能。与 Cloudflare Workers 相似,FastlyCompute @ Edge 允许在 CDN 层上运行计算逻辑-为现有和新应用程序带来图像优化、负载平衡、安全性增强和地理路由等功能。

Serverless 将成为边缘计算的推动者

我们已经看到,边缘计算服务已经在利用 Serverless 领域的技术优势。

Serverless 开发模式下,开发人员以无状态、按使用付费、事件驱动和分布式的思维方式进行实践。这种模式的转变对于启用边缘计算也将是关键。除此之外,我们为 Serverless 开发的许多技术和最佳实践将构成边缘计算的基础。

Serverless 改变了我们构建应用程序的方式,Serverless 将继续推动边缘计算的革命。

 

 

请关注公众号 Knative 了解更多 Serverless & Knative 资讯

Knative

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/power886/article/details/115921874

智能推荐

阿里HBase的GC优化实践_weixin_33842328的博客-程序员信息网

GC一直是Java应用中讨论的一个热门话题,尤其在像HBase这样的大型在线存储系统中,大堆下(百GB)的GC停顿延迟产生的在线实时影响,成为内核和应用开发者的一大痛点。过去的一年里,我们准备在Ali-HBase上突破这个被普遍认知的痛点,为此进行了深度分析及全面创新的工作,获得了一些比较好的效果。以蚂蚁风控场景为例,HBase的线上young GC时间从120ms减少到15ms,结合阿里巴巴JD...

使用idea可视化merge_人生海海~的博客-程序员信息网_idea merge窗口

0、更新本地master分支代码为最新代码然后合并冲突项就ok了

<mvc:annotation-driven/>与<mvc:default-servlet-handler/>之间的一个问题_开膛ShouJack的博客-程序员信息网

在做项目的时候,我希望静态资源由WEB服务器默认的Servlet来处理,所以我在配置文件中添加了如下的语句:           但是我再次运行项目,并访问资源的时候,发现访问@RequestMapping("/path1/path2")都不能访问了,之前没有添加的时候是能够访问的。解决方案是,在配置文件中再添加一句代码:           这样做的原因是:    当

关联分析/频繁项集挖掘:Apriori算法_iwtbs_kevin的博客-程序员信息网

简介Apriori是一种流行的算法,用于在关联规则学习中提取频繁项集。Apriori算法被设计用于对包含交易的数据库进行操作,例如商店客户的购买。如果项目集满足用户指定的支持阈值,则该项目集被视为“频繁”。例如,如果支持度阈值设置为0.5(50%),则频繁项目集被定义为在数据库中所有事务的至少50%中一起发生的项目集合定义支持度(support):support(A=&gt;B) = P(A...

自然语言处理学习笔记_weixin_42472311的博客-程序员信息网

Python官网https://www.python.org/百度百科:自然语言处理https://baike.baidu.com/item/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86知乎:自然语言处理怎么最快入门?https://www.zhihu.com/question/19895141中科院计算所自然语言处理研究组简介htt...

随便推点

技术男编写炒股软件诈骗!博士生被骗23万!_程序员大咖的博客-程序员信息网

点击上方“程序员大咖”,选择“置顶公众号”关键时刻,第一时间送达!据中国新闻网报道,今年 3 月,在嘉兴工作的博士生王某接触一款炒股软件,该软件其实是刘某自学软件开发后自创的。软件上包括买卖信息、逼真的网页设计以及用户留言信息相当逼真,让王某落入骗子的陷阱。据介绍,博士生王某在嘉兴找到一份收入可观的工作,在今年 3 月想通过理财来使资金增值,通过网络平台遇到了当时身份是一家炒股软件公司“客服”的刘

Linux_0_Make_于小祥的博客-程序员信息网

* make是一种控制编译或者重复编译软件的工具。* make可以自动管理软件的编译内容、方式和时机,从而使程序员把更多的经理集中在编写代码上。* make是怎么完成工作的呢? * make是一个命令文件。* makefile是一个文本形式的脚本文件,其中包含一些规则告诉make编译那些文件,怎么样编译以及在什么条件下编译。 * makefile规则遵循以下通用形式 targ

时间序列分析之ARIMA模型预测__R篇_知之可否的博客-程序员信息网

转自http://www.cnblogs.com/bicoffee/p/3838049.html之前一直用SAS做ARIMA模型预测,今天尝试用了一下R,发现灵活度更高,结果输出也更直观。现在记录一下如何用R分析ARIMA模型。 1. 处理数据1.1. 导入forecast包forecast包是一个封装的ARIMA统计软件包,在默认情况下,R没有预装fore

【程序员必修数学课】->基础思想篇->递归(上)->泛化数学归纳__为光的博客-程序员信息网

递归前言如何在限定总和的条件下求加和?迭代法递归法前言在前几篇文章中我不断引用更改了国际象棋发明人被国王赏麦子的故事,这篇文章我还需要再借一下这两个人。舍罕王和宰相达依尔来到了现代,这次舍罕王聪明了,他对宰相说,“这次我不用麦子赏你了,我直接给你发钱。另外,我也不用棋盘了,我直接给你一大笔固定数额的钱。”宰相思考了一下,回答道:“没问题,陛下,就按照您的意愿。不过,我有一个小小的要求。能...

The Singularity Is Near(奇点临近)阅读笔记----六大纪元_云深林深的博客-程序员信息网

奇点( Singularity)表示独特的时间以及种种奇异的影响。数学家用这个词表示一个超越了任何限制的值,如除以一个越来越趋近于零的数,其结果将激增。如y=1/x,随着x的值趋近于零,其对应的函数(Y)的值将激增。 这样的数学函数实际上从未到过无限的值,因为除以零是数学上的“未定义”(无法计算的)。但是,因为除数x趋近于零,y的值超过任何的限制(趋于无穷大)。 在天体物理学中,如果一个大质量恒

【前端】easyUI可编辑行(年-月格式)日期输入控件的实现_扣钉的博客-程序员信息网

背景:项目中,用datagrid的可编辑行实现对业务信息的录入其中包括日期字段的录入在以往的开发中常常见到的是这种(easyUI日期输入框):&amp;lt;input class=&quot;easyui-datebox&quot;id=&quot;xxx&quot; name=&quot;xxx&quot; required=&quot;true&quot;/&amp;gt;既非可编辑行的日期控件和这种(datagrid日期输入框):&amp;lt...

推荐文章

热门文章

相关标签