首页 > 其他分享 >Serverless无服务应用架构纵横谈2:边缘计算激战正酣

Serverless无服务应用架构纵横谈2:边缘计算激战正酣

时间:2024-07-14 22:21:46浏览次数:15  
标签:Serverless WebAssembly 正酣 CDN 边缘 Edge 纵横谈 计算

 

Serverless无服务应用架构纵横谈2

 

前言

6年前,我写了一篇《Serverless无服务应用架构纵横谈》。

文中说到无论是公有云FaaS还是私有云FaaS,都不是云计算的未来。

因为无论是Kubernetes还是PHP、Python、Node这些传统技术栈都太重了。

那么,6年来,Serverless又有了哪些变化,是否有了转机?

 

边缘战史

 

内容分发网络:EdgeComputing1.0

从历史看,内容分发网络CDN发生在1990年代末和2000年代初,当时Internet的使用和网站正经历爆炸性的增长。

但随着用户的增多和地域的分散,页面加载时间成为网站提供商关注的焦点,网站运营商开始痴迷优化页面加载时间。

在这种背景之下,很多公司开始涌现,于是CDN行业诞生了。从网络拓扑上看,CDN正位于互联网的边缘,边缘大战从此开启。

 

边缘Serverless:EdgeComputing2.0

2017年,亚马逊云科技的CDN服务CloudFront推出了Lambda@Edge,允许在全球范围内的CloudFront边缘位置执行Lambda函数。

在2008年创立时,CloudFront在全球范围内仅有14个边缘位置。如今,CloudFront在全球50个国家的100多个城市和都市圈部署了超过600个边缘位置。

正是Lambda@Edge将Serverless与Edge computing结合,引领了Serverless前进的方向。

 

彼时的Lambda@Edge,还没有王者之气,因为它使用的还是传统的Node技术栈。

这使得它无论是空间占用,启动速度,还是运行速度,都是十分低下的,不过边缘计算带来的好处,已经显露无疑。

无论位于全球何地访问网站,延迟时间都大幅减少。这给不少站点带来了大量流量。Lambda@Edge慢慢开始火爆。

 

2018 年,知名的CDN厂商Cloudflare 发布了 Cloudflare Workers (CFW)。这是一个基于 Chromium V8引擎的 FaaS 平台。Cloudflare Workers将冷启动时间减少了100倍,进入到毫秒阶段。并将内存使用量减少了10倍,从而可以更有效地利用硬件资源。

正是Cloudflare Workers的出色表现,将Serverless的长处充分展示出来,从而迎来了Serverless的迅猛增长,而Cloudflare也成功从CDN厂商转型为边缘云计算的头部玩家。

  

边缘云原生:EdgeComputing3.0

2020年,一家于2011年3月才成立的CDN厂商Fastly, 内测了其边缘计算产品Compute@Edge,有约 60 个客户参与 Beta 测试,并在 2021 年正式推向市场。

Fastly没有依赖现有技术来进行无服务器计算,而是决定全心投入WebAssembly,并构建了自己的Lucet编译器和运行时,对性能、安全性和紧凑性进行了优化。

WebAssembly 的前身是 Mozilla 2010年 创建的 Emscripten 项目。2018 年 7 月 WebAssembly 1.0 草案正式发布,在 2019 年 12 月正式成为 W3C 国际标准,成为与 HTML、CSS 和 JavaScript 并列的第四个前端技术。

Fastly冷启动时间完全进入微秒级别--官方宣称为35微秒。这至少比V8引擎快100倍,后者需要3-5毫秒才能启动(3,000到5,000微秒)。同样,由于Lucet仅包含运行已编译的汇编代码所需的代码模块,因此它只需要几千字节的内存。这大约是V8引擎使用的3MB的千分之一。

Fastly公司开源了他们的 Lucet 项目。而这个项目最终孵化了wasmtime。

 

 

2017至2021年,4年时间,经过两次指数级性能提升,Serverless启动从秒级进入到微秒级。不仅制造了两家现象级厂商,也彻底激活了Serverless市场。

 

而在2019 年,Docker 创始人 Solomon Hykes 发布了一条推文,他说如果 2008 年就诞生 WebAssembly 和 WASI 的话,Docker 就没有必要诞生了。

这也就表明,最主流的容器技术已经从Docker和Kubernetes,转向了WebAssembly,它比原生容器更轻量,更容易控制,跨平台特性也更好。

事实上,WebAssembly不仅替代了Docker,还替代了Java跨平台的支柱地位,也是后者近年来占比大幅退步的根本原因。

 

 

边缘战士

 

平台厂商

CNCF(云原生计算基金会)

CNCF 成立于 2015 年 12 月,它是 Linux 基金会的一部分。在成立之初,CNCF 得到了 Google 和 SoundCloud 的支持,这两家公司分别捐赠了著名的 Kubernetes 以及 Prometheus,在当时,一并作为会员加入 CNCF 的企业还有:Cisco、CoreOS、Docker、Google、华为、IBM、Intel 和 Redhat 等。

从成立时间看,彼时正在流行Kubernetes ;从成员看,都是传统云计算的大型基础软硬件厂商;从内容看,CNCF定义了云原生:容器化、微服务、可编排。

从这些可以看出,云原生就是将计算机云看成一台实体电脑,抹平硬件和操作系统的差异,并方便运行程序的基础软硬件设施。

CNCF的出身决定了它更强调治理,将WebAssembly做为Docker的替代品。

 

Bytecode Alliance(字节码联盟)

由 Mozilla、英特尔、RedHat 和 Fastly 公司宣布成立字节码联盟(Bytecode Alliance)。Bytecode Alliance 是一个推动 WebAssembly 标准化的组织,该组织正在推动标准化的 WASI(WebAssembly System Interface),使 WebAssembly 能够安全地访问文件、网络和内存等系统资源,让WebAssembly 运行环境从浏览器转向服务器。

BA的出身决定了,它更强调WebAssembly的多样性,在更多的领域发挥作用。

 

运行平台

主要有四大平台。

 

WasmEdge 

https://github.com/WasmEdge/WasmEdge

WasmEdge 可以说是目前最受关注的 WebAssembly 虚拟机实现,因为它不仅仅是 CNCF 推荐的 WASM 虚拟机,更是 Docker 内置的 WebAssembly 虚拟机。WasmEdge 是由美国的袁钧涛(Michael Juntao Yuan)发起,是由 CNCF 托管的云原生 WebAssembly runtime。它广泛应用于边缘计算、汽车、Jamstack、Serverless、SaaS、服务网格,乃至区块链应用。WasmEdge 可以进行 AOT (提前编译)编译器优化,是当今市场上最快的 WebAssembly runtime 之一。可以预计,随着 Docker Wasm 的普及,WasmEdge 将成为最流行的 WASM 虚拟机实现之一。

 

wasmtime

https://github.com/bytecodealliance/wasmtime

2022 年 9 月份,历经三年开发,Bytecode Alliance(字节码联盟)宣布 WebAssembly runtime —— Wasmtime 1.0 正式发布,并可用于生产环境。

wasmtime 使用 Rust 语言开发完成,并提供了 C/C++、Python、.NET、Go 等语言接口。

 

WAMR

https://github.com/WAVM/WAVM

wasm-micro-runtime 也简称为 WAMR,与 wasmtime 一样是隶属于 Bytecode Alliance 的开源 WebAssembly 引擎项目,适用于嵌入式平台、各类 IoT 设备、智能合约和云原生等场景。名字中的 micro 也正是它的特点之一: WAMR 的二进制产物很轻量,纯 AOT 配置的产物体积只有约 50KB,非常适合资源受限的宿主。

  

wasmer 

https://github.com/wasmerio/wasmer

Wasmer 是支持 WASI 和 Emscripten 的通用 WebAssembly 运行时,提供基于 WebAssembly 的超轻量级容器,专注于支持在任何平台上运行 WASM 代码,从桌面端到云端、以及 IoT 设备,并且能嵌入在任何编程语言中。

 

开发语言

绝大多数的编程语言,都已经支持WebAssembly。

 

Rust、C/C++、Zig这种直接编译输出的语言无需任何依赖;

  • 2016 年 Rust 1.14发布,开始支持 WASM

Kotlin、Swift、Go这种带有GC的语言需要运行时代码或者依赖Wasm-gc;

  • 2021 年,WebAssembly 开始支持 GC(垃圾回收器)
  • Kotlin 1.8.20 版本,包括一项名为“Kotlin/Wasm”的实验性功能,明确将 WebAssembly 设为编译目标。

.net与Java这种重运行时的语言需要托管运行时;

  • Blazor是一个使用 .NET框架和C#编程语言Razor语法构建Web应用程序的UI框架
  • 静态编译组合成wasm的代码。这些代码包括Mono C 运行时平台和开发者的.NET代码
  • TeaVM 现已支持将 Java 字节码编译成 WebAssembly

JavaScript、Python、Ruby这些脚本语言需要虚拟机运行程序;

  • JavaScript 用户,直接通过浏览器内置的 WebAssembly 模块,浏览器环境之外的 WASM +JS虚拟机
  • Ruby 3.2 也增加了基于 WASI 的 WebAssembly 支持。使得 CRuby 二进制内容可用于浏览器、以及 WASI 环境。
  • Python 3.11 对 wasm32-emscripten 和 wasm32-wasi 提供了支持,从而也实现了在浏览器执行 Python 的梦想。

凹语言,Moonbit这些为WebAssembly而生的语言最没有负担。

  • 2022年7月,国内 Gopher 也发起了针对 WebAssembly 平台的凹语言。
  • MoonBit 负责人张宏波称,MoonBit 编译器预计在 2024 年第二季度末达到 Beta 状态,到时将会正式公开。
 

边缘战场

 

云计算厂商

主流的云计算厂商还在传统的云计算模式中(支持Java、Python、Node.js、GO、C#等)。得益于技术提升,无服务成本正在大幅下降中。

Cloudflare、Fastly、Vercel、Netlify、Akamai、Limelight 等公司都支持通过其边缘运行时部署 WebAssembly 功能。

 

亚马逊云计算Amazon AWS

Amazon CloudFront 是一种内容分发网络 (CDN) 服务,旨在获得优异性能、安全性和开发人员便利性。

 

 

 

微软云计算Microsoft Azure

Azure Functions 为 C#、JavaScript、F#、Java 和 Python 等语言提供了不同级别的支持。Azure Functions 使用计划根据每秒资源使用和执行次数计费。消费计划定价包括每月免费授予的 1 百万个请求和每个订阅每月 400,000 GB-s 的资源消耗,包含在订阅中所有函数应用之间的即用即付定价中。Azure Functions 高级计划提供增强的性能,并根据高级功能消耗的 vCPU 和 GB 数量按秒计费。

 

阿里云Alibaba Cloud

函数计算(Function Compute)是一个事件驱动的全托管 Serverless 计算服务,您无需管理服务器等基础设施,只需编写代码并上传,函数计算会为您准备好计算资源,并以弹性、可靠的方式运行您的代码。 函数计算3.0全新发布,降价幅度最高达93%。

同时提供边缘容器:容器服务 Edge 版 ACK Edge

 

华为云Huawei Cloud

函数工作流(FunctionGraph)是一项基于事件驱动的函数托管计算服务。通过函数工作流,只需编写业务函数代码并设置运行的条件,无需配置和管理服务器等基础设施,函数以弹性、免运维、高可靠的方式运行。此外,按函数实际执行资源计费,不执行不产生费用。函数前100万次/月调用免费。

同时提供边缘容器:智能边缘平台 IEF(Intelligent EdgeFabric)

 

腾讯云Tencent Cloud

云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。您只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。云函数是实时文件处理和数据处理等场景下理想的计算平台。

新用户前三个月将获得更多用量的免费额度,第四个月开始不再享受免费额度,同时从第四个月开始,系统每月会自动发放基础套餐额度(调用次数50万次、资源使用量10万GBs、外网出流量2GB)并扣除基础套餐费用12.8元。

同时提供边缘容器:腾讯云边缘容器服务(Tencent Kuberentes Service for Edge)

 

Cloudflare Workers

Cloudflare 成立于 2009 年,是一家主流网站安全管理、云内容交付网络(CDN)厂商。

 

The Fastly Edge Cloud Platform 

 新锐CDN厂商 Fastly。开源了wasmtime

 

Vercel 

Vercel是一个新锐托管平台,主要用于托管、构建和部署静态网站和无服务应用程序,旗下产品有 Next.js。

  

Netlify Edge Functions 

Netlify是一个新锐托管平台,与Vercel非常相似。

 

Akamai EdgeWorkers

Akamai是主流的网站安全管理与CDN厂商,Cloudflare的主要对手。

 

Limelight Edgio Sites

Edgio是Limelight Networks在2022年收购Edgecast Networks之后成立的公司,也是主流的CDN厂商。

 

标签:Serverless,WebAssembly,正酣,CDN,边缘,Edge,纵横谈,计算
From: https://www.cnblogs.com/windfic/p/17914440.html

相关文章

  • 单体、分布式、微服务、Serverless及新兴部署模式分析
    在数字化时代,软件架构的选择对于企业的技术战略至关重要。从单体架构到Serverless,再到服务网格和服务化模型,每一种架构模式都反映了特定时期内技术发展和业务需求的特点。本文将对这些架构模式的优缺点进行讨论,供大家参考。部署方式的不断演进单体架构(MonolithicArchitect......
  • 【云原生技术】Serverless简介
    Serverless简介Serverless的定义Serverless的工作原理应用举例1.Web应用后端服务2.数据处理和分析3.IoT应用总结Serverless是一种云计算服务模型,它使开发者能够编写和部署功能单元(Functions)而无需管理底层的服务器资源。下面详细介绍Serverless的定义、工作原理......
  • Aws Serverless最佳实践
    序言我是一个超级爱无服务器技术的工程师!这次去了AWSSUMMIT2024,学到了超多新知识!特别是关于“无服务器开发的最佳实践”的内容特别有趣,想跟大家分享一下。什么是无服务器无服务器技术简直是神器,让你不用操心服务器和基础设施管理,应用程序就能轻松跑起来。它的魅力在于,无需......
  • 报名参课 | 解锁 Serverless+AI 新模式,拥有专属AIGC环境
    如今,Serverless被越来越多的企业所接受,并应用于业务实践中。科技的每一次进步都在更新着我们的工作模式,除了互联网企业最早“尝鲜”之外,传统企业也在探索大规模使用Serverless。越来越多人迈过了对Serverless技术的初级认知阶段,走向了落地实践。Serverless和AI大模型都是......
  • 云原生技术实践营 · 深圳站:Serverless + AI 专场开启报名!
    活动简介“云原生技术实践营·深圳站——Serverless+AI应用开发专场”是一场以Serverless为主题的技术活动,通过一个下午的时间增进对Serverless技术的理解,快速上手,活动受众以关注Serverless技术的开发者、企业决策人、云原生领域创业者为主,活动形式为演讲、动手实操......
  • 活动回顾丨飞天技术沙龙 Serverless + AI 专场(上海站)回顾 & PPT 下载
    5月31日“飞天技术沙龙Serverless+AI专场”上海站圆满落幕。活动受众以关注 Serverless技术的开发者、企业决策人、云原生领域创业者为主,活动形式为演讲、动手实操,让开发者通过一个下午的时间增进对Serverless技术的理解,快速上手Serverless,拥抱云计算新范式带来的......
  • Serverless部署应用并使用Cloudflare加速和支持HTTPS
    ServerlessServerless是一种云计算模型,它使开发人员能够构建和运行应用程序,而无需关心底层的服务器基础设施。在传统的应用程序开发中,开发人员需要管理服务器的配置、扩展和维护等任务。而在Serverless模型中,这些任务都由云服务提供商来处理,开发人员只需专注于编写应用程序的......
  • Serverless 使用阿里云OOS将http文件转存到对象存储
    背景介绍系统运维管理OOS系统运维管理OOS(CloudOpsOrchestrationService)提供了一个高度灵活和强大的解决方案,通过精巧地编排阿里云提供的OpenAPI,使得用户能够将分散的单个原子运维任务链接起来,形成复杂的运维场景和流程。这种方式不仅大幅提升了运维的效率,也极大地减少了人为错......
  • ICDE’24|中国企业首获最佳论文,详解PolarDB Serverless如何在0.5秒内实现跨机迁移
    以下文章来源于阿里云开发者作者陈浩、章颖强引言数据库领域顶会ICDE2024于5月13-17日在荷兰乌特勒支(Utrecht,Netherlands)举办。ICDE(TheInternationalConferenceonDataEngineering) 与VLDB、SIGMOD被公认为是国际数据管理领域三大顶级学术会议,此次在荷兰召开......
  • ACK Serverless主要特点
    阿里云容器服务ACK阿里云容器服务ACK(AlibabaCloudContainerServiceforKubernetes)是全球首批通过Kubernetes一致性认证的服务平台,提供高性能的容器应用管理服务,支持企业级Kubernetes容器化应用的生命周期管理,可以轻松高效地在云端运行Kubernetes容器化应用。ACK具有如下特点......