苦手だったデータベースにのめり込んだきっかけ
学生時代、情報系を専攻していた藤井。就職活動では、IT技術の研究開発を志望していました。特にこだわっていたのは開発現場に近い環境で技術を追求すること。技術論文を書き上げるよりも、自らの成果を広く世の中に利用してもらいたいと考えたのです。
その希望を実現するべく、2004年にNTTデータに入社。技術者としての第一歩は、PostgreSQLをベースに複数台のデータベースを並列分散処理するプロダクトの開発プロジェクトでした。ここで彼は、分散トランザクション機能の開発を担当することに。当時はLinuxがトレンド技術として注目されていた時期で、藤井もオープンソースには強い関心を持っていましたが、データベースに関しては苦手意識があったと振り返ります。
実は学生時代、情報系で唯一単位を落としたのがデータベースの講義でした (苦笑)。あの頃は『そもそもなぜ必要なのか?』もよく理解していなかったですし、利用者として扱うよりも前に、データベースそのものを作ることになるとは想像もしていませんでした。今思えば、かなり特殊な経験だったと思いますね。
ですから最初は、先輩のフォローを受けながらとにかく一つひとつタスクをこなしていきました。そして時にはPostgreSQLのソースコードも読み込んで試行錯誤するうちに、どんどん面白さが分かっていったんです。
藤井が初めての業務を通して体感した魅力。そのキーワードは「オープン」でした。
PostgreSQLはソースコードも、開発プロセスも、技術者たちのコミュニティも、あらゆる面でオープンになっている。それがやはり面白さのひとつですね。オープンだからこそ、世界中の技術者がひとつのソフトウェアを一緒に開発でき、そのおかげで誰かが書いたソースコードのきれいさに触れたり、ユニークな考え方に刺激されたり。自分の中には無かった多種多様な経験や知見が得られました。
『同じ機能なのにこんな捉え方もあるんだ』と驚かされることも珍しくありませんし、実装の仕方も千差万別。おまけに、その実装方法を選んだ理由をコミュニティ内のディスカッションで知ることもできる。常に発見や気づきが尽きないので本当に面白いですし、自分も彼らのような技術者になりたいと強く思いましたね。
PostgreSQLの適用課題を解決したい
藤井のキャリアに転機が訪れたのは、入社3年目のこと。NTTグループでオープンソース技術に精通するNTT OSSセンタのメンバーとなり、PostgreSQLを中心とする研究開発やサポート対応に取り組むことになったのです。
当時のPostgreSQLは商用データベースに比べ、コスト面では優位性を持っていたものの、厳しい要件の案件ではなかなか採用に至りませんでした。特に適用課題となっていたのが、レプリケーション機能が非搭載であった点です。
レプリケーションとは、複数台のサーバにデータベースを自動的に複製する技術。この機能があれば、たとえ1台のサーバが故障しても別サーバに切り替えて処理を継続できるなど、データベースの安定性や可用性を担保する重要な存在です。
当時のコミュニティでは用途に合わせて様々なレプリケーションツールが開発されており、さながら群雄割拠の状況でした。ただそれらのプロダクトはいつまで使えるか分かりませんし、デファクトスタンダードとなるツールが必要だと感じていました。
藤井はこの課題を解決しようと、同僚の力を借りながらレプリケーション機能の開発に着手します。しかし、その難易度は極めて高く、一朝一夕に成功とはいきません。それでもなんとかプロトタイプを完成させ、PostgreSQLのカンファレンスで講演を行った結果、大きな評価を獲得。コミュニティはレプリケーション機能の搭載を宣言し、藤井のアイデアを有力候補のひとつに上げました。
当時つくったプロトタイプはバグもいっぱいありましたし、本当に“当たって砕けろ”のつもりで提案していました。ですから嬉しい反面、『まさか通るとは……』という感覚でしたね。それに一筋縄ではいかない開発だと分かっていたので、ここから苦難の道が始まるなとも思っていました(笑)。
誰もが安心して使用できるレプリケーション機能を目指して、藤井を中心とする開発チームは1年、2年とパッチ作成と修正を繰り返しました。コミュニティや社内のレビューをもとに、機能のアーキテクチャや設計を一から見直すなど、振り出しに戻ることも度々あったと言います。
それでも挑戦し続けられたのは、NTTデータやNTT OSSセンタという会社がオープンソース開発の重要性を深く理解してくれていたおかげです。当社は、たとえすぐに成果が出なくても、きちんと給与を得られて開発に集中できる環境を整えてくれます。
それに開発の成果を展開できる案件が社内にいくらでもあり、プロジェクトの現場からのフィードバックが次のブラッシュアップやさらなる“開発ネタ”の発見にもつながっていく。こうした好循環の中で研究開発できたことが、大きな後押しになりましたね。
そしてついに藤井の努力が実を結びます。2010年、PostgreSQL 9.0のリリース時にレプリケーション機能が実装されたのです。藤井はNTTデータに復帰後も、機能拡張や品質改善を継続。その結果、昨今では官公庁の大規模システム開発や金融系のプロジェクトといったミッションクリティカルな案件でもPostgreSQLを用いたデータベースが採用されるように。藤井たちが生み出した成果はいま、日本中、いや世界中の技術革新に貢献しています。
ADP制度の新設が、技術者の道を邁進する後押しになった
2013年、藤井は継続的な貢献が認められ、PostgreSQLのコミッタ(主要開発者)に就任します。コミッタはプログラムを書き換える権限を持つ、いわばオープンソース開発のリーダー的存在。この世界的な評価は、藤井のキャリア観にも大きな影響を与えました。
海外には50代60代でもバリバリとコードを書いている技術者もいます。私もせっかくデータベースのスペシャリストとして認められたのだから、ぜひこの特性を伸ばし続けていきたい、技術者の道を突き進みたいと強く思うようになったんです。
こうした中、NTTデータは2018年10月より、AI、IoT、クラウドなど先進技術領域やコンサルティング領域で卓越した専門性を有する人材のキャリア形成を支援するAdvanced Professional(ADP)制度を新設しました。現在、藤井はこの制度の適用者であるADP社員として、技術特化のキャリアパスを実現しています。
ADP社員への転向に迷いはありませんでした。以前から研究開発の成果などもKPIに組み込まれていたので、評価軸に大きな変化はありませんが、会社を代表する技術スペシャリストとしてのマインドは一層強くなりました。
データベース関連のイベントやカンファレンスには積極的に顔を出し、『NTTデータはこんなこともやっています』と技術力をアピールし、ブランディングに貢献するのも大事な仕事になっていますね。
(参考動画)デモで解説!K8sでPostgreSQL as a Serviceを実現するときの落とし穴と乗り越え方!
NTTデータ テクノロジーカンファレンス2021にて、藤井の講演映像です。Kubernetes上でPostgreSQLを運用管理するためのOperatorが複数リリースされています。本講演では、それらのOperatorを使ってPostgreSQL as a Service (PostgreSQLのマネージドサービス) を実現する際の落とし穴と対応方法についてデモとともに紹介しています。
藤井が所属する先進コンピューティング技術センタには、ADP社員を含めた多種多様なスペシャリストが集っています。その技術領域はOS、Javaのオープンソースである「OpenJDK」、並列分散処理技術「Hadoop」「Spark」、量子コンピューティングなど実に多彩です。こうした同僚に囲まれる環境は、研究開発以外にも大いに役立つと言います。
高難易度の案件のサポートやトラブル対応では、いかに信頼性の高い情報を素早く入手できるかがポイントになります。
その点、私たちのセンタでは各分野の専門家にソースコードレベルで相談ができますし、しかも全員がさまざまな現場課題に対処してきた実績と対応力を持っているので、本当に頼りになります。
現在、藤井はPostgreSQLをベースとするクラウド技術の研究開発に注力しています。目指すは、クラウドサービスの水面下に沈む技術の獲得や高度な社会インフラ基盤の実現。さらに後進の育成にも取り組み、技術力・技術への影響力・発信力など、あらゆる観点で「Global Top 5」を実現することが、これからの目標だと言います。
NTTデータならば、常に開発現場と隣り合わせですので、どんな技術領域であっても、より深みにはまれるだけの難しい課題がたくさん出てきます。
私自身、PostgreSQLは触れれば触れるほど、まだまだ洗練できる余地を感じています。これから経験者採用で入社される方も、とことん自分の技術を追求したいとお考えでしたら、きっとやりがいある職場になるはずですよ。