2016-04-13 7 views
3

Wir kämpfen mit dem Versuchen, den besten Ansatz für das Aktualisieren von Prozessorkonfigurationen herauszufinden, während ein Fluss durch die Dev-, Test- und Prod-Stufen fortschreitet. Wir möchten wirklich vermeiden, Host-, Port-, etc. Referenzen in den Prozessoren zu manipulieren, wenn der Ablauf in der spezifischen Umgebung bereitgestellt wird. Zumindest in unserem Fall werden wir verschiedene Hosts für Dinge wie ElasticSearch, PostGres usw. haben. Wie haben andere das gehandhabt?NIFI - Dev zu Test zu Prod

Dinge, die wir betrachtet haben:

  • Ziehen Sie die config aus einer Eigenschaftsausdruckssprache-Datei. Dies ist ideal für Prozessoren, die EL aktiviert haben, aber nicht für solche, bei denen dies nicht der Fall ist.
  • Manipulieren Sie den XML-Fluss und überschreiben Sie die Host-, Port- und anderen Konfigurationen. Ein bisschen besorgt über versehentliche Verfälschung der XML und wie portabel wird dies über NIFI-Versionen sein.

Alle Tipps oder Vorschläge würden sehr geschätzt werden. Es gibt eine gute Chance, dass es eine offensichtliche Lösung gibt, die wir vernachlässigt haben.

EDIT:

Wir mit den Vorlagen werden die Byran vorgeschlagen. Sie werden definitiv unseren Anforderungen entsprechen und eine gute Möglichkeit für uns sein, Konfigurationen in zahlreichen Umgebungen zu steuern.

https://github.com/aperepel/nifi-api-deploy

+0

Hallo, ich bin der Schöpfer dieses Projekts nifi-api-deploy. Ich habe Verbesserungen vorgenommen, basierend auf dem Feedback und wie die Leute es benutzen wollen. Fühlen Sie sich frei zu engagieren und geben Sie Feedback und/oder Anfragen. – andrew

Antwort

6

Diese Diskussion kommt häufig auf, und es ist hier auf jeden Fall Raum für Verbesserungen ...

Sie sind richtig, dass zur Zeit ein Ansatz ist, umweltbezogene Eigenschaftswerte in den bootstrap.conf zu extrahieren, und referenzieren Sie sie dann über die Ausdrucksprache, damit die Datei flow.xml.gz von einer Umgebung in die andere verschoben werden kann. Wie Sie bereits erwähnt haben, funktioniert das nur gut mit Eigenschaften, die Ausdrücke unterstützen.

Um diese in Zukunft einfacher zu machen, gibt es eine Funktion Vorschlag für eine Idee, eine Variable Registry genannt:

https://cwiki.apache.org/confluence/display/NIFI/Variable+Registry

Ein interessanter Ansatz, den Sie an unter Verwendung von Vorlagen suchen möchten.Es gibt ein GitHub Projekt, das dabei helfen verwendet werden können:

https://github.com/aperepel/nifi-api-deploy

+0

Wie immer, schätzen Sie Ihre Eingabe, Bryan. Ich werde mir die Vorlagen ansehen. – scarpacci

+0

Hallo Bryan, ich habe mir das nifi-api-deploy-Programm mit @scarpacci angesehen und es scheint definitiv auf dem richtigen Weg zu sein. Wir haben ziemlich komplexe Abläufe, und der Code, wie er geschrieben wurde, schien nicht gut zu funktionieren, wenn Prozessoren/Verbindungen in der Prozessorgruppe auf der Stammebene oder den Controllern nicht eingesetzt wurden. Das manuelle Löschen und erneute Bereitstellen schien in Ordnung zu sein. Es scheint auch, Prozessorgruppen automatisch zu starten, selbst wenn alle enthaltenen Prozessoren als angehalten markiert sind. –

+0

Hi Josh, froh, dass es scheint auf dem richtigen Weg zu sein für das, was Sie tun wollen. Was die Funktionalität angeht, wird das Projekt von einem Community-Mitglied verwaltet. Wenn Sie also denken, dass etwas nicht richtig funktioniert, ist die beste Option wahrscheinlich, ein Problem über die GitHub-Seite zu stellen. Ich weiß, dass es momentan ein paar offene Probleme gibt Diskussionen gehen. Der Teil über automatisch gestartete Prozessgruppen hört sich an wie etwas, das angesprochen werden sollte. –

2

Sie in diesem Beitrag loook kann automating NIFI template deployment

Für Nifi Vorlagenbereitstellung zu automatisieren, gibt es ein Werkzeug, das gut funktioniert: https://github.com/hermannpencole/nifi-config

  • Bereiten Sie Ihre nifi Entwicklung

    1. Erstellen Sie eine Vorlage auf nifi
    2. und herunterladen
    3. Extrac eine Beispielkonfiguration mit den Werkzeugen
  • es auf die Produktion bereitstellen
    1. undeploy die alte Version mit den Werkzeugen
    2. die Bereitstellung Schablone mit den Werkzeugen
    3. aktualisieren Sie die Produktionskonfiguration mit den Werkzeugen
Verwandte Themen