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

无服务器计算是当前的一项热门话题,甚至热过了Docker容器。

这么讲是说无服务器计算要成为容器的替代品吗?或者它是可以和容器一同使用的另一项流行技术吗?

在这篇文章中,我将为你介绍无服务器计算需要了解的内容,以及该如何将它融于你的IT战略中。


“无服务器”并不是真的没有服务器

首先需要澄清一点:当然可能大家也都有所了解,无服务器计算并不是意味着没有服务器。它是一个基于云的服务,和云上的其他服务一样,运行在服务器上。

也就是说,称它为无服务器,是因为服务提供者负责处理了所有的服务器侧IT,而你所需要做的只是编写代码并部署它。无服务器计算提供者处理了除此之外几乎所有的事务。这样在使用体验上就是一种无服务器的,虽然底层基础架构并不是如此。

     无服务器计算如何工作


那么它是如何工作的呢?举最流行的一个无服务器计算平台AWS Lambda为例。使用它,你需要编写代码(C#、Java、Node.js或Python),设置一些简单的配置参数,并且将所有的内容(以及所需的依赖项)上传到Lambda。

在Lambda术语中,上传的软件包被称作功能函数(function)。可通过运行在AWS服务(如S3或者EC2)上的应用程序调用该功能。上传Lambda后,Lambda会将你的功能部署在一个容器中,这个容器会在该函数完成执行之前一直存在,之后会释放掉。

需要注意的是,Lambda在这里负责配置、部署和管理容器,而你所做的只是提供在容器中执行的代码,其他的工作都交由后台完成。

     这会是无服务器的天下吗?


那么这是不是就意味着我们现在的软件开发人员和IT团队已不再需要直接处理容器或具体的后端IT了呢?可以只编写代码,把它丢到Lambda,让AWS来处理所有其他的事情吗?如果这听起来让人难以置信的话,那么就只有一种解释——这是不可能实现的。

如果你的DevOps交付链中还没有包含它,AWS Lambda所代表的这类无服务器计算将成为非常有价值的资源。

然而,它只能成为交付链中的一部分。虽然无服务器计算在大多数任务中都很适用,但距全面替代并部署和管理自己的容器还相距甚远。实际上无服务器计算应该和容器一同工作而不是替换它们。

     无服务器计算的优势


那么,无服务器计算的优势有哪些呢?当用它来提供服务时,无服务器计算有以下优点:


      花销低廉

使用无服务器计算,通常情况下只根据实际使用的时间和流量计费。例如,Lambda的计费标准是以每100毫秒的触发次数计费。实际成本通常也相当低,这里有部分原因是因为无服务器涉及的功能很小型,执行相对简单的任务,并且在常规的容器中执行,开销很小。

      低维护成本

在无服务器平台上部署某个功能时,平台为你做了绝大部分的工作。除此之外,你无需再为此设置容器、系统策略和可用性级别,也无需处理任何后端服务器的任务。如果你需要的话,你还可以使用自动伸缩,或是对容量进行简单的手动设置。

      简易性

标准的编程环境、没有服务器和容器部署的开销,你可以更加专注于编写代码。从应用程序角度来看,无服务器的功能基本上是一种外部服务,它不需要紧密集成到应用程序的容器生态系统中。

     无服务器计算的应用场景

什么时候你会用到无服务器计算?可以考虑如下场景与可能:

●  处理网站或移动应用程序的后端任务。无服务器功能可以从站点或应用程序前端接受请求(例如,来自用户数据库或外部源的信息),检索信息并将其交回到前端。这是一个快速且相对简单的任务,可以根据需要执行,很少占用前端的时间或资源,且只为后端任务的实际持续时间计费。

● 处理实时数据流并上传。无服务器功能可以清理、解析并过滤传入的数据流,处理上传的文件,管理来自实时设备的输入,并处理与间歇性的或高吞吐量的数据流相关的主要任务。使用无服务器功能,可以将资源密集型的实时进程从主应用程序移出(避免占用主应用的资源)。

●  负责高容量的后台进程。你可以使用无服务器功能将数据移动到长期存储上,以及转换、处理和分析数据,并将指标转发到分析服务上。比如,在销售点系统中,无服务器功能可以用来协调库存、客户、订单和交易数据库,以及间歇性的任务,如补货和标记差异。

     无服务器计算的局限

不过无服务器计算有一些非常明确的局限。以Lambda为例,它对功能函数的大小、内存占用和利用时间有内部限制。

这些限制以及有限的本地支持编程语言,并不一定是基础级别的无服务器计算所固有的,可它们也反映出系统的实际限制。对无服务器计算来说,让功能函数体量小,避免占用太多系统资源,是非常重要的,这样可以避免出现数量较少的高需求用户阻碍其他用户或者令系统过载的问题。

无服务器计算的基本性质也会产生一些内在的限制。例如,大多数监视工具如果使用无服务器功能可能很难实现,因为一般情况下你无法访问到该功能所在的容器或者容器管理系统。

调试和性能分析也可能因此被限制在相当原始或使用间接的方式。速度和相应时间也可能不均匀;这些限制以及对大小、内存、持续时间的限制可能会影响到它在性能优先情况下的使用。

     容器在哪些方面做得更好

容器可以比无服务器功能做得好的事情可以列举出非常多,可以用一篇完整的文章做详细的介绍。我们在这里要做的只是指出一些无服务器功能不能替代基于容器的应用程序的主要方面。

你可以做得更大

基于容器的应用程序可以像你所需要的那样规模大而又复杂。例如,你可以将一个非常庞大而复杂的整体应用程序重构为一系列基于容器的微服务,完全按照重新设计的系统要求定制新的体系结构。如果想要重构同样的应用程序并且在无服务平台上运行,可能会因为大小和内存限制遇到多个技术瓶颈。由此产生的应用程序可能由极其分散的微服务组成,而每个碎片的可用性和延迟时间非常的不确定。

你可以完全掌控

基于容器的部署可以完全控制单个容器和整个容器系统,以及它所运行的虚拟化基础架构。这样你可以设置策略、分配和管理资源,对安全性进行细化的控制,充分利用容器和迁移服务。而在另一方面,使用无服务器计算,只能依赖于‘他人’而不能自己控制。

你有精力去调试、测试和监控

完全掌控了容器环境,就可以全面了解容器内外的情况。这样就能够利用所有的资源进行有效的、全面的调试和测试,并可以在各个层面上进行深入的性能监控。你可以识别和分析性能问题,并在微服务的基础上微调性能,来满足对系统的具体性能需求。在系统、容器管理和容器级别上的监控访问还可以对所有这些层面进行完整、深入的分析。

协同工作

目前的实践中发现当无服务器计算和容器在一起工作时效果时最好的,这也需要每个平台都做得很好。基于容器的应用程序,并结合全特性的系统来管理和部署容器,这对于大型和复杂的应用程序和应用程序套件(尤其是在企业或互联网环境)而言是最佳的选择。

另一方面,无服务器计算非常适用于可在后台运行或外部服务访问的单个任务。基于容器的系统可以将这些任务交给无服务器应用程序,而不必占用主程序的资源。对无服务器应用程序来说,它可以为多个客户端提供服务,并且在容器系统中可以与其他无服务器应用程序完全独立地进行更新、升级和切换。

结论

无服务器计算服务和容器服务之间是平台间的竞争吗?答案是:基本不是。基于容器和无服务器的计算正在当今不断发展的世界中,互相地为现在的云计算和持续交付软件提供更好的支持。

原文地址:http://blog.51cto.com/12462495/2073777

时间: 2024-11-05 16:37:08

无服务器计算将会取代容器?的相关文章

无服务器计算是什么?管理员过来了解一下

管理员应该了解无服务器计算是什么以及它的工作原理,但是功能构建和部署主要是软件开发人员的领域:大多数管理员并不参与他们自己公司的无服务器计算基础设施. 管理员应该了解无服务器计算是什么以及它的工作原理,但是功能构建和部署主要是软件开发人员的领域:大多数管理员并不参与他们自己公司的无服务器计算基础设施. 在内部软件部署中,管理员负责配置计算和其他资源以运行工作负载,并且,他们经常会负责将工作负载部署到配置的资源,例如虚拟机和存储卷. 而敏捷软件开发做法会利用自动化来为每个软件构建或迭代配置部署,因

无服务器技术常见的五大误解

无服务器技术的快速增长让企业有机会节省服务器费用,并且帮助开发人员节省时间,能够关注于编码,而不是后台运维上.这样的切换带来的一个挑战是保持标准理解的难度.在上周于奥斯丁举办的 无服务器大会 上,我们就该领域相关的常见误解采访了Heavybit社区的专家. 误解 #1:无服务器是软件的全新变革方向 "一种常见的误解是无服务器是软件的全新变革方向,"Nick Martin说,他是 Meteor 的联合创始人和CTO."的确,这是让软件开发更快更容易的变革的下一步.就像编译器,数

5分钟Serverless实践 | 构建无服务器图片鉴黄Web应用

Serverless是什么 Serverless中文译为"无服务器",最早可以追溯到2012年Ken Fromm发表的<Why The Future Of Software And Apps Is Serverless>,他描述了一种场景,从用户自己维护的物理机,到IaaS,再到PaaS,计算模式的转变并不会停止,在云计算基础设施成熟的情况下应用程序可以不需要考虑服务器的存在,无服务器计算让开发者可以在不考虑服务器的情况下构建并运行应用程序和服务. 再到2016年,Mike

云计算未来趋势预测:AIaaS、无服务器、云端一体化等将成重点?

云计算是一种业务模式,服务提供商在定制的环境中处理客户的完整基础架构和软件需求.随着云计算的发展,云服务和解决方案也将随之增长. 软件即服务(SaaS)预计到2020年将以18%的年均复合增长率增长,平台即服务(PaaS)的采用率将在2020年达到56%,而2017年为32%.2018年基础设施即服务(IaaS)的全球市场规模将达到175亿美元.随着企业云服务的采用,云文件共享服务将会增加,而消费者云服务也将会随之增长.在云计算领域,亚马逊领先于微软.IBM.谷歌及其他技术巨头.2022年,亚马

2019 年无服务器使用调查

传统的 IT 体系结构已经不适合当今快速发展的数字经济环境.技术顾问 <a href="https://www.linkedin.com/pulse/step-towards-true-digital-transformation-mainstay-company/">Declan Morris 表示</a>:"客户不仅期望零停机时间,而且要求应用程序无论在世界任何地方都具有一致的性能."他还预测到,接下来是无服务器计算和功能即服务(FaaS

AZURE ACI -- 无服务器化容器解决方案

标题很对仗,目的很明确,蹭热度!!!前天看了 A 站的童鞋搞了一个,今儿我换个姿势用软 A 也搞一个.Azure Container Instance 服务是一种无服务器化的容器解决方案.ACI 服务是一个完全托管的容器服务,客户不需要搭建和维护容器计算集群(如用 VM 去搭建 Swarm 或者 Kubernetes ),客户管理视图和颗粒度在容器,可以直接进行容器消费,创建删除容器,并且按照容器分配的 CPU 和 内存资源的占用时间进行收费,并且容器生命周期跳转是非常快速的,可以快速的删除.创

腾讯云无服务器云函数架构精解

欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 分享人:陈杰,腾讯云架构平台部技术专家,10年云计算经验,现供职于腾讯架构平台部,负责弹性计算及云函数技术研发,致力于提供领先的基础设施平台以提升资源利用率及优化提升程序员开发运维效率. 继虚拟机,容器技术,无服务器化成为新的行业热点,无服务器云函数可以让用户无需关心服务器的部署运营,只需开发最核心的业务逻辑,即可实现上线运营,具备分布容灾能力,可依据负载自动扩缩容,按照实际调用次数与时长计费.本次主要分享腾讯云无服务器云函数在技术实

如何在Rancher上运行无服务器应用程序

最近,系统设计中较新颖的概念之一要属"无服务器架构"理念.毫无疑问, 这有点夸张, 因为确实有服务器参与其中, 但这意味着我们可以以不同的方式看待服务器. 无服务器的潜在上升空间 想象一下,一个简单的基于Web的应用程序,处理来自HTTP客户端的请求.而不是让一些程序运行时等待请求到达,然后调用一个函数来处理它们,如果我们可以按需启动运行每个函数,然后将其丢弃,那会怎样?我们不需要担心可以接受连接的运行的服务器数量,或者在伸缩时处理复杂的配置管理系统以构建应用程序的新实例.此外,我们还

由浅入深SCF无服务器云函数实践

欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者:陈杰,腾讯云架构平台部技术专家 近年来,互联网服务从一开始的物理服务器托管,虚拟机,容器,发展到现在的云函数,逐步无服务器化,如下表所示.程序员逐步聚焦于最核心的业务逻辑开发,解放了生产力,显著提升了服务上线效率. 云函数带来了真正的计算服务,如下表所示,类比腾讯云COS对象存储,SCF以函数为单位封装计算,按需调度执行,无须关心函数的自动扩缩容,故障容灾等,无任何闲置成本. 云函数给用户带来的价值主要4点: 简化架构:函数粒度的微服