云端与边缘计算的分析服务最佳实践

随着全球数千名开发者利用Predix分析服务来创建和部署高级业务分析应用程序,认为从分析服务中利用所有工具的最佳实践开始是一个值得探讨的话题。以下是在创建分析时需要考虑的几个要点,从准备数据本身到在生产环境中部署分析。

开发分析

在Predix分析服务中创建和使用分析的一般流程是,在本地环境中使用支持的语言(Python、Matlab或Java)之一开发分析,并选择喜欢的SDK。目前,不必担心安全性、REST入口点等问题。一旦分析在本地环境中按预期行为运行,可以将其上传并部署到Predix分析目录中。

这样做时,分析平台将包装分析,添加安全性、REST入口点等,然后将其部署到Predix云中。之后,可以通过三种不同的方式运行云部署的分析。REST API允许从Predix分析目录运行分析,或者可以通过Predix分析运行时管理分析的定时运行。最后,在Q3版本中,增加了直接执行分析微服务的API,支持同步和异步模式。因此,可以构建应用程序,以最有意义的方式部署和使用这些分析微服务。以下段落突出了分析开发和使用的最佳实践

将分析发布到分析目录

第一步是封装分析的形式和功能。目录服务中的每个分析在部署时都成为一个微服务。因此,需要遵循基于微服务架构创建应用程序的最佳实践。分析应该对每个输入应用其逻辑并产生输出,而不读取在数据服务中持续存在的状态信息。换句话说,说的是不希望在分析代码中从数据库或文件系统中读取/写入状态信息。分析需要在调用之间是无状态的,或者换句话说,必要的状态信息必须作为输入传递,当分析被执行时。

一旦在本地环境中编写并调试了分析,将为其上传到Predix分析目录做准备。分析需要有一个入口点,具有明确定义的输入结构和输出JSON结构。(所有分析都应该产生某种输出,即使它只是一个简单的分数。如果没有输出,开发者为什么会在应用程序中利用分析?)平台将通过JSON输入结构与分析通信,并期望它返回一个JSON输出结构。JSON输入/输出的内部结构是针对每个分析定制的。

为验证、发布和执行准备分析

现在分析已经准备好投入生产了。在Q3版本中,Predix分析运行时引入了对多个分析的编排支持,以及从一个编排步骤到下一个步骤的中间数据的内存传输。将创建一个BPMN文件,定义每个步骤要运行的分析,然后编写一个外部触发器来收集每个分析所需的数据并分散其结果。最后,将运行BPMN编排,可能是与Predix时间序列数据一起,针对单个资产或资产组。编排事件会报告给监控服务。

支持机器学习

值得一提的是,在Q3版本中,Predix分析运行时引入了对机器学习和其他有状态分析的支持。基于机器学习的分析必须已经离线训练过。训练好的模型可以作为输入提供给分析,并用于服务多个预测。同样,任何有状态的分析都可以在触发时恢复其状态作为输入,并且在执行结束时更新的状态可以作为输出保存。在这两种情况下,一个无状态的微服务处理状态作为其输入之一。

认识到,机器学习支持还有很多工作要做。在不久的将来,在生产环境中从大数据集中构建的模型将被配置为与分析服务轻松集成,并且可以根据新数据定期更新。需要无缝集成在大数据环境中运行的学习阶段,与基于不同版本训练模型在分析运行时提供的预测。将不断扩展能力,与主要发布里程碑一致,持续交付新功能。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485