9

NiFi のドキュメントで定義されているように、「継続的な改善は本番環境で行われる」ことを認識しています。したがって、これは従来の開発ツールとして使用するのには適していません。ただし、私が取り組んでいるプロジェクトでは、これが使用されるツールであることが決定されているため、いくつかの問題があることがわかっているため、これのメリットについては議論したくありません.

たとえば、既存の環境 (ステージングから本番環境) に変更をプッシュし、宛先にライブ編集があった場合、それらは上書きされます。そこで、開発ライフサイクルをどのように体系化するかについて質問があります。

  • 複数の開発者が並行して行った変更をマージ (エクスポートされた xml テンプレート ファイルをマージ) することはできますか? 重要な変更をマージするのは難しいと思いますが、試したことはありません。
  • バージョン管理の変更を管理する方法 構成全体をテンプレートとしてエクスポートし、それをバージョン管理にチェックインできると思いますか?
  • フローを別のサーバーにデプロイする方法は? ストック NiFi デプロイメントをデプロイしてから、NiFi REST API を使用して、エクスポートしたテンプレートから (上記のように) 更新することはできますか?
  • 構成が異なる可能性がある別の環境への展開を管理する方法は? テンプレート XML ファイルを更新する必要がありますか? または、Zookeeper などから動的に取得できますか?
4

1 に答える 1

18

あなたが引用したアイテムの元の著者であり、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

于 2016-06-21T02:00:17.990 に答える