首页 > 其他分享 >使用 Amazon Lambda 进行无服务器计算:云架构中的一场革命

使用 Amazon Lambda 进行无服务器计算:云架构中的一场革命

时间:2023-08-28 23:44:52浏览次数:141  
标签:容器 架构 Amazon 冷启动 服务器 Lambda

引言

十年前,无服务器架构还像是痴人说梦。不再如此了! 有了 Amazon Lambda,我们现在可以建构和运行应用程序而不需要考虑服务器。云供应商会无缝地处理所有服务器的供应、扩展和管理。我们只需要关注代码。 这为云部署带来了前所未有的敏捷性、自动化和优化。但是,要发挥它的全部潜力需要对 Lambda 独特的架构和能力有扎实的掌握。这篇文章旨在通过实际示例、经验教训和以工程师视角深入内部工作原理来揭开它的魔力!

亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,点这里让它成为你的技术宝库!

 

什么是无服务器计算?

在深入探讨 Lambda 之前,让我们先厘清“无服务器“的真正含义。无服务器并不意味着完全没有服务器。物理服务器仍然为云基础设施提供支持。 关键的区别在于开发人员不需要直接供应或管理这些服务器。云供应商将基础设施复杂性抽象出来。我们的代码部署在短暂的容器中,这些容器是事件驱动的,会自动扩展,并且仅针对消耗的资源进行计费。 这种“无服务器,无运维“的模型将成本与使用量高度对齐,并加速了开发。传统的服务器、虚拟机和容器在许多工作负载中仍然发挥着其作用。但是 Lambda 在处理事件驱动和瞬态计算需求方面表现卓越。

Lambda 执行模型

Lambda执行模型与传统架构有根本不同。让我们来剖析一下底层发生的事情:

3-1. telemetry-api-concept-diagram.png

一些关键方面:

  • 无状态:每次执行都在单独的容器中进行。执行之间没有亲和关系。
  • 短暂:容器可以在毫秒内初始化和销毁。
  • 事件驱动:执行由配置的事件触发。
  • 可扩展: 根据队列深度动态添加和删除容器。
  • 无服务器:我们不管理容器基础设施。亚马逊云科技处理所有这些。 通过这种模型,Lambda 可以内在地处理许多并行请求并按需扩展。我们的代码只关注业务逻辑。 接下来我们看看 Lambda 执行中的生命周期事件。

Lambda 函数生命周期

当发生事件调用时,Lambda 会经历一个明确定义的生命周期:

3-2. Overview-Successful-Invokes.png

  • 冷启动:对于首次调用,Lambda 必须初始化一个容器。这会导致一些延迟。
  • 初始化和调用:代码被加载并执行。调用处理程序方法。
  • 关闭:一次执行完成后,容器停止。任何后续的执行都会重用热容器。 理解这种冷启动开销对于优化 Lambda 性能至关重要。我们看看下面如何做。

优化 Lambda 冷启动

没有什么比冷启动慢更让人痛苦的了。幸运的是,有一些经过验证的技术可以缓解这一问题:

  • 使用容器重用:设置非零超时,以便容器在调用之间保持存在。
  • 优化部署程序包大小:删除不需要的依赖项和工件以最小化下载时间。
  • 选择高性能运行时:Go、Python 和 NodeJS 初始化开销很低。
  • 预取容器:使用预配置并发性保持容器初始化。
  • 优化IAM角色:使用 Amazon SSO 等服务减少角色承担的延迟。

做好冷启动是一门艺术和科学!有了上述技巧,我们可以轻松实现亚秒级的冷启动。 现在让我们转而看一些Lambda实际应用的示例。

Lambda 使用案例

凭借 Lambda 灵活的执行模型,可能性是无穷的。下面是一些喜欢的 Lambda 使用方式:

数据处理

  • 流处理用于实时分析
  • 批量数据转换
  • 生成聚合报告

集成和消息传递

  • 通过 SQS 触发用于分布式工作负载
  • 对 SNS 通知做出反应
  • 服务之间的集成粘合剂

Web 应用程序

  • 运行无服务器后端
  • 提供 API 网关支持
  • 预处理 HTTP 请求

基础设施自动化

  • 自定义自动化工作流程
  • 程序化资源管理
  • 自我修复能力

等等!

Lambda 仅由我们的创造力所限。

为了更具体,我们接下来演练一个真实的无服务器 Web 应用程序。

构建一个无服务器 Web 应用程序

我们来看看 Lambda 如何支持可扩展的无服务器 Web 架构: 3-3. product-page-diagram_Lambda-MobileBackends_option2.00f6421e67e8d6bdbc59f3a2db6fa7d7f8508073.png

  • API网关: Lambda函数为API后端提供支持。
  • 异步工作: SQS和SNS集成Lambda实现扩展工作负载。
  • 静态资产: S3托管前端静态资产,如HTML/CSS/JS。 通过这种设置,我们可以获得强大的可扩展性、出色的性价比和低管理开销。Lambda服务处理基础设施的重力劳动,如可用性、冗余和扩展。我们只关注核心产品交付! 当然,无服务器应用程序也有其自己的细微差别。明天的文章将分享一些实际的优化、调试、CI/CD和其他运维方面的技巧。

总结思考

我们只触及了 Lambda 和无服务器的改变游戏规则的潜力。在底层, Lambda 通过无状态、短暂和事件驱动的执行颠覆了基础设施管理。 这为我们的云架构带来了前所未有的敏捷性、自动化和效率。请记住,大权带来大责任! Lambda 仍需要经过深思熟虑的设计和运维才能平稳运行。 希望你喜欢这个 Amazon Lambda 快速概览之旅。请告诉我哪些方面让你产生共鸣,或者你想要了解的任何其他 Lambda 主题。再会,继续构建那些无服务器解决方案!

参考资料

文章来源:https://dev.amazoncloud.cn/column/article/64e5cea684d23218430681f1?sc_medium=regulartraffic&sc_campaign=crossplatform&sc_channel=bokey

标签:容器,架构,Amazon,冷启动,服务器,Lambda
From: https://www.cnblogs.com/AmazonwebService/p/17663684.html

相关文章

  • 戴尔13G-14G 服务器sn号修改方法
    第一种方法:跳线帽跳接ActionPlanDescr: UpdateServiceTagforDellPowerEdge–13thGenerationandUpToolsRequired:StandardToolboxTimeneededforActivity: 20min.Downtimeneeded: YESProcedure:Withsystempoweredoffaccessthesystemboardandloca......
  • MQTT服务器的搭建与MQTT客户端的使用
    一、MQTT服务器(emqx)搭建1、下载MQTTBroker官方下载地址:emqx-5.0.4-windows-amd64.tar.gz。百度网盘地址emqx-windows-4.3.10.zip:链接:https://pan.baidu.com/s/1XaPkWTI_AtYmWVuMD8d5HQ?pwd=n99m提取码:n99m其他版本选择:https://www.emqx.io/downloads?os=Windows。 2.不用......
  • 阿贝云 - 永久免费云服务器
    党没钱,推荐什么云服务商?我选择阿贝云阿贝云是一家拥有《中华人民共和国增值电信业务经营许可证》的正规的云服务商开放了免费虚拟主机,免费云服务器等免费内容官网阿贝云【ABY】领先的高防服务器、云服务器、虚拟主机、免费空间、高防空间服务商!配置1h1g中规中矩,带宽5M数据盘......
  • websphere服务器对请求的解码配置
    tomcat、jboss服务器处理uri的解码方式是可配置的,在server.xml,具体路径不详述了,有一个uriencoding=“utf-8”,用起来很方便,但是websphere死活找不到类似的配置。 经查阅资料,weblogic、websphere服务器这种重量级的j2ee服务器,weblogic是默认就是用utf-8来处理的请求的,websphere如果......
  • 服务器数据恢复-IBM服务器reiserfs文件系统数据恢复案例
    服务器数据恢复环境:一台IBMX系列服务器,4块SAS硬盘组建一组RAID5阵列,采用的reiserfs文件系统。服务器操作系统分区结构:boot分区+LVM卷+swap分区(按照前后顺序)。LVM卷中直接划分了一个reiserfs文件系统,作为根分区。服务器故障:服务器在运行过程中由于未知原因瘫痪,管理员将服务器重......
  • SVN服务器架设
    如何快速建立Subversion服务器,并且在项目中使用起来,这是大家最关心的问题,与CVS相比,Subversion有更多的选择,也更加的容易,几个命令就可以建立一套服务器环境,可以使用起来,这里配套有动画教程。本文是使用Subversion最快速的教程,在最短的时间里帮助您建立起一套......
  • Monibucav4(开源流媒体服务器)在Windows上搭建rtmp服务器并实现拉取rtsp视频流以及转
    场景开源流媒体服务器ZLMediaKit在Windows上运行、配置、按需拉流拉取摄像头rtsp视频流)并使用http-flv网页播放:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/130136245上面讲了ZLMediaKit的使用流程。下面介绍另一种开源流媒体服务器。Monibucahttps://m7s.......
  • Linux 服务器各项性能检查
    1、网络宽带测试nload-mIncoming进入网卡的流量Outgoing从网卡流出的流量Curr当前流量Avg平均流量Min/Max最大/最小流量Ttl流量总和 ......
  • 不会用这个工具,你的Linux服务器就是个摆设!
    大家好,我的网工朋友在运维这一块,没有工具可谓是寸步难行。一个好的Linux运维,为了提升自己的工作效率,免不得会找一些适合自己业务需求的工具,用起来工作效率高,工作幸福指数直线上升。今天整理了几个对运维来说极其好用的,也是业界公认的好用工具,如果你一个都不曾用过,就out啦!今日文章阅......
  • 基于亚马逊云科技无服务器服务快速搭建电商平台——性能篇
    使用Serverless构建独立站的优势在传统架构模式下,如果需要进行电商大促需要提前预置计算资源以支撑高并发访问,会造成计算资源浪费并且增加运维工作量。本文介绍一种新的部署方式,将WordPress和WooCommerce部署在AmazonLambda中。Lambda是无服务器的计算方式,无需预置资源......