PR
連載 :
  OSSルーキーズ

Apache NiFiのコミッターに聞く「OSSコミッター」になる秘訣

2017年8月29日(火)
松下 康之
ビッグデータ処理に必要なデータインジェクションを提供するApache NiFiのコミッターに聞いたOSSコミッターへの道とNiFiの未来とは。

Apache NiFiはビッグデータプロセッシングにおけるデータをフィードする役割を果たすソフトウェアとして注目が集まっている。今回、そのApache NiFiのコミッターとして開発を進めているエンジニアがホートンワークスジャパン株式会社に在籍しているということで、OSSのコミッターとして活躍する秘訣などを聞いた。今回のインタビューにはホートンワークスジャパン株式会社ソフトウェアデベロッパーの河村康爾氏、マーケティングディレクターの北瀬公彦氏に参加して頂いた。

マーケティングディレクターの北瀬氏(左)とソフトウェアデベロッパーの河村氏(右)

ーーNiFiの話を聞く前にまずはホートンワークスが何をやっているのかを教えてください。

北瀬:元々はYahoo!でビッグデータをやっていた人間が立ち上げた会社です。会社としてはHortonworks Data Platform(HDP)というHadoopをベースにした製品と、今回のApache NiFiなどをベースにしたHortonworks Data Flow(HDF)の大きく2つの製品を持っています。それにサポートやトレーニング、導入支援サービスを提供する、というのがビジネスモデルです。

Apache NiFiに関しては、NSA(アメリカ国家安全保障局)で開発されていたものが、2014年にオープンソースソフトウェアとして公開されました。その後に開発を引き継いだOnyaraという会社がスピンオフとして設立されて、そのOnyaraをHortonworksが2015年に買収したという流れになります。ホートンワークスでは、そのApache NiFiにStormやKafkaをStreamingの機能として追加して、セキュリティや管理ツールも含めてHDFとして製品化したということです。

ーーでは河村さんの自己紹介をお願いします。

NiFiコミッターの河村氏

河村:私はいまHortonworksでデベロッパー、つまりApache NiFiのコミッターとして仕事をしています。NiFiに関わった経緯ですが、ホートンワークスに入る前はCouchbaseというNoSQLのソフトウェアを販売している会社に所属してソリューションエンジニアとして仕事をしていました。その頃、NiFiにはMongoDBにデータを渡す機能はあるのにCouchbaseには無かったんです。なのでCouchbaseに対応するコードを書いてNiFiのコミュニティに送ったらそれが採用されて、最終的にマージされたのです。それがきっかけでNiFiにコントリビューションするようになりました。

河村氏のPull Requestに対するGitHubでのやり取りはこちらを参照:https://github.com/apache/nifi/pull/96

その後にNiFiのPMC(Project Management Committee)からコミッターにならないか? という招待がきてそれを受けてNiFiのコミッターになりました。実際にはNiFiのコミッターとして開発を行いながら、日本だけではなく世界中のお客さんからの問い合わせに対応したりとかもやっています。

ーーApache Software Foundation(ASF)にはApache Wayというコミッターとして行動する上の行動規範のようなものがありますが、それはどうやって習ったのですか?

河村:Apache Wayについては習ったという記憶はなくて、コミュニティで活動しているうちに「ああ、こういうことか」と体験する、という感じですね。特にメリトクラシー、つまり実力主義というのがあって、これは所属企業とか肩書ではなくてコードそのものの良さを評価するということです。そういう文化を実際にコミュニティの中で誰かのプルリクエストに対するコメントなどを読んで実地で経験していく、ということだと思います。

Apache Wayに関してはこの記事の後半を参照:https://thinkit.co.jp/article/12057

ーーコミッターになるにはある程度、貢献を続けてPMCからの招待を待つということですね。その際にやっぱり英語によるコミュニケーションは必須だと思いますが、河村さんはどうやって英語を覚えたのですか?

河村:Couchbaseの前に働いていたインテグレータが横浜だったので、その当時からバーとかに行って外国人に話しかけたり、使ってるPCを全部英語モードにして強制的に英語に触れる、慣れると言うやり方ですね。

ーーとにかく英語まみれになる、みたいな?北瀬さんはどうやって英語を覚えたのですか?

北瀬:私の場合は、自分から英語に慣れるというよりも環境的に英語を使わないといけないような状況になっていたことが大きいですね。上司も外人、同僚も部下も外人という状況だったので、否応がなく、英語を使わないと仕事ができないという。

マーケティングディレクターの北瀬氏

ーーオープンソースソフトウェア系のエンジニアで英語の読み書きと聴くのはできるけど、喋れないという人が多いと思いますが、それに関しては?

河村:日本人はどうしても文法的に間違っていないかとか、発音がとか、そういうことに先に気が行っちゃうんですけど、今の仕事で関わっている非英語圏の人の英語とか実はそうとうメチャクチャですよ(笑)。悩む前にとにかく聞いちゃう、書いちゃうというのが大事なのかもしれませんね。「これはどうやってインストールするんだ?」っていう質問が来たりしますけど、「いや、まずドキュメント読もうよ」って(笑)。

ーーちょっと話をNiFiに戻します。NiFi自体は昔からあるETL(Extract/Transform/Load)ツールのようにも見えますが、これが出てきた理由やユースケースについて教えてください。

河村:確かにETLツールと同じようなことをやっているかもしれませんが、ETLだとどちらかというとバッチで定期的にデータを持ってくる使い方だと思います。NiFiはもっと現代のニーズ、つまりデータがストリームのようにやってくる、それをいちいち溜めずにリアルタイム的に処理を行う機能を実現しています。そのために分散処理も行いますし、バックプレッシャー(背圧制御)を実装していたり、IoTのように膨大なデータを処理するために必要な機能を備えているということですね。

北瀬:具体的なユースケースだとデータセンター間でデータを移行するような使い方もありますし、クラウドとオンプレミスでデータをやり取りするために使う場合もあります。エンジニアではない人たちがプログラミングを行わなくてもデータとプロセスをGUIで定義して実行する使い方もありますね。

河村:NiFiはビッグデータの特徴である3つのV(量/Volume、速度/Velocity、多様性/Variety)の中でも多様性、つまりあまりカチッと整形されたデータではなくても様々なデータ

を処理できる部分が通常のETLツールとは大きく違うところかなと思います。

北瀬:もともとNiFiはNiagrafilesという名前だったんですけど、それがNiFiになったんです。つまりナイアガラの滝のようにドーッと降りてくる大量の水を処理するという発想です。

ーーナイアガラファイルズだからNiFiなんですか!それが名前の由来でロゴもそういえばでっかい水滴のようになっているのはそういうことですか!

北瀬:そうです。

ーーでは今後のNiFiの計画について教えてください。

河村:NiFiはGUIを使ってデータとプロセスを定義するんですが、開発の段階から本番環境に移行する作業が必ず必要になります。その時にGUIの設定をコードとして共有する、つまりそのフロー定義を「アズ・ア・コード」として管理するツールがあります。それがRegistryというNiFiのサブプロジェクトとして開発が進んでいます。

他にも大量のデータがどこから来てどこに行くのか、それをコンプライアンスの観点で追跡可能にするApache Atlasも開発が進んでいます。これを使うと、あるデータの大元がどこから来たのかを企業のガバナンスに合わせて管理したいというニーズに対応できるようになります。

ーーNiFiのようにGUIの機能を持っているとどうしてもローカライズという話題が出てくると思うのですが、それに関しては?

河村:Apache Software Foundationの中ではあまりInternationalizationは話題にならなくて、どちらかといえばそういう経験を持った人がPMCにいるかどうかによってだいぶ変わりますね。NiFiに関して言えば最近は中国語GUIのためのコードを開発している人がいて、その人が多言語化に対応できるように今一生懸命、コードを書いているという状況です。

北瀬:私の経験では、ちゃんと多言語化するリソースを切り出してそれを使ってローカライズする方式にしないとあとあと苦労するんですよね。CloudStackの時にその辺は経験しました。なので今のNiFiのやっているリソースをちゃんと切り出してやる方式は筋が良いと思います。

河村:ただ、どこまでそういうユーザーインターフェースのローカライズが必要なのか?に関しては色んな意見があると思います。英語でも良いという人もいるでしょうし。

Apache NiFiはNSAの中で開発されていた時代から、Onyara、さらにHortonworksに移って開発が継続されている。Stableリリースのバージョン番号は(インタビュー時点で)1.1.2とまだ若いソフトウェアのように見えるが、成熟したシステムといえるだろう。これからより多くのデータ種類への対応、データのガバナンスや履歴のチェックなど、データを企業の中の重要な資源として活用するために必要な機能が順次、用意されていくと思われる。ビッグデータを検討中の企業なら要チェックといえるだろう。

フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。

連載バックナンバー

データ解析インタビュー

Apache NiFiのコミッターに聞く「OSSコミッター」になる秘訣

2017/8/29
ビッグデータ処理に必要なデータインジェクションを提供するApache NiFiのコミッターに聞いたOSSコミッターへの道とNiFiの未来とは。
システム開発インタビュー

パイプラインベースのCI/CDツール、Concourseとは?

2017/3/21
CI/CDにおける「Jenkinsおじさん問題」を解決するConcourseとは? 開発をリードするPivotalのエバンジェリストにインタビューし、その特徴や背景を聞いた。

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

他にもこの記事が読まれています