如何以及在何处使用无服务器计算
无服务器计算的应用趋势如今正在上升,但这并不意味着它适用于每个场景或组织。而组织是否为采用无服务器做好了准备?
无服务器计算是一种软件架构模型,也就是用户采用云计算服务提供商的服务器并动态管理计算资源的分配。“无服务器”这个术语是一个误称,因此在某种意义上,服务器仍然参与到计算过程中。此外,这种类型服务的定价基于应用程序消耗的实际资源量而不是预先购买的容量单位。 根据调研机构Markets and Markets公司2018年发布的调查报告,无服务器架构市场规模在2018年为42.5亿美元,预计到2023年将达到149.3亿美元,在这个预测期间的复合年增长率(CAGR)为29%。预计北美地区在预测期内将占据最大的市场份额,其部分原因是云计算服务的早期采用。
预计推动市场增长的主要因素是组织消除对服务器的管理需求,从而降低基础设施成本,简化部署、管理和执行。微服务架构的广泛应用也有助于推动增长。
Markets and Markets公司表示,自动化和集成服务在无服务器架构的部署中发挥着重要作用。自动化服务有助于有效管理部署在混合IT平台上的微服务,以提供更快的响应,以及计算资源的最佳使用。
Gartner公司也看好无服务器计算的应用增长。该研究机构将无服务器计算列为其影响2019年基础设施和运营的十大趋势之一,并指出新出现的软件架构模型将消除对基础设施供应和管理的需求。
无服务器计算对IT管理员的吸引力 德勤公司的云计算实践主管Ken Corless表示,无服务器不仅对应用程序开发人员很有吸引力,而且对系统运营人员也很有吸引力。
无论是由超大型云计算提供商提供,还是组织采用市场上的各种解决方案实现内部部署,无服务器计算的目标都是一样的。“组织采用自动化和自助服务,以加快软件开发生命周期。”Corless说。
对于IT管理员来说,无服务器可以减少基于票证的工作负载的“请求-响应”周期,并允许管理员专注于更高级别的任务,例如基础设施设计或创建更多自动化。
Corless提出了两个主要用例。一个是在应用程序开发中,用于创建基于服务的现代松散耦合应用程序。功能即服务(FaaS)和后端即服务(BaaS)这两种支持无服务器计算的云服务,都可以通过保持小规模团队而显著提高软件交付团队的生产力。
另一个重要的用例是系统管理员。“他们所寻求的自动化可以通过无服务器技术快速、轻松、渐进地实现。”Corless说。例如,在德勤公司的云计算管理业务中,该公司广泛使用无服务器来自动化产品的运营。
然而,正如云计算服务一样,在某些情况下,无服务器可能比支付虚拟机的费用更高,Corless表示,目前在虚拟机上运行的应用程序,在无服务器环境中,连续使用率达到80%可能会更高。
“尽管如此,无服务器的真正承诺是让更少的人完成IT业务的一些平凡任务,例如软件修补和备份。”Corless说。这有两个好处。首先,执行这些平凡任务的人员可以专注于在IT或企业中的其他地方创造价值。
Corless说,“没有人会为那些使DNS域名系统发生变化而感到高兴,这些人可能重新开发新功能。而推动更多自动化是人们看到的最重要的事情。”
第二个好处是,可以使中小企业也具有更强的自我决定能力。Corless说,“随着基础设施管理的专业知识和指南的自动化,团队可以自我服务,并安全地做到这一点。然而,这通常需要一些投资来实现标准和指南的自动化,因为我们从无服务器产品中看到的通常不够安全,不需要某种类型的限制就无法使用。”
调研机构IDC公司的平台即服务研究主管Larry Carvalho说,只要应用程序能够利用事件驱动的计算和解耦服务,这是无服务器平台的理想选择。
Carvalho说,最常见的用例是物联网(IoT)应用程序和需要事件驱动处理的移动后端。其他用例是批处理或流处理,用于对事件的实时反应。
无服务器计算最佳实践 那么组织如何帮助确保无服务器的成功?以下是专家提出的一些建议和做法,将服务器产品的约束带入设计过程。
市场营销技术提供商Cordial公司物联网平台架构师Daniel Smith说,转换为无服务器的工程团队经常忽略即使是最灵活的产品也存在严格的限制。
Smith说,“组织要牢记无服务器只是其他人的服务器或容器,有自己的设计限制,这将对无服务器的成功有很大的帮助。在无服务器的堆栈中划分责任的线要高得多,因此在设计和实现过程中需要考虑总运行时间、消耗的CPU时间或总体内存使用等约束。”
Cordial公司于2015年开始探索无服务器技术,其目标是在不可预测的资源使用期间建立可预测的成本模型。“作为一家初创企业,拥有一个可预测的、基于需求的成本结构是很有吸引力的。”Smith说。
2018年5月,该公司开始使用Cloudflare公司的Workers技术作为其部分系统的替代品。作为代表客户为消费者服务的B2B公司,Cordial公司与消费者的互动需要尽可能快。 Smith说,“这通常需要将工作负载尽可能地靠近消费者。”
无服务器提供了这种服务。由于Cordial公司已经能够减小微服务的规模,因此它愿意尝试使用其他方式无法部署的编程语言,从而使企业能够更快、更自信地提供更高效的产品。
设计有限的工作负载 Smith指出,组织应该将无服务器架构视为单一方法或功能的执行引擎。 Smith说,“进一步细化这个目标,功能的输入和输出应该是可以处理的最小的可能数据。不使用无服务器功能处理数据文件,而是将每行数据单独地执行。”
通过减少每个工作单元的大小,可以加快开始转向网络在服务之间移动数据的速度。Smith说,“对于移动中的数据,人们可以开始将网络视为一种易变的存储设施,每秒为每个网络接口提供10GB的存储。硬盘是速度最慢的系统组件,因此需要避免采用。”
使功能尽可能是无状态的 应用程序性能软件提供商Dynatrace公司软件工程师Daniel Dyla表示,整体应用程序中常见的全局变量不适用于无服务器应用程序,因为调用之间的全局状态可能不会持久。
Dyla说,“为了解决这个问题,无服务器功能应尽可能是无状态的。如果需要状态,最好有一个功能从外部数据库收集状态,并调用另一个执行实际数据处理的无状态功能。通过这种方式,企业可以将状态隔离到指定的位置,以便更容易管理。”
Dyla说,Dynatrace公司在过去几年中一直使用无服务器技术,受到低成本、扩展能力、事件驱动调用的吸引。该公司正在使用无服务器计算的轮询系统,这些系统需要连续运行才能进行批处理。
Dyla说,“我们看到的主要好处是成本低,我们的无服务器功能往往是一小段代码,突发负载可以从零开始迅速扩展。”
自动化部署和测试 电子发现软件提供商Relativity公司高级软件工程师Hristo Papazov表示,虽然有些工具可以轻松实现无服务器计算的人工部署,但部署的自动化使企业可以实现一致的实施,而且不会出现人为错误。
Papazov说,“自动化还允许组织内的其他团队轻松采用这些技术。” Relativity公司正在使用来自微软Azure云服务的无服务器技术,作为通过确保其核心组件正常运行来改善其电子发现平台的客户体验努力的一部分。Papazov说,该公司利用无服务器的内部监控工具,使用户能够处理大量的遥测数据,以快速检测和解决问题。
随着无服务器应用程序日益复杂,单元测试成为开发周期的一个关键部分,自动化也有助于实现这一点,Papazov说,“在微软公司推出Azure功能时,进行单元测试是非常困难的。而从那时起已经发展了很长一段时间,现在向项目添加单元测试非常容易。”
了解现代应用程序架构 Carvalho说,管理者应该将应用程序分解为短期运行、独立、分离的服务。他说,“构建一个无状态应用程序,同时利用API管理等支持服务来实现用户身份的通信和安全功能。” Carvalho表示,“可以通过提取业务逻辑,并在无服务器框架中将它们作为微服务运行来分解连续运行以处理传入事务的Web应用程序服务器。这可以消除持续运行服务器的成本,同时将故障转移的难题交给云计算提供商。”
使网络安全成为优先事项 虽然无服务器公司可能不必担心修补服务器或运行防病毒软件,但基于应用程序编程接口(API)的无服务器产品大大增加了解决方案的端点。Corless说,“如果企业的客户或合作伙伴使用API,将会面临更多的风险。” 企业可能需要重新考虑他们对防火墙规则的处理方式,“因为修改可以快速制造无法控制的混乱。”Corless说。
相关阅读:
Bespin Global连续三年入选Gartner公有云基础设施专业管理服务提供商魔力象限
青藤云安全发布容器安全、大数据分析平台产品及等保2.0解决方案
Kafka作为大数据的核心技术,你了解多少?
凡本网注明来源非中国IDC圈的作品,均转载自其它媒体,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。