原点は「ユーザーではなく、開発側からOSSに携わりたい」という想い
大学院でコンピュータサイエンスを専攻し、並列分散処理技術の研究に励んでいた猿田。さまざまなテクノロジーに触れる中で、特に魅力を感じていたのがオープンソースの世界でした。公開されているソースコードを読み解き、複雑なソフトウェアの仕組みを理解することが、「とにかく楽しかったんですよね」と当時を振り返ります。
就職活動では、オープンソースを単にユーザーとして利用するのではなく、研究開発や情報発信する技術者になりたいと考え、NTTデータへの入社を決めました。
当時は採用面接、内定者懇親会、配属面談と事あるごとに『OSSに携わりたい』と言い続けていましたね。その結果、入社後すぐにシステム基盤を支えるOSSの目利きや技術サポートを行う部署に配属されました。
そして入社1年目の2009年秋、猿田は経済産業省様から委託された実証事業に参画することに。この実証事業で、彼は新人ながらオープンソースの並列分散処理技術「Apache Hadoop」を活用したアプリケーション開発における性能検証を担当します。
Hadoopの特徴は、複数の計算機を用いて一台では不可能な大規模なデータを格納・高速に処理できる点にあります。しかし当時はまだビッグデータ活用の黎明期。国内での大規模な商用利用はほぼ事例がなく、可用性や運用性などさまざまな調査・検証が求められました。
Hadoopに採用されている技術の一部は、研究レベルでは古くから存在するアイデアでした。しかし、当時のコモディティなハードウェアでは実現が難しかったんですね。
それが2009年頃にはハードウェアも進化し、特別なハードウェアを用いなくてもHadoopのような並列分散処理がリーズナブルに実現できるようになりました。並列分散処理のハードルをグッと下げ、より身近にしてくれるテクノロジーとして、非常に魅力を感じました。
猿田は、この実証事業を通して当社のシステムインテグレーションにも使用できるクオリティだと実感。それからは、大規模データの蓄積・分析を希望するお客様のシステム開発などでHadoopの活用推進に取り組んでいきました。
当初はシンプルな使い方に始まり、技術の普及が進むと、次第に並列分散処理に対する要求が高度化・複雑化していきます。すると、用途によってデータの処理効率に課題が生まれるケースが発生。Hadoopを補完するような新たな道具が求められるようになりました。猿田は無数に存在するOSSの中からリサーチを重ねた結果、当時リリース間もないソフトウェアに着目します。それが「Apache Spark」との出会いでした。
日本企業初となる「Spark」の主要開発者に就任
猿田が求めていたのは、これまで以上にデータのバッチ処理を高速化できる技術でした。その点、Sparkは複雑な業務処理を少ないジョブ数で実現し、機械学習に代表される「同じデータを繰り返し処理するケース」でも効率性に優れていました。
Sparkはまずコンセプトが優れていると思いました。すごく洗練された並列分散処理基盤だなと。ただし、どんなに先進的なOSSも成熟度という面では粗削りなものも少なくありません。
我々がお客様のシステムインテグレーションで活用するためには、やはり信頼性や安定性の検証が必要不可欠。システム導入後のサポートを考えれば、デバッガビリティ(デバッグのしやすさ)も気になります。
そうした要素を精査していくと、このまま活用することは難しいと判断しました。それならば我々も開発コミュニティに協力し、Sparkをよりいいものにしていこうと開発に携わるようになったのです。
これ以降、猿田はコミュニティの開発者と議論しながら不具合の修正や機能開発を積極的に行っていきました。そしてSparkの完成度を徐々に高め、システム開発での活用推進にも注力。さらに、さまざまなお客様にご利用いただく中で見えてきた技術課題をもとに、さらなるブラッシュアップに努めました。中でも大きな成果のひとつが、デバッグツール「タイムラインビュー」の開発です。
技術面のサポートを行っていると並列分散処理のデバッグってかなり大変なんです。
データ処理の際に計算機がバラバラに動くわけですから、『いつどの計算機で何が起こったか』を俯瞰的に把握できるツールがあれば、もっとデバッグが楽になるなと思いました。
そこでデータの動きを各計算機上でどんな処理を行なっているか時系列で可視化できる道具をつくってSparkに寄贈したところ、非常に高く評価していただきました。
この貢献が決め手のひとつとなり、2015年に猿田はSparkの「コミッタ(主要開発者)」に就任。日本企業からは初選出という快挙でした。
さらに2021年には開発プロジェクトの運営を担う「プロジェクトマネジメント委員会メンバ」に選出されます。このメンバは、就任時点で世界でわずか52名のみ。文字通り、並列分散処理技術やSpark開発における世界的な評価を獲得したのです。
自分の実力ってなかなか分からないですよね。社内では一定のスペシャリティがあったとしても、『外から見るとどのようなレベルか?』を推し量る方法はほとんどありません。
それがコミッタやプロジェクト委員会メンバに選ばれたことで、客観的な実力や継続的に取り組んできた成果を証明できた。これは大きな手ごたえを感じました。
現在、猿田が開発した機能は世界中で活用されています。あるプロダクトの展示イベントに参加した際には、海外ベンチャーのデモ講演でタイムラインビューが用いられていたケースも。ツールの作者として自己紹介すると大歓迎されたそうです。
技術をとことん追求できるうえに、それが結果としてお客様や世の中の役に立つことは、この仕事ならではのやりがいだと思います。それに自分がつくったものが世界中で使われていると分かった時は、やっぱり嬉しいですね。
技術追求を加速させてくれた、ADP社員への転向
着実に実績を積み重ねてきた猿田ですが、自身のキャリアについてひとつの悩みを抱えていました。
入社以来ずっと、『技術者としての道を進み続けたい』と考えていましたが、以前の当社では年次を重ねれば管理職にステップアップするのが一般的なパスでした。
しかし、2019年にAdvanced Professional(ADP)制度が創設され、技術者としてキャリアアップする新たな選択肢ができ、私の専門領域でも募集が行われることに。自分自身NTTデータで技術を追求していきたいと思っていたので、すぐにADPに挑戦しようと決めましたね。
希望が叶い、猿田はADP制度適用者第1号のひとりに。いわば、彼の軌跡は新たなキャリアパスのロールモデルそのもの。前例のない道を進むことについて、当時の心境を振り返ります。
たしかにADP社員に期待される成果は大きいです。ただこれは、純粋に技術者として高い目標を設定できるようになったとも言えますので、私はプラスに捉えています。『どうしたら達成できるか?』とマインドも切り替わり、これまで以上に技術に専念できるようになりましたから。
時代は進み、いまやビッグデータの活用はあらゆる業界・業種でスタンダードになっています。AIやクラウド技術の普及と進化も留まるところを知りません。猿田は、今後も社会構造の変革に合わせて並列分散処理への要求はさらに高度化するだろうと捉えています。
並列分散処理分野のOSSも様々なものが出揃ってきましたが、データの使い方や溜め方によって足りないピースが浮き彫りになるんじゃないかなと思います。たとえば今注目しているのは『地理分散データベース』という技術です。昨今モバイル決済が普及してきていますが、世界的にはこうした大規模な決済インフラを支える技術として活用されているケースもあります
これは簡単に言うと、複数の拠点・地域に跨る分散システムとして実現されたデータベースで、計算機の追加で性能や容量がスケール可能です。またデータを複製して複数の計算機に格納しますので、特定の拠点で障害が起こっても、他の拠点がデータを引き継げるため、災害復旧などの面でもメリットが大きいとされています。
これまではクラウドベンダなどの商用サービスが中心でしたが、ここ数年でようやくTiDBやCockroachDB、YugabyteDBといった有用なOSSが登場してきており、私も目利きを進めているところです。
猿田はSparkの技術者として世界的な評価を得ながらも、今後も「次の技術」を深掘りし続けていきたいと言います。
もちろん今後もSparkの普及や進化、情報発信には貢献していきます。ただ、ずっと“Sparkの人”でいるつもりはありません(笑)。もともとNTTデータへの入社もOSSに魅力を感じたことがスタートでしたし、新しいビジネスやイノベーションを作り出す可能性を秘めたOSSを追い続けていくのが、私の目標です。
それに日本ではユーザーとしてOSSを扱う方は多いのですが、まだまだ開発に携わる技術者は少ないと感じています。ですから、開発に参加する楽しさや意義をもっと伝えて、開発に参画する人を増やしていきたいですね。