如何在apache nifi中搭建开发和生产环境
How to build a development and production environment in apache nifi
我有 2 个开发和生产托管在 AWS 上的 apache nifi 服务器,目前开发和生产之间的迁移是手动完成的。我想知道是否可以将这个过程自动化并确保人们不在生产中开发?
我考虑过在 github 中上传整个 nifi 并让它在生产服务器上部署新的 nifi,但我不知道这样做是否正确。
一种选择是使用 NiFi 注册表,将流存储在注册表中并在开发和生产环境之间共享注册表。然后,您可以将最新版本的流程从 dev 提升到 prod。
正如您所说,另一种选择是可能使用 Git 在环境之间共享 flow.xml.gz 并使用部署脚本。 flow.xml.gz存储数据流configuration/canvas。您可以使用参数化流 (https://nifi.apache.org/docs/nifi-docs/html/user-guide.html#Parameters) 将 NiFi 指向不同的外部 dev/prod 服务(例如,NiFi 开发处理器使用开发数据库 URL,NiFi prod 指向生产数据库 URL).
另一种选择是将全部或部分 NiFi 流程导出为模板,并将模板上传到您的生产 NiFi,但是注册可能是处理此问题的更好方法。有关模板的更多信息,请参见:https://nifi.apache.org/docs/nifi-docs/html/user-guide.html#templates.
我相信 NiFi 背后的原始设计计划不一定要有不同的环境,并允许在生产中进行实时更改。我想您会在生产中使用一些测试数据来构建初始数据流,然后在准备就绪后启动实时数据流。但我认为想要有独立的环境是合理的。
我有 2 个开发和生产托管在 AWS 上的 apache nifi 服务器,目前开发和生产之间的迁移是手动完成的。我想知道是否可以将这个过程自动化并确保人们不在生产中开发?
我考虑过在 github 中上传整个 nifi 并让它在生产服务器上部署新的 nifi,但我不知道这样做是否正确。
一种选择是使用 NiFi 注册表,将流存储在注册表中并在开发和生产环境之间共享注册表。然后,您可以将最新版本的流程从 dev 提升到 prod。
正如您所说,另一种选择是可能使用 Git 在环境之间共享 flow.xml.gz 并使用部署脚本。 flow.xml.gz存储数据流configuration/canvas。您可以使用参数化流 (https://nifi.apache.org/docs/nifi-docs/html/user-guide.html#Parameters) 将 NiFi 指向不同的外部 dev/prod 服务(例如,NiFi 开发处理器使用开发数据库 URL,NiFi prod 指向生产数据库 URL).
另一种选择是将全部或部分 NiFi 流程导出为模板,并将模板上传到您的生产 NiFi,但是注册可能是处理此问题的更好方法。有关模板的更多信息,请参见:https://nifi.apache.org/docs/nifi-docs/html/user-guide.html#templates.
我相信 NiFi 背后的原始设计计划不一定要有不同的环境,并允许在生产中进行实时更改。我想您会在生产中使用一些测试数据来构建初始数据流,然后在准备就绪后启动实时数据流。但我认为想要有独立的环境是合理的。