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

这篇具有很好参考价值的文章主要介绍了使用 Amazon Lambda 进行无服务器计算:云架构中的一场革命。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言

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

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

什么是无服务器计算?

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

Lambda 执行模型

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

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

一些关键方面:

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

Lambda 函数生命周期

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

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

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

优化 Lambda 冷启动

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

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

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

Lambda 使用案例

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

数据处理

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

集成和消息传递

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

Web 应用程序

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

基础设施自动化

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

等等!

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

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

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

我们来看看 Lambda 如何支持可扩展的无服务器 Web 架构: 

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

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

总结思考

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

参考资料

  • Amazon Lambda 开发人员指南
  • Amazon Lambda 最佳实践
  • 使用 Amazon Lambda 的无服务器架构
  • Amazon 计算博客

文章来源:https://dev.amazoncloud.cn/column/article/64e5cea684d23218430681f1?sc_medium=regulartraffic&sc_campaign=crossplatform&sc_channel=CSDN 文章来源地址https://www.toymoban.com/news/detail-687735.html

到了这里,关于使用 Amazon Lambda 进行无服务器计算:云架构中的一场革命的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Amazon EC2 Ubuntu服务器安装图形化界面(Xfce)

    Ubuntu Server是Ubuntu的不含GUI的发行版,然而在GUI上可以获得一些工具更好的体验 本教程主要阐述如何在Amazon EC2的服务器上安装Ubuntu轻量化GUI — Xfce,并通过Xrdp配置使用RDP连接 Amazon EC2 t2.micro (1vCPU 1GiB) Ubuntu Server 22.04 本文使用的是 AWS 12个月的Free Trial,只能创建一个较低配置

    2024年02月03日
    浏览(77)
  • 【服务器使用】vscode & winscp进行服务器容器连接(含修改初始密码)

    例如节点(host)、端口(port)、密码(passwd)等信息,这个自己找组内的前辈获取即可 找到vscode里面ssh处的config文件 人工找不到的可以用【everything】模糊搜索,输入【sshconfig】即可  右键点击【打开路径】,进入config文件所在的位置 右键点击【config】,选择【通过Code打

    2024年01月21日
    浏览(45)
  • 使用vscode进行远程开发服务器配置

    1.下载vscode 2.给vscode 安装python 和 remote ssh插件 remote—SSH扩展允许您使用任何具有SSH服务器的远程机器作为您的开发环境。 3.安装remote-SSH插件之后,vscode左侧出现电脑图标,即为远程服务,按图依次点击,进行服务器配置。 按照如上格式进行配置,其中 Host是指你给这个远程

    2024年02月14日
    浏览(51)
  • 使用阿里云服务器搭建PostgreSQL主从架构图文流程

    阿里云百科分享使用阿里云服务器搭建PostgreSQL主从架构图文流程,PostgreSQL被业界誉为最先进的开源数据库,支持NoSQL数据类型(JSON/XML/hstore)。本文档介绍在CentOS 7操作系统的ECS实例上搭建PostgreSQL主从架构的操作步骤。 目录 前提条件 步骤一:选购ECS实例 步骤二:配置Post

    2024年02月13日
    浏览(36)
  • 区域入侵检测AI边缘计算智能分析网关V4如何通过ssh进行服务器远程运维

    智能分析网关V4是一款高性能、低功耗的AI边缘计算硬件设备,它采用了BM1684芯片,集成高性能8核ARM A53,主频高达2.3GHz,并且INT8峰值算力高达17.6Tops,FB32高精度算力达到2.2T,每个摄像头可同时配置3种算法,设备能同时对16路视频流进行处理和分析,能应用在工地、工厂、车

    2024年01月18日
    浏览(59)
  • java使用MinIO库进行存储服务器的使用

    导入相关库:首先,在 Java 项目中,你需要导入与存储服务器通信所需的库。对于 minIO,你可以使用 MinIO Java 客户端库。你可以通过将以下依赖项添加到 Maven 项目的 pom.xml 文件中引入该库: 创建连接:使用提供的存储服务器的访问密钥和密码,创建与存储服务器的连接。以

    2024年02月14日
    浏览(40)
  • 使用vscode 连接服务器 进行深度学习代码调试

    博主本来在Win上已经配好环境了,但是在跑代码的过程中,因为tensor拼接得太大了,导致笔记本内存不足,因此需要到服务器上跑 为什么选择vscode? 如果直接用xshell连接服务器,在命令行运行py文件,不是很直观,也不能debug,还不能直接输出图片。 pycharm连接服务器好像要

    2024年02月22日
    浏览(38)
  • 使用pycharm远程连接服务器,可进行远程调试

    当下,很多深度学习的模型需要高配置的设备来跑,本地的pc可能无法满足要求。所以就需要利用服务器来训练,但是在服务器上操作代码不是很方便。利用Pycharm可以在本地编写/修改代码,能够同步到服务器上,并且能直接在本地利用pycharm运行同步到服务器上的代码。非常

    2024年02月08日
    浏览(78)
  • 使用pycharm远程连接到Linux服务器进行开发

    本地的 PyCharm 能达到和远程服务器之间的文件同步; 本地的 PyCharm 能够使用远程服务器的开发环境; PyCharm:PyCharm 2021.3 (Professional Edition) Linux服务器:Ubuntu20.04 配置项路径:Tools ,Deployment,Configuration 在 Connection 标签页中,点击【···】,对 SFTP 连接进行编辑。 Username:注

    2024年02月08日
    浏览(51)
  • 使用GitHub Actions 来进行项目远程服务器部署

    由于项目源码是托管在github的,而部署是放在远程服务器上,并且使用nginx部署。 现在的部署流程时,需要更新时,在本地切换到master分支,执行构建操作,拿到构建出的dist目录,将其上传到远程服务的某个nginx目录,重启nginx服务。 基于以上,使用GitHub Actions做CI/CD流程。

    2024年02月14日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包