服务器能够完成各种计算,是今天IT架构中最重要的部分。近期无服务器计算概念蹿红,没有服务器怎么计算?事实上,无服务器的说法并不准确,所谓无服务器计算知识立足于云基础设施之上建立新的抽象层,从而保证开发者无需要再为服务器,乃至云中的各类虚拟资源分神。
无服务器计算,其更具描述性的名称(且为一些提供商偏好的名称)是功能即服务或FaaS。就像IaaS、SaaS和PaaS那样,FaaS是一种云计算。在这种情况下,您购买必要的IT基础设施来运行应用程序的特定功能。例如,假设您的公司有一个用于创建特定报告的分析应用程序。您可以使用无服务器计算来实现创建报告的功能。当应用程序需要完成特定的任务时,该服务会自动扩展出所需的云实例,并在功能完成后自动关闭这些实例。您可以将FaaS用于一个完整的应用程序或只是一些功能。
开发人员在创建应用程序时,不再需要花时间考虑基础设施对应用程序的管理。他们只需上传代码,而该服务会打理剩下的各种事务。对于企业来说,这可能导致大量的时间和成本的节约。它省下了员工们管理基础设施的精力,去从事更有价值的项目。此外,它可以提高灵活性,以允许公司能更快地推出新的应用程序和服务。这转而又可以提高客户的满意度。所有这些好处都可以帮助公司更加盈利也更为成功。
对于正在经历着快速增长的组织而言,无服务器计算的可扩展性是其最有吸引力的特征之一。构架一个应用程序,使之在应对数百万个用户时能够有像在应对几十个用户时一样工作表现,是当今开发人员所面临的最困难的挑战之一。无服务器计算却消除了该挑战,因为每个功能都是独立扩展,而不需要员工提供额外的虚拟机或实例。如果一个应用程序的实际使用和开发人员最初期望有所不同,那么由于该服务会自动为每个功能按需提供必要的额外资源,因此这将不会成为一个问题。
那么目前而言那些应用场景适合无服务器计算呢?
首先处理网站或移动应用程序的后端任务。无服务器功能可以从站点或应用程序前端接受请求,检索信息并将其交回到前端。这是一个快速且相对简单的任务,可以根据需要执行,很少占用前端的时间或资源,且只为后端任务的实际持续时间计费。
另外,处理实时数据流并上传也适合这种服务。无服务器功能可以清理、解析并过滤传入的数据流,处理上传的文件,管理来自实时设备的输入,并处理与间歇性的或高吞吐量的数据流相关的主要任务。使用无服务器功能,可以将资源密集型的实时进程从主应用程序移出。
负责高容量的后台进程也可以考虑。你可以使用无服务器功能将数据移动到长期存储上,以及转换、处理和分析数据,并将指标转发到分析服务上。比如,在销售点系统中,无服务器功能可以用来协调库存、客户、订单和交易数据库,以及间歇性的任务,如补货和标记差异。