前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >无服务器计算简介:第1部分

无服务器计算简介:第1部分

作者头像
February
修改2018-11-09 17:07:42
2.1K0
修改2018-11-09 17:07:42
举报
文章被收录于专栏:技术翻译技术翻译

最近大肆宣传的技术趋势是无服务器计算。有些人可能会认为(顾名思义)无服务器计算中没有服务器。有些服务器运行我们的代码,但这些服务器在基础架构中不可见,并且不需要开发或运营团队进行管理,处理或配置。

在无服务器计算或FaaS(功能即服务)中,我们通常编写仅关注一件事的应用程序/功能。然后,我们将该应用程序上传到云提供程序,该提供程序通过不同的事件(例如HTTP请求,webhook等)进行调用。最近,人们开始将无服务器称为BaaS(后端即服务)。BaaS和FaaS的操作属性(例如,没有资源管理)是相关的,并且经常一起使用。

无服务器计算的最常见用例是运行任何无状态应用程序,如数据处理或实时流处理,尽管它可以增强有状态应用程序。物联网和聊天机器人是无服务器计算的非常好的用例。

大多数情况下,无服务器计算是通过云提供商提供的服务来引用的。许多人将无服务器称为“类固醇上的PaaS”。如果您是一个快乐的PaaS用户,那么无服务器是一个可以考虑的选择,但它并不总是有效。同样,如果你正在做微服务,那么无服务器也是一种让人持开放态度的东西。

无服务器计算的主要优点

没有服务器管理

当我们使用云提供商提供无服务器产品时,开发人员不会进行任何服务器管理和容量规划。它完全由云提供商负责。无服务器计算本身解决了开发人员面临的几个问题,使开发人员能够更快地进行原型设计和开发。组织的运营成本较低。

经济有效

在无服务器计算中,您只需要在执行应用程序/功能时支付CPU时间。代码未运行时不收费。服务提供商处理基础架构及其运营,包括维护,安全性和可扩展性,从而降低组织的运营成本。通过消除租赁或购买基础设施,设置,容量规划和维护的需要,您可以节省时间和金钱。

灵活的扩展

我们不需要设置或调整自动缩放。应用程序会根据需求自动调整大小。缩放可以在几秒钟内完成。每当无服务器功能上的负载增加时,底层基础结构将立即生成相同功能的多个副本,并将在所有副本之间分发请求。

自动化高可用性和容错

这些功能正在服务器上运行,这些服务器自动部署在云服务提供商的各个可用区域中。这使他们高度可用。高可用性和容错自动来自底层提供商。开发人员不需要专门为此编程。

快速轻松的部署

一旦完成所有设置并开始开发,您就可以专注于手头的任务,而无需担心在运行,测试和部署代码时纠缠于传统工作流程。这些功能可以独立测试和部署,代码的任何更改都可以通过CI / CD集成进行推送。除了更快地部署应用程序,您还可以轻松地推出更新,并确保它们比以前更快地反映在程序中。无服务器架构可用于敏捷友好型产品开发。FaaS平台可以让开发人员专注于代码,并通过敏捷构建,测试和发布周期使其产品功能丰富。

微服务兼容

似乎无服务器和微服务有点类似。无服务器计算可以集成到面向微服务的解决方案中,因此您可以将复杂的应用程序分解为小型且易于管理的模块,从而使开发和测试软件程序的整个过程变得敏捷。您可以为每个服务编写函数,它可以独立运行。仅在发生特定事件时才分配资源。在分配任务之前,它们保持空闲状态。

无服务器计算的局限性

供应商锁定

无服务器计算的一个主要缺点是对服务提供者的依赖。功能按照供应商提供的说明编写。因此,如果更改提供程序并更改提供程序可能会产生额外费用,则相同的应用程序/功能可能不会以相同的方式运行。一切都由供应商控制,因此组织无法完全控制生态系统。

多租户和安全

虽然对我们大多数人来说不是一个大问题,但您无法确定您旁边还有哪些其他应用程序/功能,这带来了多租户和安全问题。如果远程服务器因其他人的功能而崩溃,则可能会无意中影响您的服务器。当多个无服务器应用程序在同一物理服务器上运行时,这是一个问题。云供应商正在这方面进行优化,以介绍解决此问题的最新技术。

性能

虽然无服务器中的函数在被任何已定义的操作触发时被调用,并且在执行序列的持续时间内运行,但如果应用程序未在使用中,则服务提供商可以将其关闭,这将影响性能。它会在触发时再次启动,但有时会增加延迟。延迟和并发是无服务器架构中的仲裁问题。延迟是开始处理任务所花费的时间,而并发意味着它一次可以运行的独立任务的数量。处理中的延迟要求可能变化很大,因此正确定义它们以充分利用无服务器平台非常重要。

资源限制

所有FaaS提供商对功能允许的资源都有一定的限制。他们为无服务器功能设置了资源限制。因此,使用无服务器解决方案运行高性能,资源密集型工作负载更安全。云提供商强制执行任务内存和处理限制,有时一次有太多任务可能意味着超过连接时间。这可能会阻止其他任务在期望的时间范围内正常运行。

监控和调试

在无服务器架构中记录应用程序是一项挑战。要解决您的应用中的任何问题,您可能需要查看各个地方。您可能需要集成第三方API以查看更精细的报告。监控无服务器应用程序也是一个大问题。尽管所有云供应商都提供自己的监控服务,但这些服务并不像我们监控传统服务器上托管的应用程序那样精细。

测试

由于编写的代码是您编写的“只是代码”,并且在大多数情况下,您不必使用或实现任何自定义库,因此单元测试非常简单。另一方面,集成测试是一项巨大的挑战。一起测试所有功能非常耗时并且需要付出很大的努力。您还依赖于云供应商进行某种集成测试。

---------------------

这是该系列的第一部分。第二部分即将推出。在第二部分中,我们将讨论可用于Serverless / FaaS的供应商和工具。

原文标题《An Introduction to Serverless Computing: Part 1》

作者:Gurpreet Singh

译者:February

不代表云加社区观点,更多详情请查看原文链接

本文系外文翻译,前往查看

如有侵权,请联系?cloudcommunity@tencent.com?删除。

本文系外文翻译前往查看

如有侵权,请联系?cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 无服务器计算的主要优点
    • 没有服务器管理
      • 经济有效
        • 灵活的扩展
          • 自动化高可用性和容错
            • 快速轻松的部署
              • 微服务兼容
              • 无服务器计算的局限性
                • 供应商锁定
                  • 多租户和安全
                    • 性能
                      • 资源限制
                        • 监控和调试
                          • 测试
                          相关产品与服务
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
                          http://www.vxiaotou.com