我正在做一个项目,我正在使用Argo工作流来自动化时间序列预测。我已经编写了一个基本的cron工作流,它为单个时间序列获取数据并产生预测。我现在需要扩展这个过程,以预测每小时成千上万的时间序列。我需要为存储在数据库中的一组时间序列生成预测,并且该列表可以动态添加或删除时间序列。每当时间序列从此列表中添加或删除时,我想快速添加或删除cron工作流。我还想自动重新添加任何已删除但应该存在的cron工作流。
我是Argo生态系统的新手,所以我不知道解决这个问题的最佳方法。我目前的计划是创建一个新的cron工作流,它将"不同"。针对需要预测的时间序列列表的当前活动预测工作流。如果有任何差异,新的工作流将提交或删除预测工作流,直到事情同步。我将这个新的cron工作流设置为非常频繁地运行,以便它可以在需要时快速添加或删除预测工作流。
我首先想问一下这是否是解决问题的好方法。
第二,假设我按照目前的计划进行,我想知道从另一个工作流中提交或删除cron工作流的最佳方法是什么。我提交的每个预测工作流都需要有不同的参数值,用于预测时间序列。我知道在Argo中有一个API,我可以用它来创建或删除cron工作流。我需要将json/yaml工作流配置文件加载到脚本中,替换参数值,然后POST到Argo。有更好的方法吗?
我建议将10k工作流合并为一个带有循环的工作流。循环可以通过参数(字符串化的JSON)或工件(可能是存储在git中的JSON文件)来控制。
这样,您可以只更改一个文件来更新您的预测工作流的行为。
如果您真的需要生成10k个参数化清单文件,我建议使用某种gitops工具来部署它们。既然你已经进入了Argo的生态系统,你可能会觉得Argo CD很舒服。