2016-06-20 27 views
8

NiFiの場合、ドキュメントで定義されているように、"継続的な改善が製品で発生します"したがって、これは伝統的な開発ツールとして使用することはできません。しかし、私が取り組んでいるプロジェクトでは、これが私たちが使用するツールであると判断されているので、いくつかの問題があることを認識して、これのメリットについて議論しないでください。Apache NiFiの開発ライフサイクル

たとえば、変更を既存の環境(ステージングからプロダクション)にプッシュして、ターゲットにライブ編集があった場合、それらは上書きされます。開発のライフサイクルをどのように整理するかについての質問があります。

  • それは、マージすることが可能である(エクスポートされたXMLテンプレートファイルをマージ)並行して複数の開発者によって行われたを変更?私は重大な変更を統合するのは難しいかもしれないが、それを試みていないと推測している。
  • どのようにを管理すると、バージョン管理が変更されますか?私はテンプレートとしてあなたの全体の設定をエクスポートし、それをバージョンコントロールにチェックできると仮定していますか?
  • フローを別のサーバーに展開しますか? NiFi REST APIを使用して、株式NiFiデプロイメントをデプロイしてから、エクスポートされたテンプレートから更新することはできますか?
  • 異なるコンフィグレーションを持つ異なる環境にデプロイする方法?テンプレートXMLファイルを更新する必要がありますか?あるいは、私はZookeeperのようなものから動的に取り込むことができますか?

答えて

13

引用した項目の元の著者とApache NiFi PMCのメンバーは、あなたが素晴らしい質問をしていることから始めて、あなたがどこから来ているのかを知ることができます。我々はおそらくあなたが上げている懸念をよりよく反映するために、導入文書を改善すべきです。

現在の方法は、フローのテンプレートを作成し、それをバージョン管理に提出することです。また、NiFiのREST APIと相互作用するスクリプトを使用して、これらのテンプレートの配布を自動化するケースもあります。しかし、開発者がデプロイされるものを正確に記述しているかどうか、またはこれらの要素を一緒に配置しなければならない操作に焦点を絞った人物であるかどうかに関わらず、データフロー管理の仕事を簡単にする必要があります。

  1. フロー[1]の管理とバージョン管理は、複数のクラスタと環境[2]間で共有しやすく、集中管理する必要があります。
  2. 環境固有の値が特定の環境に簡単にマッピングされるようにする必要がありますが、テンプレートは移植性があります[3]。
  3. マルチユーザー/マルチテナントのユーザーエクスペリエンスをはるかに直感的で自然にする必要があります[4]。

1および2の要素は、今後の1.0リリースに含まれ、3のアイテムは、今後のリリースで完全にカバーされます。マルチデベロッパーの場合、その間に自分のローカルインスタンスをフローのユニットテストの場として扱い、共有のステージング環境やプロダクション環境を使用することが理にかなっていると思います。重要なことは、多くのフローとNiFiのアプローチでは、実行されているフローテンプレートの複数のインスタンスを実行して、それぞれがデータのライブフィードを与えられることです。そのフローの結果/出力は、実際にどこかで配信されるか、または単に接地されるように配線することができます。このようにして、Gitのようなソース管理の分岐の精神的モデルによく似ています。あなたは、「生産」と考えているものと、グラフ上のどのフローを実行中の機能ブランチにするかを選択できます。もっと伝統的なアプローチから来ている人にとっては、これは明白ではないので、これを記述して実証するためにはもっと多くのことを行う必要があります。しかし、より伝統的なアプローチもサポートする必要があります。これは、私がリンクした機能提案のいくつかが可能にするものです。

[1] https://cwiki.apache.org/confluence/display/NIFI/Configuration+Management+of+Flows

[2] https://cwiki.apache.org/confluence/display/NIFI/Extension+Registry

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

[4] https://cwiki.apache.org/confluence/display/NIFI/Multi-Tentant+Dataflowこれは[1]、[2]及び[3]であるように見える

+1

まだ実装されていません。現在のリリース版で述べられている問題をどのように解決するかについての最新情報を教えてください。私は今、人々はちょうどテンプレートをインポートして輸出していると思う。それにはいくつかの欠点がある。実際の更新オプションはありません。古いバージョンを削除して新しいバージョンを読み込むことができます。 –

+0

本当に正しい更新オプションはありません(既存のプロセスグループ用)。今日の一般的なパターンは、プロセス・グループの新しいバージョンをプッシュし、そのグループにフィードする接続を変更することです。これは、いくつかのREST呼び出しをプログラムで実行することで実行できます。フロー管理、プロセスグループ変数、バージョン管理されたコンポーネント用のapache nifiレジストリは、すべて最新のリリースでは後者の2つで順調に進んでいます。次のリリースでは、バージョン管理されたフローに統合されたapache nifiレジストリがありそうです。真のアップデート!非常に涼しいはずです。 –

関連する問題