什么是无服务器? 无服务器计算解释

开发人员花费大量时间来解决代码方面的业务问题。 然后轮到ops团队花费大量时间,首先弄清楚如何获取开发人员编写的代码并在可用的任何计算机上运行,​​然后确保这些计算机运行顺畅。 第二部分确实是一项永无止境的任务。 为什么不把那部分留给别人呢?

在过去的二十年中,IT领域的许多创新(虚拟机,云计算,容器)一直专注于确保您不必对代码在其上运行的底层物理计算机进行过多思考。 无服务器计算是一种日益流行的范例,借此希望其合乎逻辑的结论:无服务器计算,你不必知道有关硬件或操作系统的代码运行任何东西 ,因为它是所有照顾你由服务提供商。

[您准备好入侵容器了吗? 了解如何使用Kubernetes入门 •到底什么是Kubernetes | 通过InfoWorld的云计算新闻通讯了解云计算的最新发展。 ]

什么是无服务器计算?

无服务器计算是云的执行模型,其中云提供商动态分配(然后向用户收费)仅执行特定代码所需的计算资源和存储。 当然,仍然涉及服务器,但是提供商的服务完全由服务器负责。 亚马逊无服务器的拥护者克里斯·芒恩斯(Chris Munns) 在2017年的一次会议上说,从团队编写和部署代码的角度来看,“根本没有服务器可以管理或配置。 这其中不包含任何可能成为裸机的内容,不包含虚拟的内容,也不包含作为容器的内容,这些涉及您管理主机,修补主机或在操作系统级别上进行任何处理的事情,都不是您必须要做的事情。无服务器的世界。”

正如开发人员Mike Roberts解释的那样,该术语曾经用于所谓的“ 后端即服务”方案,在该方案中,移动应用程序将连接到完全托管在云中的后端服务器。 但是今天,当人们谈论无服务器计算或无服务器体系结构时,它们的意思是功能即服务产品,其中客户编写处理业务逻辑的代码并将其上载到提供商。 该提供商负责所有硬件供应,虚拟机和容器管理,甚至是通常内置在应用程序代码中的多线程之类的任务。

无服务器功能是事件驱动的,这意味着仅在由请求触发时才调用代码。 提供程序仅按执行所用的计算时间收费,而不需要为维护物理或虚拟服务器按固定的月费收费。 这些功能可以连接在一起以创建处理管道,也可以用作较大应用程序的组件,并与容器中或常规服务器上运行的其他代码进行交互。

无服务器计算的优缺点

通过这种描述,应该清楚无服务器计算的两个最大好处:开发人员可以专注于他们编写的代码的业务目标,而不是基础架构问题; 组织仅以非常精细的方式支付他们实际使用的计算资源,而不是购买物理硬件或租用大部分闲置的云实例。

正如Bernard Golden指出的那样 ,后一点对于事件驱动的应用程序特别有用。 例如,您可能有一个长时间处于空闲状态的应用程序,但在某些情况下必须同时处理许多事件请求。 或者,您可能拥有一个应用程序,该应用程序通过有限或间歇性的Internet连接处理从IoT设备发送的数据。 在这两种情况下,传统方法都需要配置一个强大的服务器来处理高峰工作容量,但是大多数时间该服务器的使用率均未得到充分利用。 使用无服务器架构,您只需支付实际使用的服务器资源。 无服务器计算也将适合特定种类的批处理。 无服务器体系结构用例的一个典型示例是一项服务,该服务上载和处理一系列单独的图像文件,并将它们发送到应用程序的另一部分。

无服务器功能最明显的缺点可能是它们是短暂的,并且正如AlexSoft所说 ,“不适合长期任务”。 大多数无服务器提供程序不会让您的代码执行超过几分钟,并且当您启动一个函数时,它不会保留以前运行的实例中的任何有状态数据。 一个相关的问题是,无服务器代码的启动可能需要长达几秒钟的时间,这在很多情况下都不是问题,但是如果您的应用程序要求低延迟,则应予以警告。

正如Rohit AkiwatkarGary Arora指出的那样,许多其他缺点与供应商锁定有关。 尽管有可用的开源选项,但无服务器市场仍由大型商业云提供商主导,我们将在稍后讨论。 这意味着开发人员通常最终会使用其供应商提供的工具,这使得如果他们不满意就很难进行切换。 而且,按照定义,由于大量无服务器计算都发生在供应商的基础架构上,因此很难将无服务器代码集成到内部开发和测试管道中。

无服务器供应商:AWS Lambda,Azure Functions和Google Cloud Functions

无服务器计算的现代时代始于2014年基于亚马逊云服务的平台AWS Lambda的发布。微软于2016年推出了Azure Functions 。自2017年以来一直处于测试阶段的Google Cloud Functions终于进入生产状态于2018年7月发布。这三种服务的局限性,优势,支持的语言和处事方式略有不同。 罗希特·阿基瓦特卡(Rohit Akiwatkar) 对三者之间的区别有详尽而详尽的描述。 还在运行中的是基于开放源代码Apache OpenWhisk平台的 IBM Cloud Functions

在所有无服务器计算平台中,AWS Lambda是最杰出的,并且显然拥有最多的时间来发展和成熟。 InfoWorld涵盖了过去一年AWS Lambda中添加的更新和新功能

无服务器堆栈

与许多软件领域一样,无服务器世界见证了软件堆栈的发展,这些软件将构建无服务器应用程序所需的不同组件整合在一起。 每个堆栈都包含您要用来编写代码的编程 语言 ,为代码提供结构的应用程序框架 ,以及平台将理解并用于启动代码执行的一组触发器

虽然您可以在每个类别中混合使用不同的特定产品,但是有一些限制,具体取决于您使用的供应商。 例如,对于语言,您可以在AWS Lambda上使用Node.js,Java,Go,C#和Python,但是只有JavaScript,C#和F#可以在Azure函数上本地运行。 关于触发器,AWS Lambda拥有最长的列表,但是其中许多是特定于AWS平台的,例如Amazon Simple Email Service和AWS CodeCommit。 同时,Google Cloud Functions可以由通用HTTP请求触发。 保罗·贾沃斯基(Paul Jaworski) 深入研究了三大产品中的每一个

无服务器框架

值得在等式的框架部分稍作拖延,因为这将定义有关最终构建应用程序的方式。 亚马逊拥有自己的本地产品,即开源的无服务器应用程序模型 (SAM),但也有其他产品 ,其中大多数是跨平台的,也是开源的。 最受欢迎的一种被称为,通常称为Serverless ,并且强调它为每个受支持的平台(AWS Lambda,Azure Functions,Google Cloud Functions和IBM OpenWhisk)提供相同的体验。 另一个受欢迎的产品是Apex ,它可以帮助使某些提供商无法使用的某些语言陷入困境。

无服务器数据库

如上所述,使用无服务器代码的一个怪癖是没有持久性状态,这意味着局部变量的值不会在实例化过程中持久化。 您的代码需要访问的任何持久数据都必须存储在其他位置,并且主要供应商的堆栈中可用的触发器都包括您的函数可以与之交互的数据库。

其中一些数据库本身称为无服务器。 这意味着它们的行为与我们在本文中讨论的其他无服务器功能非常相似,但明显的例外是数据是无限期存储的。 但是,调配和维护数据库所涉及的许多管理开销却被搁置了。 正如开发人员Jeremy Daly所说的 :“您要做的就是配置集群,然后自动为您处理所有维护,修补,备份,复制和扩展。” 与“功能即服务”产品一样,您只需要为实际使用的计算时间付费,并且资源可以根据需要上下旋转。

三大无服务器提供商各自提供了自己的无服务器数据库:亚马逊拥有Aurora ServerlessDynamoDB ,微软拥有Azure Cosmos DB ,而谷歌拥有Cloud Firestore 。 但是,这些并不是唯一可用的数据库。 Nemanja Novkovic拥有有关更多产品的信息

无服务器计算和Kubernetes

容器可以帮助无服务器技术在后台运行,但是管理它们的开销由供应商承担,因此对于用户而言是不可见的。 许多人将无服务器计算视为在无需处理其复杂性的情况下获得 容器化微服务的许多优势的方法,甚至开始谈论后容器世界

实际上,容器和无服务器计算几乎肯定会在未来许多年中共存,实际上,无服务器功能可以与容器化微服务存在于同一应用程序中。 Kubernetes是最流行的容器编排平台,也可以管理无服务器基础架构 。 实际上,借助Kubernetes,您可以在一个集群上集成不同类型的服务

无服务器离线

您可能会发现无服务器计算入门的前景有些令人生畏,因为您似乎需要与供应商签约才能体验它的工作原理。 但不要担心:有多种方法可以在自己的本地硬件上离线运行无服务器代码。 例如,AWS SAM提供了本地功能 ,可让您离线测试Lambda代码。 如果您使用的是无服务器应用程序框架,请查看serverless-offline ,该插件可让您在本地运行代码。 实验愉快!

From: https://www.infoworld.com/article/3406501/what-is-serverless-serverless-computing-explained.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值