当前位置: 首页 > 后端技术 > Node.js

2020年顶级无服务器计算平台

时间:2023-04-03 18:27:12 Node.js

2020年所有主要无服务器计算服务的回顾。随着云平台的成功,我们看到了允许您像使用自己的基础设施一样使用远程基础设施的产品(基础设施即服务).我们已经看到允许您将远程基础架构与不同产品一起使用而不必担心的产品(平台即服务)。现在,我们还能够深入到代码级别(顺便说一句,这非常了不起),每当我们触发函数时,这些函数就会执行,没人知道在哪里(函数即服务)。在这篇文章中,我将快速浏览一些让您远程执行自定义计算的顶级平台,或者换句话说。无服务器计算平台。快速介绍。什么是无服务器计算?无服务器计算是指能够执行自定义计算,而不必担心计算发生的位置。当然,服务器是存在的(你认为代码会在哪里运行?),但你不必考虑它们的事实,_意味着你可以认为它们不存在。当然,我所说的计算是指您可以编写的实际函数。想一想:在软件开发中,有时候你需要创建一个完整的服务来提供一些功能,同时,这些功能偶尔会用到,但你仍然必须让服务工作99.9%时间功能正常,否则用户可能需要它们,如果它们失败,那么你就有麻烦了。如果,而不是依赖于这个99.9%的正常运行时间,你可以保证每当你需要执行该功能时,你启动一个服务器包含你需要的一切(包括你自己的代码),并且在执行结束后,服务器将停止?对于一个可能执行30%的时间,但需要99.9%的时间未雨绸缪启动的服务,你能省多少钱?这是无服务器计算平台的最大好处之一,你不必担心基础设施,你只需要担心执行你需要的计算的代码。有趣的是,这并不是一个新概念,事实上,第一个无服务器服务是由Zimki在2006年推出的,尽管它从未成功并最终被关闭。从2006年到现在,第一个真正的赢家是亚马逊,它在2014年通过Lambda成功推出并推广了这种服务模式。这几天是唯一的吗?当然不是!与所有其他基于云的服务一样,也有平台,在本文中,我将快速介绍它们。为什么采用无服务器?了解什么是无服务器计算很重要,但除此之外,您为什么要使用它?您准备好失去对服务器及其配置的控制了吗?事实上,这个mod有很多有趣的好处,我个人认为它们绝对超过你对它的所有潜在保留。无服务器架构是可扩展的无服务器架构是可扩展的:它们是以这种方式构建的,您不必担心这一事实。你还想从建筑中得到什么?您只需要担心编写代码,其余的样板代码是不必要的。这绝对是一个节省时间的方法,尤其是现在使用的一些技术(又名node_modules,有人吗?不需要处理服务器配置,因为,好吧......没有服务器(至少,从你的角度来看没有).这也是一个巨大的节省时间,不需要安装和配置任何东西,假设一切都准备就绪并可以使用(因为它是)。你只为你使用的东西付费,所以你不需要为一个总是上,即使它没有被使用,使用这个模型,你只需为代码每次被触发时执行的几秒钟付费。从本质上讲,理论上,Everything似乎表明无服务器模型将简化你的开发过程和相关的所有方面管理任务。说到这里,我听到你在问:问题是什么?当然,这种模式也有缺点。为什么要避免Serverless?在科技行业,没有灵丹妙药;没有单一产品或工作模型将满足您的所有需求,因此,无服务器并不总是正确的选择。例如,无服务器有一些缺点。调试和测试您的代码并不是那么简单。您很可能需要一些专门的工具来重现您的代码在无服务器环境中的行为方式。毕竟,没有服务器意味着您无法访问可以调试代码执行的正常环境。性能可能是一个问题。现在请不要误会我的意思,我并不是说无服务器功能很慢,一点也不。有一些方法可以预热你的代码执行,这样如果使用它就不会受到惩罚。但是这毕竟是一个serverless环境,也正因如此,不常用的函数(或者不常调用的函数)的执行时间会比较长。这取决于供应商和他们采用的执行方案。无服务器计算并非旨在连续运行,这意味着您必须重新考虑构建逻辑的方式。这是一个改变你的观点的问题,但这可能是一个挑战,尤其是在开始的时候。供应商锁定绝对是真实的。我的意思是,这对你来说可能不是问题,但如果你想让你的代码通用并且与供应商无关,这可能不是可行的方法。您的整个实施过程将特定于供应商,因此在决定模型之前请考虑这一点。也就是说,这些与其说是缺点,还不如说是警告。如果你考虑到它们,你会没事的。现在我们已经解决了所有问题,让我们快速浏览一下主要的无服务器计算提供商。在考虑使用无服务器服务的云提供商时,主要供应商有很多选择。所以为了避免写一本关于所有选项的小书,我将列出主要选项,如果你仍然认为它们都不适合你,至少你会对寻找什么。AWSLambda绝不是该模型的发明者,但它仍然被认为是第一个真正做到一切正确并使其流行的人。也许这是背后的商业模式,也许等待技术以可承受的价格上市只是时间问题,但自2014年以来,亚马逊一直在提供Lambda即服务,这是无服务器计算领域的知名企业之一。他们提供了广泛的编程语言供您使用,并且与他们的所有服务集成,允许您根据他们的产品触发的许多事件来触发您的功能的执行。在他们的网站上,您可以了解如何利用他们的服务套件来处理lambda函数并实现以下目标。ML模型的数据预处理用于检测趋势的实时数据分析*外部服务通信这绝对是一项非常通用的服务,并且拥有您可能需要的所有文档和示例。AWS在AzureFunctions方面的第一个真正的竞争对手可能是微软,但在2年后的2016年。他们为FaaS提供的服务与亚马逊非常相似,当然,集成了他们自己的一套服务和相关的触发器。如果你想选择AWSLambda的其他服务,这绝对是一个完美的选择。请记住,这些无服务器计算服务是理想的,并且在与来自同一云提供商的产品结合使用时效果最佳,如果你想让事情跨云工作,那么你可能会开始遇到一些复杂的问题(当然,这取决于你究竟是什么想要达到)。谷歌云功能令人难以置信的是,谷歌迟到了。他们可能拥有世界上最大、最卑鄙的搜索引擎,但他们的FaaS产品是在2017年推出的,最初,他们的产品比其他产品慢很多,这在当时甚至是最糟糕的选择。也就是说,一年后,大约在2018年,他们设法在这方面进行了改进,他们最终从他们的产品中删除了“测试版”标签,并确认它现在可以投入生产使用。如今,他们的服务与竞争对手不相上下,因此虽然他们的开局并不顺利,但绝对值得考虑。我们应该如何选择?除了根据您当前的提供商进行选择(即,如果您已经在使用AWS,您可能会想要选择它们,Azure和GCP也是如此),您还需要一些细节来了解哪一个是您的正确选择。因此,现在让我们来看看一些确凿的、公正的数据,它们应该可以帮助您做出这个选择。了解他们不对您的流量收取多少费用与了解他们收取多少费用一样重要。AWSLambda:AzureFunctions每月免费执行100万次。每月免费执行100万个GoogleCloudFunctions。每月免费执行200万次。赢家:显然,这个领域的赢家是谷歌,每月有200万次免费执行。也就是说,如果您只是试水,他们中的任何一个都会提供足够的每月免费执行供您试用。支持的编程语言这些毕竟是函数,想用什么语言写肯定是个大问题。由于基础架构是托管的,您无法真正选择自己喜欢的,而是必须从可用选项列表中进行选择。AWS拉姆达。开箱即用,支持Java、Go、PowerShell、Node.js、C#、Python和Ruby。并可选择创建自定义运行时以使用您想要的任何编程语言。Azure函数。C#、F#、JavaScript、JAVA、PowerShell、Python和TypeScript。有一项实验性功能可以提供以任何语言编写的HTTP服务作为实际功能。谷歌云功能。JavaScript、Python、Go、JAVA赢家:AWS显然是赢家,Azure紧随其后。为什么?因为他们的产品比谷歌的要大得多,而且他们都提供对自定义语言的支持(不像谷歌的),但微软的替代方案仍处于预览模式,这意味着它并不是很稳定。最长执行时间虽然无服务器函数在编写时应考虑到较短的运行时间,但在某些用例中可能需要更长的时间。AWS拉姆达。最多15分钟*AzureFunctions:AzureFunctions。通常最多10分钟,但如果您有高级计划,则保证最多60分钟。*GoogleCloudFunctions:GoogleCloudFunctions:默认1分钟,但最多可保证60分钟。默认为1分钟,但可以延长至9分钟。优胜者:如果您要使用基本计划,那么这个计划会更难一些,AWSLambda显然是赢家,15分钟。你能想象一个函数运行那么久吗?当然,可能会有一些用例,但这肯定需要很长时间。另一方面,如果你愿意多付一点钱,Azure的高级计划提供无限运行时间(尽管他们只保证最多60分钟,这听起来很疯狂,但应该足够了)。实际计算成本最后,我们期望每月为一个规模庞大的执行计划支付多少费用?摘自http://serverlesscalc.com/通过使用serverlesscalc.com,我们可以快速比较在具有1.5Gb内存的服务器上执行100万个函数需要多少成本,每个函数平均运行1秒。您可以使用该站点来研究这些数字,看看您看到的差异是什么样的,或者您甚至可以使用每个供应商自己的计算器来更好地控制这些估计。最后,考虑一下,即使我以100万次执行为例,它们都_至少_有那个数量的免费套餐,您仍然需要付费。这是因为即使您不为请求付费,您仍然需要为计算时间付费。如果您使用较低层的服务器(即在这种情况下内存较少),您的成本将会降低。赢家:最后,这里的赢家似乎又是AWSLambda,其次是Azure,最后是GoogleCloudFunctions作为最昂贵的选项。结论那么你会选择哪一个?还有很多其他因素需要考虑,老实说,这完全取决于您的背景、您正在解决的一系列需求以及您是否已经拥有云提供商。您可以使用此列表作为指南,但请记住在做出选择之前考虑您自己的情况。最后,你最喜欢哪一个?或者更好的是,您不会向其他人推荐哪一个?请在下面留下您的评论,以便其他人可以从您自己的经验中受益!_下次见!_。