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


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

640?wx_fmt=jpeg

译者 | 风车云马


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


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


640?wx_fmt=png


在过去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代码。快来尝试吧!


640?wx_fmt=png


640?wx_fmt=jpeg


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

640?wx_fmt=jpeg

福利

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


640?wx_fmt=jpeg


推荐阅读:

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

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

  • 20大5G关键技术

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

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

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

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


    真香,朕在看了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522837.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一张图看懂阿里云新发布的物联网设备上云神器——HiTSDB + IoT套件

近日,阿里云针对物联网企业遇到的设备认证困难、安全问题突出等问题,发布了HiTSDB IoT 套件的一体化解决方案,能够支持物联设备快速上云,高效设备管理,数据安全,低成本海量数据存储,实时掌握设备…

Spark精华问答 | 谈谈spark中的宽窄依赖

总的来说,Spark采用更先进的架构,使得灵活性、易用性、性能等方面都比Hadoop更有优势,有取代Hadoop的趋势,但其稳定性有待进一步提高。我总结,具体表现在如下几个方面。1Q:Spark RDD是什么?A&am…

阿里云产品头条(2017年12月刊)

摘要: 一、新产品发布1、云防火墙 商业化 发布云防火墙是一款云环境下的防火墙产品,首创了基于业务可视的结果,实现业务梳理和业务隔离的技术。适用于互联网/通用/游戏/金融/新零售/…

一张图解读阿里云数据管理DMS企业版

摘要: 阿里云数据管理DMS企业版,作为数据管理产品大家族里的新成员,于2017年11月开启公测,今年1月底正式发布商业化版本。 作为业界领先的面向企业的数据库DevOps解决方案,DMS企业版旨在帮助企业安全、高效的使用数据库…

架构设计之「 微服务入门 」

戳蓝字“CSDN云计算”关注我们哦!作者 | 奎哥来源 | 不止思考微服务这几年不可谓不火,很多技术团队都开始在自己的项目上引入了微服务。一方面这些团队确实很好的推动了微服务的应用和发展,另一方面也可以看到一些盲目追技术热点的行为所带来…

提升研发效率 保障数据安全——阿里云宣布数据管理DMS企业版正式商业化

摘要: 阿里云数据管理DMS企业版,作为数据管理产品大家族里的新成员,于2017年11月开启公测,今年1月底正式发布商业化版本。 作为业界领先的面向企业的数据库DevOps解决方案,DMS企业版旨在帮助企业安全、高效的使用数据库…

flowable实战(五)flowable驳回/退回上一步/退回到

一、驳回/退回上一步/退回到(历史某一个节点) 我们经常需要工作流中退回上一步,或者退回历史某一个节点。但由于流程的场景是很复杂的,回退有以下一些场景:1.串行路线上的退回:流程中没有任何网关&#xff…

全链路压测一招搞定,阿里云性能测试铂金版发布

摘要: 阿里云性能测试(Performance Testing Service)是卓越的SaaS性能测试平台,具备强大的分布式压测能力,可模拟海量用户的真实业务场景,让所有性能问题无所遁形。近日,PTS宣布推出了基于阿里双…

老司机教你分析日志:分析用户的地理位置信息

摘要: 地理位置的需求 通常我们分析用户的需求,了解到用户当前位置在哪里非常重要,例如,可以根据用户的地理位置,针对性的推广本地广告。 通常,我们可以在客户端获取定位权限来获取GPS信息。但是如果用户关…

java中的switch的规则_细细讲述Java技术开发的那些不为人知的规则

本文介绍的Java规则的说明分为3个主要级别,中级是平时开发用的比较多的级别,在今后将陆续写出其他的规则。遵守了这些规则可以提高程序的效率、使代码又更好的可读性等。一、在finally方法里关掉input或者output资源方法体里面定义了input或者output流的…

华为,百度豪投,这类程序员要再次上榜了!

前不久百度AI开发者大会,李彦宏高调宣布百度AI技术;同时,AI测试权威软件AI Benchmark的测试数据显示,中国华为研发的7nm旗舰手机芯片麒麟810的AI分数,远远超过美国高通骁龙855了!早前华为就宣布&#xff1a…

flowable实战(六)flowable的意见表和附件表应用

一、act_hi_comment和act_hi_attachment两表表,前者意见表后者是附件表 意见表它里面有一个类型type字段,分别是comment代表意见(这个type可以自定义,例如自定义为:通过/退回/提前终止),缺省提供了comment&#xff0c…

Serverless在游戏、电商行业的一个运用场景示例

摘要: Serverless 是一种架构理念,具有自己的独特的优势和适用场景。本文以使用阿里云函数计算为例,构建一个简单具体的microservice为例,看看这种架构是如何达到快速开发和节约运维成本的。 点此查看原文:http://clic…

SDN精华问答 | SDN的核心技术是什么?

SDN火热了好一阵子,无论运营商、政府企业、投资机构,一段时间,不知道SDN、不能甩几个SDN相关的名词术语,似乎都落后于时代了。今天,就来看看关于SDN的精华问答吧。1Q:SDN的目的是什么? A&#x…

RocksDB 写入流程详解

摘要: 最初的写入流程,继承自 leveldb,多个 写线程组成一个 group, leader 负责 group 的 WAL 及 memtable 的提交,提交完后唤醒所有的 follwer,向上层返回。 支持 allow_concurrent_memtable_write 选项&a…

Greenplum roaring bitmap与业务场景 (类阿里云RDS PG varbitx, 应用于海量用户 实时画像和圈选、透视)

摘要: 标签 PostgreSQL , Greenplum , varbitx , roaring bitmap , pilosa , varbit , hll , 多阶段聚合 背景 roaring bitmap是一个压缩比很高同时性能不错的BIT库,被广泛使用(例如Greenplum, ES, InfluxDB. 点此查看原文 标签 PostgreSQL ,…

容器快速入门完全指南

戳蓝字“CSDN云计算”关注我们哦!作者 | JUSTIN来源 | RancherLabs介 绍容器,以及Docker和Kubernetes之类的容器技术已经日益成为许多开发人员工具包中常见的工具。容器化的核心目标是提供一种更好的方式,以可预测和便于管理的方式在不同的环…

Java错误提示框口怎么使用_如何在Swing中显示错误消息对话框?

以下示例展示了如何在基于swing的应用程序中显示错误消息警告。使用以下API -JOptionPane - 创建标准对话框。JOptionPane.showMessageDialog() - 显示消息警告。JOptionPane.ERROR_MESSAGE - 将警报消息标记为错误。示例package com.yiibai.swingdemo;import java.awt.BorderL…

PostgreSQL Oracle 兼容性之 - rownum

摘要: 标签 PostgreSQL , rownum , Oracle 兼容性 , row_number 窗口 , limit , PPAS , EDB 背景 Oracle ROWNUM是一个虚拟列,每输出一行递增1。 点此查看原文:https://yq.aliyun.com/articles/405183?spma2c4e.11153959.teamhomeleft.24.8W…

PostgreSQL 查询涉及分区表过多导致的性能问题 - 性能诊断与优化(大量BIND, spin lock, SLEEP进程)

摘要: 标签 PostgreSQL , 分区表 , bind , spin lock , 性能分析 , sleep 进程 , CPU空转 , cache 背景 实际上我写过很多文档,关于分区表的优化: 《PostgreSQL 商用版本EPAS(阿里云ppas) - 分区表性能优化 (堪比pg_pathman)》 《PostgreSQL …