Serverless和FunctionsServerless(无服务器)和Functions(函数)已经成为众多行业会议中最热门和最核心的话题之一。为了满足这一市场需求,供应商也纷纷推出新产品。那么,这个市场到底是什么?您如何将功能应用到您的业务中?你如何开始?本文的目的是帮助您确定您在这个领域的发展方向。让我们首先查看一些市场数据,这些数据反映了人们对无服务器技术的广泛兴趣。根据RightScale的2018年云服务状态报告,无服务器计算是增长最快的云服务类别,增长率高达75%。该报告还指出,81%的企业采用了多云战略。DigitalOcean的Currents2018报告调查了开发人员对无服务器计算的使用情况。33%的开发人员表示他们已经在无服务器环境中部署了应用程序。然而,有趣的是,一半的受访者表示他们对无服务器知之甚少。在CloudFoundryFoundation的“多平台空间中的PaaS、容器和无服务器技术现状”报告中,46%的受访企业表示他们已经采用了无服务器计算。39%的受访企业使用PaaS、容器和无服务器技术。从以上数据我们可以得出什么结论呢?Serverless技术确实很火,但是真正了解它的人却很少。无服务器计算在企业软件现代化过程中发挥着重要作用。大多数大型企业都在使用多云服务。目前你看到的大部分Serverless应用都属于公有云中的使用场景——这是一个风险很小的尝试Serverless计算的好方法,快来试试吧!但是你知道为什么无服务器计算在企业数据中心也很重要吗?没错,函数在防火墙后面起到了很大的作用。我们将介绍一些使用本机函数可能会有所帮助的新场景。在数据中心,使用函数非常方便,因为很多最重要的应用都在数据中心运行。此外,由于数据引力,您最重要的数据存储在这里。如果你想用功能改进这些应用程序,你需要一种在本地运行功能的方法。另一个好处是您可以更智能地使用您的IaaS足迹。让我们通过一些示例场景来说明为什么函数在数据中心如此有用。我的行业如何使用数据中心的功能?在电信行业,我们都听说过“按次付费”(PPV)电视,即有线电视服务提供商的订户购买通过私人电视广播观看节目的权利。广播公司同时向所有订阅者广播节目。观众按照屏幕上的指南通过网络、IVR或现场客户服务代表购买节目的访问权限,通常是体育赛事、音乐会或电影。通常,PPV节目几乎没有交易。但如果有大型活动或拳击比赛,PPV订购系统的负载可能会爆炸。例如,2017年的Mayweather-McGregorcrossover是有史以来第二大PPV节目:430万美元的按次付费交易和超过6亿美元的总收入!过去,企业如何应对这些“一次性事件”?企业需要保持其庞大的基础设施全天候运行24/7,即使交易较少。否则,运营团队需要在活动开始前一周加固基础设施。他们需要添加更多服务于PPV订购系统的应用程序实例。这种零星的负载具有显着的资本开销。对于这种弹性场景,无服务器计算非常适合。假设PPV阶数是一个函数,平时可以降为0。这样可以减少数据中心的运维开销。当PPV订单很少时,分配给PPV功能的集群可用于其他工作负载。如果订单数量显着增加,该功能将根据需要扩展,以处理来自不稳定和不可预测的客户数量的请求。这些零星的流量模式无处不在,我们再来看看健康险行业。很多保险行业的人每年都会收到来自健康保险公司的投保邮件。这种模式类似于PPV场景。健康保险系统在登记期间可能会非常繁忙,尤其是在工作时间。而在保单期前后,系统的使用率极低。银行的零星高峰负荷模式同样适用于金融业。再举一个例子,比如一家公司首次公开募股(IPO)时的机构投资。当一个新产品推出时,银行就像是启动了“IPO引擎”。在购买狂潮时期,该函数会扩大,而在其他时候则缩小为零。或者想想一个股票交易平台,收市后,交易功能缩减为0。此时,其他后端/分析应用程序可以开始使用该基础架构。金融服务行业有很多批处理工作。这些批处理作业也适用于无服务器计算。每家银行都运行一个批处理作业来处理夜间对账。这些任务实际上只在晚上运行几个小时,但往往需要相当大的计算能力。因此,运行这些进程的硬件未得到充分利用。企业大多使用遗留调度系统来调度这些任务。在这种场景下使用功能,可以更智能地利用硬件,甚至可以避免传统软件许可的成本。cron调度程序可以每晚调用此函数来增加和启动帐户对帐过程。当处理完成时,该函数将减少到0。这种调度作业的模式在许多行业中很常见。物联网无服务器计算提供了一种非常有效的方式来调用函数以响应各种事件并通过循环链将函数链接在一起。那么这与物联网(IoT)有什么关系呢?物联网领域有大量事件驱动的用例。例如家庭自动化设备。您可以在这些设备上创建各种自定义规则。当运动传感器感应到运动时,它可以触发事件。反过来,该事件可以调用一些功能:向用户发送通知、开灯、向实时监控代理发送警报,甚至启动警报器。所有这些功能都可以通过循环链链接到工作流中!制造工厂中的温度传感器也是如此。当机器达到温度阈值时,系统会触发相应的事件,调用函数向工厂经理发送警报,并进一步调用其他函数来禁用受影响的机器。最后,我们来看看Pivotal在函数空间做了什么。使用riff构建功能Pivotal正在致力于riff项目,并与Google合作推出了开源项目Knative。riff和Knative共同构成了即将推出的PivotalFunctionService(PFS)的基础。PFS适用于任何云上的无服务器编程。Pivotal希望为您提供适用于任何云、本地和公共云环境的功能抽象。PFS是一种多语言服务,支持在您选择的框架中编写函数。它通过向您的架构添加功能来节省时间。将PFS用于各种操作,包括Web事件、基于事件的集成和大规模流数据。FaaS的未来是希望Knative的部分riff组件迁移到Knative,而其他组件保持独立。本文引用了一些市场统计数据,表明您的同行计划在未来几年更多地使用无服务器计算。我们还列出了一些使用场景来说明为什么函数如此有用。最后,我们向您展示了使用riff、Knative和PKS在生产环境中运行代码是多么容易。教程:如何在数据中心运行函数要使用riff和Knative构建函数,我们需要一个可靠的Kubernetes便捷服务。最合适的是我们的Kubernetes产品PivotalContainerService(PKS)。我们向平台运营商和集群管理员展示如何在PKS上创建具有正确Knative规范的集群。安装PKS创建Kubernetes集群访问集群确认kubectl上下文指向新创建的集群kubectl配置当前上下文在vSphere上为集群创建存储类规范安装riffCLIriff版本brew在单独的终端watch-n1kubectlgetpod--all-namespaces安装Knative和无服务器riff系统riffsysteminstall--node-port部署函数需要四件事:从GitHub存储库中提取函数的源代码从将生成的java函数调用者构建容器镜像被推送到dockerhub存储库以通过Knativeingress-gateway安排容器和服务功能关于作者Mayuresh是Pivotal的高级平台架构师,在构建和设计高度可扩展和弹性的分布式系统方面拥有超过13年的经验。他广泛从事与高性能消息传递、缓存、流处理和API相关的集成领域的工作。工作之余,他喜欢玩Xbox游戏、和女儿一起在乡间小路上骑行,或者做辛辣的食物。
