无服务器计算:你准备好了吗?
2020-02-28JohnEdwards
John Edwards
数年以前,物理服务器还是一项基础技术,是每个数据中心跳动着的数字心脏。然而云计算出现了,并得到了實际运用。如今,随着企业不断地将越来越多的服务转向云服务提供商,本地服务器似乎正在面临着生存危机,成为了濒临消亡的产品。
无服务器计算正在加速本地服务器的淘汰进程。转向云服务提供商以动态管理机器资源的分配,以及仅针对应用程序消耗的实际资源量向用户收费的概念正越来越受到人们的欢迎。技术媒体与培训公司O'Reilly在2019年末进行的调查显示,40%的企业(调查对象广泛分布于不同的地区和行业)已经采用了无服务器技术。
我们不要被它们的名字所误导,尽管名字叫做无服务计算,但是无服务器计算仍然依赖于服务器。无服务器软件开发商Volare Systems的老板Joe Wilson指出:“无服务器计算实际上是在服务器上运行的,只不过你的云提供商会根据需要配置服务,你不再拥有虚拟服务器或应用程序服务。”本质上,无服务器是一种应用程序部署架构,开发人员可以编写代码并按需执行。
无服务器不仅是一项技术,更是一种查看基础IT运营的全新方式。Liberty Mutual Insurance的云平台策略高级架构师Brent Austin说:“无服务器的主要好处是,它们将迫使你考虑以云原生方式设计系统。如果以无服务器优先的思维方式设计应用程序,那么你可能会摆脱系统内特定技术选择的束缚,从而部署具有优秀费效比、可扩展性和高弹性的架构。”
在何处使用无服务器计算
无服务器计算的部署方式有许多种。埃森哲负责云战略、架构和交付的常务董事Miha Kralj称,许多用例将重点放在了相对简单的需求上,例如目前通常用无服务器方式编写的网页应用程序。“由于无服务器平台会在需要时自动扩展,因此可以快速地开发简单的应用程序,同时不必担心基础设施的复杂性。”
无服务器擅长于不同应用程序系统的协调。Kralj指出:“无服务器计算非常适合检测事件并通知另一个应用程序或系统。例如,数据库中的更改何时触发代码更改或安全性审查。无服务器可能是在系统之间创建这类自动化工作流的最佳方法。”
无服务器还可以满足一些“附加”需求。Kralj说:“当客户拥有一个大型或复杂的解决方案,并且需要添加一些功能时,无服务器可能是理想的选择。”例如,与打开大型应用程序插入简单的函数(例如添加新来源中的客户记录)相比,用户创建一个无服务器函数就可以捕获新的输入并调用应用程序的API。 Kralj说:“这是一种快捷、方便且可靠的方法。”
无服务器计算的成本优势
从本质上讲,无服务器计算架构往往比替代方法更具成本效益。Austin 建议:“无服务器的一项核心功能是,它可以向上扩展或向下收缩直到零,这样一来,当不使用它们时,你就不必为之付费。”
咨询公司SPR的移动与新兴技术执行总监Kevin McMahon说,通过无服务器技术,客户实现了只为消耗而不为容量付费。他将无服务器模式与拥有汽车和使用拼车服务进行了比较。他解释说:“在拼车服务推出之前,如果你想从A点到达B点,那么你可能要拥有一辆汽车,并购买保险和维护它们。有了拼车服务后,你不再需要为汽车操心,只需在需要时支付从A到B的费用即可,也就是说你只需为需要完成的工作付费,而不需要为额外的基础设施和维护付费。”
IT服务管理公司Aptum的云负责人Craig Tavares指出,无服务器计算还可以帮助采用者避开资源过度分配导致的相关成本,从而确保支出与实际消耗一致。此外,通过将应用程序分解为简单的由目标驱动的函数,用户可以在云端快速且低成本地部署和分发应用程序。Tavares补充说:“开发周期中速度的提高也加快了产品的上市速度,从而使公司能够专注于持续改进和客户满意度。”
Medinas的首席技术官Tim Growney说,由于采用的定价方式为按次付费,因此没有正常运行时间成本。“使用情况肯定会因用例而异,但是对于我的公司来说,我们基本上都能够享受到AWS的免费套餐,这使我们的Web托管成本几乎为零。”
无服务器会影响IT工作负载吗?
无服务器计算可以通过多种方式减轻IT工作负载,尤其是可将员工从服务器性能、可靠性、维护和安全任务等例行性管理工作中解放出来。Austin称:“实施健康检查以确保应用程序正常运行,管理底层操作系统以打上最新的安全补丁,以及确保为底层基础设施配备了足够的能力以处理峰值工作负载等需求都可以通过无服务器平台进行处理。”
无服务器还有效降低了开发人员的工作量。Austin 指出:“无服务器可以减少代码的编写量,特别是基础设施代码,这对基层IT人员很有吸引力。利用无服务器技术配置基础设施配置,可让更多的开发人员从事业务功能的部署工作,对于IT部门而言这是一项巨大的优势。”
加快开发速度还可以使企业更加灵活,更具创新性。Kralj说,无服务器是将想法转变为实用解决方案的最快方法。“该方法非常适合应用程序的快速开发,你只需几行代码就可以搞定。”
尽管不会抵消技术上的众多优势,但是无服务器有时也会导致工作量增加。灾难恢复服务提供商Sungard Availability Services的资深架构师Greg Cox说:“创建功能以及将API融合在一起以完成业务需求会涉及更多的工作。”
纠错也可能会增加工作负载。数字业务平台开发商AHEAD的云首席顾问Bert Johnson警告说:“如果安全性、测试、监控和配置管理没有实现标准化,那么无服务器的错误就会变得很隐蔽。” 他指出,错误会放大软件开发过程中的缺陷,同时迫使开发人员放弃关键任务转而加入搜索和修复任务。
无服务器计算的缺点
尽管有着众多的优点,但是无服务器计算也存在一些明显的缺点。例如,该技术在支持长时间运行方面并不是特别好。McMahon说:“如果你运行的任务或流程需要花费很长时间进行计算,那么无服务器将不是最佳选择。当前,Azure Functions和AWS Lambda分别最多只能运行10分钟和15分钟。”
冷启动也会使一些无服务器采用者感到不便。McMahon解释说:“冷启动是一个时间段,通常只有几十毫秒,需要唤醒一个函数才能执行。对于大多数用例来说,这个时间可以忽略不计,但是在某些用例中,这种延迟是不可接受的,并且无服务器计算可能也不是理想的选择。”
潜在的采用者也可能因供应商锁定的顾虑而放弃无服务器技术。Kralj警告称:“IT和开发主管应该意识到,AWS Lambda、Azure Functions和Google Cloud Functions等主要的无服务器系统是不能互换的。”
从安全角度来看,无服务器也带来了独特的挑战。安全软件开发商Aqua Security的战略副总裁Rani Osnat指出:“一方面,较短的运行时间和与底层主机操作系统的隔离降低了风险。另一方面,如果函数被赋予过多权限或有易受攻击的组件,那么这可能导致无服务器函数会成为不法分子发起攻击的跳板。”对此,Osnat建议应对无服务器计算进行安全配置,并监视其异常和滥用行为。
无服务器采用者在计算其容量需求时也应保持谨慎。Growney说:“传统服务器在容量不足时会报错,从而阻止了成本的攀升。无服务器则可以以相对不受限制的方式进行扩展,如果你没有注意到这一点,那么可能会导致出现昂贵的账单。”
最后,转而采用无服务器技术的企业可能会看到他们的工资总额出现增长。从事IT招聘的公司Jefferson Frank的执行副总裁兼云负责人Patrick Navarro表示:“如果你的企业专注于技术,那么一个非常重要的支出是招聘开发人员。合格且熟练的开发人员的薪水可能不高,但是招聘和保留住他们的费用却很高。”
展望未来:无服务器助力集成工作
随着云提供商持续引入新服务,IT领导者面临着一个挑战,即所有内容都整合在一起以形成一个连贯的解决方案,并且这个解决方案还要能够整合运行在云端或数据中心上的老旧应用程序。Kralj说,无服务器计算非常适合这些新的存在集成工作的挑战。“无服务器具有响应式和事件驱动的特性,因此它们可以实现现代解决方案所需服务之间的各种实时连接。”
新部署者应当以评估所有颠覆性技术一样的方式评估无服务器。IT咨询公司Anexinet的云架构师John Kovolski建议:“在部署之前还是要花点时间学习和理解无服务器产品。至少,要有一个全面思考的过程。”为了深入了解潜在的运营优势与成本优势,Kovolski建议对当前系统的性能进行评估,然后再与计划中要更换的无服务器进行比较。
Growney建议逐步采取无服务器技术。他解释说:“无服务器并不是一项全能的技术。它们只是可以根据需要被使用。”
本文作者John Edwards 为资深商业技术记者,曾在《纽约时报》《华盛顿邮报》以及CIO、Computerworld、Network World、CFO Magazine、IBM Data Management Magazine、RFID Journal和Electronic Design等眾多商业和技术刊物上发表过大量文章。
原文网址
https://www.networkworld.com/article/3514188/serverless-computing-ready-or-not.html