戳蓝字“CSDN云计算”关注我们哦!

译者 | 风车云马

出品 | CSDN云计算(ID:CSDNcould)

为了解决面临的业务问题,通常需要开发人员花费一定的时间编写完代码,再交由运维工程师确保正常的运行,整个过程下来比开发的时间要多的多。因为运维工程师不仅要清楚如何在特定的计算机上运行开发人员编写的代码,而且要确保它们在后续工作中平稳的运行——这倒像是一个永无止境的任务。为什么不把这部分工作留给别人呢?

在过去20年的发展中,IT领域的许多创新——虚拟机、云计算、容器——不必过多考虑代码运行的底层物理机器。近年来,无服务器计算也变得越来越流行。它不用了解运行代码的任何硬件或操作系统,因为所有这些都由服务供应商来提供。

什么是无服务器计算?

无服务器计算是云的一个执行模型,在这个模型中,云提供商动态地分配特定代码段所需的计算和存储资源。涉及的服务器也完全由供应商负责供应和维护。2017年,亚马逊的无服务器倡导者克里斯·芒斯(Chris Munns)在一次会议上表示,“在编写和部署代码的开发者看来,根本不需要管理或提供服务器。任何涉及到主机管理或在操作系统级别的处理,都不属于无服务器世界。”

开发人员Mike Roberts解释说,这个术语曾经用于所谓的“后端即服务”场景,即移动应用程序将连接到完全托管在云中的后端服务器。如今当人们谈到无服务器计算或无服务器体系结构时,他们指的是“功能即服务”,其中客户只编写处理业务逻辑的代码并将其上传到供应商那里。供应商负责相关硬件供应、虚拟机和容器管理,也包括多线程这样的任务。

无服务器服务是事件驱动型的,这意味着只有触发请求时才调用代码。供应商只按执行代码的时间收费,而不是对维护的物理或虚拟服务器收费。可以将这些服务创建成管道或者应用程序的组件,与容器或传统服务器上运行的其他代码进行交互。

无服务器计算的优点和缺点

无服务器计算有两个明显的好处:开发人员只需要关注代码的业务目标,而不是基础设施问题;而且企业只为它们实际使用的计算资源付费,而不是购买物理硬件或租用闲置的云服务。

这对于事件驱动的应用程序特别有优势。例如应用程序可能大部分时间处于空闲状态,但在某些条件下必须同时处理许多事件请求;或者有一个应用程序,它处理来自有限或间歇性Internet连接的物联网设备的数据。在这两种情况下,传统的方法都需要提供一个强大的有处理峰值能力的服务器,但是该服务器在大多数情况下都没有得到充分利用。使用无服务器架构,您只需为实际使用的服务器资源付费。无服务器计算也适用于特定类型的批处理,例如上传和处理一系列单独的图像文件,并将它们发送到应用程序的另一节点。

无服务器最明显的缺点是,它们不适合长期任务。大多数无服务器供应商不会让代码执行超过几分钟,但是每次启动服务时,它不会保留以前运行实例中的任何数据。还请注意,无服务器的代码可能需要长达几秒钟的时间来启动——这对于大多数用例来说都不是问题,除非您的应用程序需要较低的延迟。

无服务器也存在其他一些缺点,这可能与厂商有关。目前无服务器市场由大型商业云提供商所主导,这意味着开发人员一旦使用来自供应商的工具,如果不满意就很难切换。而且,由于太多的无服务器计算是在供应商的基础设施上进行的,因此很难将无服务器代码集成到内部开发和测试管道中。

无服务器供应商:AWS Lambda、Azure和Google云

无服务器计算始于2014年推出的AWS Lambda,这是一个基于亚马逊云服务的平台。2016年,微软也推出了Azure功能。2017年,谷歌云功能开始测试,于2018年7月正式生产。这三种服务的优势、劣势、支持的语言和处理方式略有不同。还有IBM Cloud功能也在部署中,它是基于开源Apache OpenWhisk平台。

无服务器堆栈(Serverless stacks)

与许多软件领域的情况类似,无服务器时代见证了软件堆栈的演变,这些堆栈将构建无服务器应用程序所需的不同组件组合在一起。无服务器堆栈包含要编写代码的语言环境、为代码提供结构的应用程序框架和平台启动代码的触发器。

这些内容根据供应商的不同,也有一些区别。例如对于开发语言,AWS Lambda支持 Node.js、Java、Go、C#和Python,但是Azure只支持JavaScript、C#和F#。关于触发器,AWS Lambda其中许多都是针对AWS平台的,比如Amazon Simple Email Service和AWS CodeCommit;谷歌云服务还可以通过通用HTTP请求触发。

无服务器框架(Serverless frameworks)

软件框架/软件架构对构建应用程序非常重要。Amazon有自己的软件架构,如无服务器应用模型( Serverless Application Model,SAM),其中大多数是跨平台的,也是开源的。其中最流行的是无服务器框架,例如AWS Lambda、Azure服务、谷歌云服务和IBM OpenWhisk。另一个受欢迎的产品是Apex,它的优势在于提供了更为丰富的语言环境。

无服务器数据库(Serverless databases)

无服务器计算的缺点是没有持久状态,这意味着本地变量的值不会保存。因此代码需要访问的任何持久性数据都必须存储在其他地方,大部分无服务器供应商都提供了可以与之交互的数据库。

与其他服务不同的是,无服务器数据库的数据是无限期存储的。通过配置集群,数据库所有的维护、补丁、备份、复制和扩展都将自动完成,从而大大节省成本开销。功能即服务,您只需要为实际使用的计算时间付费,并且能够根据需要对资源进行灵活调整。

三大无服务器提供商都提供了自己的无服务器数据库:Amazon有Aurora serverless和DynamoDB, Microsoft有Azure Cosmos DB,谷歌有Cloud Firestore。不过,这些并不是唯一可用的数据库。

无服务器计算和Kubernetes

容器有助于在底层支持无服务器技术,由供应商负责管理容器的开销,因此对用户是不可见的。许多人将无服务器计算视为实现微服务容器化的一种方法,甚至开始讨论后容器时代。

事实上,容器和无服务器计算可能会在未来的许多年中共存,而且无服务器服务可以与容器化的微服务存在于同一个应用程序中。最流行的容器编制平台Kubernetes也可以管理无服务器的基础设施。您可以使用Kubernetes在单个集群上集成不同类型的服务。

无服务器离线运行(Serverless offline)

这样看来,无服务器计算貌似需要与供应商签约(合作开发)才能体验,是不是感觉使用无服务器计算的前景有点吓人。但是不要担心:无服务器的代码也是可以在本地硬件上离线运行的。例如,AWS SAM就提供了一个本地运行代码的插件Serverless-offline,支持离线测试Lambda代码。快来尝试吧!

如果你是一个狂立学习flag却屡屡打脸的懒癌晚期,或者是一个对云计算方面云里雾里,不知所措的好学者,亦或是一位资深行业专家,都欢迎关注【CSDN云计算公众号】,爆发自己学习的洪荒之力吧!

福利

扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!

推荐阅读:

  • 屡试不爽的互联网架构三大马车!

  • 抖音微博等短视频千万级高可用、高并发架构如何设计?

  • 20大5G关键技术

  • Fast.ai:从零开始学深度学习 | 资源帖

  • 10个简单小窍门带你提高Python数据分析速度(附代码)

  • 程序员爬取 3 万条评论,《长安十二时辰》槽点大揭秘!

  • 暗网竟成比特币最大用户? 上半年5.15亿美元被用于非法活动

    真香,朕在看了!

无服务器计算,如何节省时间和成本?相关推荐

  1. 无服务器计算:云计算的下一阶段

    本文翻译自美国计算机协会通讯杂志(Communications of ACM,CACM)近期的一篇文章(May 2021, Vol. 64 No. 5, Pages 76-84).该文阐述了对无服务器 ...

  2. 基于阿里云函数计算实现需要用到超大依赖包的 Python 无服务器计算

    文章目录 引言 一.阿里云函数计算是什么? 开发流程 函数计算的触发调用 函数计算运行实例的生命周期 二.示例应用的架构及简介 三.具体开发部署步骤所遇到的坑和~~避坑指南~~ 坑1. 超大依赖包的部 ...

  3. 通通透透看无服务器计算:由来、场景和问题

    一. 无服务器(Serverless)计算是什么 云计算涌现出很多改变传统IT架构和运维方式的新技术,比如虚拟机.容器.微服务,无论这些技术应用在哪些场景,降低成本.提升效率是云服务永恒的主题.过去十 ...

  4. 天天都在说,无服务器计算到底是什么?

    过去一年,无服务器计算(serverless)已成为构建和运行现代应用程序和服务的普遍架构替代方案.无服务器应用程序允许开发人员专注于代码,而不是基础架构配置和管理.这加快了研发和发布周期,并允许更好 ...

  5. 无服务器计算将会取代容器?

    2019独角兽企业重金招聘Python工程师标准>>> 无服务器计算是当前的一项热门话题,甚至热过了Docker容器. 这么讲是说无服务器计算要成为容器的替代品吗?或者它是可以和容器 ...

  6. web服务器中启用作业储存_如何在Kubernetes中启用无服务器计算

    web服务器中启用作业储存 在本系列的前两篇文章中,介绍了在开放源代码平台上使用无服务器平台的过程,我介绍了如何开始使用无服务器平台,以及如何使用流行的语言编写函数以及如何在Apache OpenWh ...

  7. 越来越火的Serverless(无服务器计算),到底是个啥?

    今天这篇文章,我们来聊一个云计算领域的热门概念--Serverless. 到底什么是Serverless? 英语好的童鞋,可能一眼就看出来了,Serverless是由Server和less两个词根组成 ...

  8. 容器服务器_容器与无服务器计算之间正在进行一场战争

    容器服务器 What's the job of a developer? Writing software, of course. But that wasn't always the case. 开 ...

  9. 从零开始发布前端代码到服务器上_无服务器计算:让每行代码都能住上“经济适用房”...

    是时候展现真正的实力了!大胆报名吧!! 摘 要 独立的简单函数可以让开发工作变得更加容易,同时由事件驱动的执行可让操作变得更加便宜. 开发人员往往需要花费大量的时间编写代码以解决业务问题.随后,运营团 ...

最新文章

  1. Linux下的CST和UTC时间的区别
  2. Contact Bubble View
  3. C语言实现简单线程池
  4. 【计算机系统设计】实践笔记(6)改进数据通路:lw和sw指令
  5. 【LeetCode 剑指offer刷题】查找与排序题12:Top K Frequent Elements
  6. 如何修改Git仓库的URL(地址)
  7. UE4之Import源码解析
  8. 微店关键词取商品列表API接口(item_search-根据关键词取商品列表API接口),微店API接口
  9. 旧词新解:项目与产品,项目经理与产品经理
  10. mac linux 键盘布局,Macbook Pro 推出中文键盘布局
  11. react动态添加背景图片/不同内容添加对应背景
  12. 经典Java题目:输入一个数字,输出它的大写汉字(阿拉伯数字转汉字)
  13. 【后台技术】异步编程指北,问题和重点
  14. DNA计算 与 肽展公式 推导 AOPM-A 变胸腺苷, AOPM-O尿胞变腺苷, AOPM-P尿胞变鸟苷, AOPM-M鸟腺苷的 S形螺旋纹 血氧峰 触发器分子式 严谨完整过程
  15. java画图板之平面山水画(二)
  16. 计算机在生活中的应用论文2000字,浅议计算机在生活中的应用论文(2)
  17. 【长更】一句话题解(组队训练的俄罗斯题、oj、camp)
  18. x265工程简介、编译、调试测试
  19. 2023年武汉大学世界史考研考情与难度、参考书及上岸前辈备考经验
  20. css-doodle学习第四天 属性

热门文章

  1. 该计算机没有运行windows无线服务器,老司机示范win7系统诊断提示此计算机上没有运行的windows无线服务的恢复方法...
  2. 计算机主机硬件图片,电脑主机内部有哪些硬件
  3. php函数方法,基于PHP函数的操作方法
  4. java 获取对象方法有哪些方法有哪些方法有哪些_Java中创建String 对象的方法有哪些...
  5. android的读取xml配置文件,android中XMl文件的读取
  6. BAT技术大牛推荐:看懂英文文档,每天只需要10分钟做这件事……
  7. 为什么R语言是学习数据分析的第一选择
  8. jquery添加div实现消息聊天框
  9. 技术人生第5篇——浅谈如何成为技术一号位?
  10. 排查指南 | 当 mPaaS 小程序提示“应用更新错误(1001)”时