RGFエグゼクティブサーチジャパン(以下「RGF」)の採用支援を通じて、Web系企業からNECにご転職、キャリアアップを実現されたソフトウェアエンジニアの小林様。上司である同社の上席研究員の北野様との対談を通して、Kubernetesを中核としたプラットフォーム、AI時代のAIスーパーコンピュータのあるべき姿、一緒に働きたい人物像について対談頂きました。
「KubernetesのメンテナがNECに、新天地に求めたのはプラットフォーム開発へのこだわり」
――― NEC グローバルイノベーション戦略統括部 深層学習基盤開発グループ
ソフトウェアエンジニア 小林 優吾 様
「先進的なAIのプラットフォームエンジニアリングで、社会価値を創造」
――― NEC グローバルイノベーション戦略統括部 深層学習基盤開発グループ
上席研究員 北野 貴稔 様
― RGF萩口:本日はよろしくお願いします。最初に小林様のこれまでのキャリアについて教えてください。
NEC小林様:
よろしくお願いします。新卒としてWeb業界の会社に入社し、そこでSite Reliability Engineer (SRE)として、Kubernetes (k8s) を用いた大規模なプラットフォームの開発運用などを行ってきています。そして、2024年02月にKubernetes関連プロジェクトであるkustomize(※1) のメンテナ (※2)に就任し、2024年6月にNECに入社しました。
(※1) Kubernetesの構成ファイルをテンプレート化せずに管理するためのツール
(※2) オープンソースソフトウェアなどの複数の組織が開発に参加するソフトウェア開発において、プロジェクトの健全性に対して責任を持つプロジェクト全体の維持管理を担当する開発者のこと
― NEC北野様:KubernetesのSREとしてのやりがいは感じていましたか?
NEC小林様:
前職では社内のKubernetes as a Serviceの運用チームでSREをやっており、大規模システムならではのやりがいを感じていました。1000以上のKubernetesクラスタが稼動している日本国内でも有数の規模の環境で、プラットフォームシステムを運用的にスケールさせるといった高度な技術的面白さと、また社内でも有数の規模のプラットフォームであり会社の主力な事業であるアプリケーションも動いていたため社内での重要性もあり、非常にやりがいのある仕事でした。
― NEC北野様:小林さんは、Kubernetes関連で非常に多くの発表をされていますよね。Kubernetesの技術開発に熱中するようになったきっかけは何かあるのですか?
NEC小林様:
Kubernetesにはreconcile-loopという概念があります。私はこれを非常に汎用的かつ実用的な分散システムの実装だと感じ、Kubernetesに強い興味を持ち始めました。それまでインフラを構築していた経験から、Shell Scriptやコマンド実行などのトリガーによる変更処理を行うInfrastructure as Code (IaC) の不確実性について不満を持っており、実用的な面でもKubernetesに魅力を感じました。また、Desired State(望ましい状態)を管理する際、大規模なシステムでは一回のreconcile処理が長くなり、システム全体の結果整合性が破綻する可能性が問題となります。この点について、Kubernetesは複数のコントローラによる多段処理を行うことで、一回のreconcile処理を短時間で終わらせるよう設計されており、そのエレガントなデザインに感銘を受け、ますます好きになりました。
Containerのエフェメラルな性質とreconcile-loopのように現在の状態に依存しないデザインは、複雑になりがちでありながら停止することが許されない現代のシステム運用に必要な思想だと感じています。
NEC北野様:
Kubernetesのreconcile-loopは、必ず何かが故障している大規模な分散システムにおける設計としては面白いですよね。昔、複雑な状態遷移のある分散システムでステートマシンコンパイラを設計し実装していたことがあり、システムの状態をHealingする概念をそのまま設計に落とし込んでいるところは面白いなと感じますね。
― NEC北野様:Kubernetes関連でいうと、小林さんは非常に多くのプロジェクトで使われているkustomizeのメンテナもされていますよね。kustomizeのメンテナになった経緯などを教えてもらえますか?
NEC小林様:
kustomizeは元々前職で使っていました、前職ではかなり大規模な環境で使用するために既存の仕様だとカバーできないケースにあたることがありました。そのため、機能を追加したり、使用中にバグを発見したりして、それらを修正して自分たちの環境で使うためにOpen Source Software (OSS) への貢献を始めました。
kustomizeは大きく分けると、パラメータからk8sマニフェストを生成する機能と、k8sマニフェストの一部を変換する機能があります。これらのどちらかに分類できる複数のfunctionを組み合わせてKubernetesの構成となるマニフェストを構築します。k8sマニフェストを構築するツールは現在ではかなりの種類ありますが、kustomizeは各functionが行う処理がシンプルで、それらを複数組み合せることで動作します。そのため、HelmのようなテンプレートエンジンでKubernetesマニフェストを構築するツールと比較して、最終的な結果が予測しやすいという利点があります。
これらの点を考慮するとkustomizeはより大量のmanifestsを処理する際にメリットがありました。前職のシステムのような1000を越えるクラスタにk8sマニフェストを適用しなければならないシナリオでは利点があると感じて、利用していました。
仕事でクリティカルに影響のある部分以外も継続して貢献をし、またprojectに重要な仕事を何件かした所で、既存のメンテナから推薦頂き、新たにkustomizeのメンテナとなりました。
NEC北野様:
なるほど、大規模なKubernetesクラスタの中での実ニーズから継続してOSSに貢献することで、kustomizeのメンテナになられたということですね。非常に素晴らしいチャレンジですね。
― NEC北野様:すでに大企業で大規模なKubernetesのクラスタにも携わられていて、Kubernetesの有名プロジェクトのメンテナされる中で、なぜNECを選ばれたのですか?
NEC小林様:
AIの分野が次々とイノベーションを起こす中で、機械学習基盤にかかわりたいと思ったことが主な理由です。また、純粋に新しい物を生み出すための技術開発に携わってみたいという気持ちもありました。
また、北野さんのお話を実際に伺ってみると、AIのプラットフォームとしてどういう物をつくっていきたいのか、何故そういったプラットフォームが社内で必要なのか、といったニーズと、それをどうやって解決したいかの思想が明確になっており、設計もそれを前提にされていたからというのもあります。このプラットフォームであれば、私のこれまでの経験を活かしつつ技術的に困難なことに挑戦でき、利用者のためとなるプラットフォームを作ることができると確信しました。
NEC北野様:
AIのイノベーションは始まったばかりですし、AIがコンピューティング・ネットワーク・ストレージ全てを進化させていく中で、AIの学習プラットフォームはこれから10年が一番熱いタイミングだと思います。AIの急速な発展に伴い、コンピューティング・ネットワーク・ストレージ含めて全てが進化をしており、今こそ垂直統合でプラットフォームを発展させるべき時であると考えています。そういう意味で、先進ハードウェア群をKubernetesで抽象化することで、AIスーパーコンピュータをソフトウェア定義されたプラットフォームとして発展させ、AIの技術進化に迅速かつ柔軟に対応可能な高度なプラットフォームを実現したいと思っています。そして、それを支える世界に誇れるAIのプラットフォームエンジニアリングのチームを作りたいと思っています。このAIの時代は、AIの研究開発を高度化するためにプラットフォームとしての高度な技術チャレンジが、利用者の価値に直接繋がっていく非常に面白い分野であり、是非ご興味ある方にはご参加いただきたいですね。
― RGF萩口:確信されたとのことですが、何かきっかけがあったのでしょうか。
NEC小林様:
北野さんとカジュアル面談を実施して具体的な話を聞けたことが大きなきっかけになりました。北野さんのSoftware Defined AI スーパーコンピュータを、API Definedなプラットフォームを作ることに秀でたKubernetesをベースとして作るという、技術的には最適だが実現するにはまだまだ周辺技術も成熟していない、未来に向けた挑戦を行っていると感じました。
私自身も機械学習で使われる基盤に興味があり、ここに私の持っているKubernetes関連の知識を生かして、運用の最適化や新しい価値を追加することで、より深いプラットフォームを作っていけるのではないかと感じました。
NEC北野様:
確かに、そんな話をしましたね。私は、進化の早いAIの技術開発を、それを超えるスピードで支える柔軟かつ高度に制御が可能なソフトウェア中心のSoftware Defined AIスーパーコンピュータを開発したいと考えています。優れたプラットフォーム開発には、設計への思想とそれを実現するための高い技術力が必要であり、構想に共感して仲間になってもらえたというのは、私にとっても有難い限りです。
Kubernetesは全てをリソースとして抽象化することでソフトウェア制御を可能にするためのプラットフォームとして、コンセプトが非常に素晴らしいと思っています。ただ、Kubernetesそのものが発展の途上であり、AIの学習のためのプラットフォームとして考えると、ジョブのスケジューリングをはじめとして、SWもHWの抽象化も不足している部分が非常に多いです。特に、NECのAI研究のようなマルチノードの学習に特化したワークロードを適切にハンドリングすることができるソフトウェアのプラットフォームは、OSS/商用製品含めて市場にありません。
ですからKubernetesを中核としてプラットフォームを発展させることで、AI研究の早い発展スピードに合わせて進化させることのできる競争力のあるSoftware DefinedなAIスーパーコンピュータを作れるのではないかと考えたわけです。ソフトウェア制御が可能という意味では、AIスーパーコンピュータだけでなく、AIのデータセンターもソフトウェア制御可能にすることで、非常に効率的かつ柔軟な運用が可能になるAI開発のプラットフォームを構築できるとも考えています。
― RGF萩口:現在、小林さんがどんな仕事をされているか教えていただけますか?
NEC小林様:
主に、Kubernetesの運用効率化を中心として、AIスパコンを支えるソフトウェア基盤の開発や運用を担当しています。
― RGF萩口:実際に入社してからの良かった面は何でしょうか?
NEC小林様:
良いと考える面は色々あるのですが、一番私が良いと思った点は、レイヤー0からレイヤー7まで全てのレイヤーの技術開発を1つのグループで行っていることです。入ってから驚いたのですが、本当に全てのレイヤーで技術開発をしていて、多くのレイヤーにかかわることができるところが非常に良いと思いました。各階層で別のチームが動いていると、どうしても組織の壁があり上側から見た時にプラットフォームとしての最適な構成を取ることが難しい部分も出てきます。上のレイヤーのチームからでは下のレイヤーに存在する技術的制約を解消しにくく、プラットフォームの仕様や運用に無理が出ることがあるので、この部分を少人数の1チームで行うのは、かなりチャレンジングですが、より良いプラットフォームを作るための1つの良い方法だと思っています。
NEC北野様:
そうですね、私のグループでは、コンピューティング・ネットワーク・分散ストレージなどの先端的な計算機基盤、それをソフトウェアで完全に制御可能するKubernetesを中核としたソフトウェア基盤、それら2つの基盤に最適化されたデータセンタファシリティー、全てを1つのチームで統合的に開発しています。小林さんが言われるように、AIの研究開発プラットフォームを垂直統合し、本当に全てのレイヤーで技術開発をしています。
垂直統合は時代遅れの避けるべき手段ともいわれることもあるかと思いますが、水平分業がコスト的にも効率になるのは成熟し標準化された分野だから成立しているだけの話なのですね。コンピューティングの業界は垂直統合と水平分業の歴史を繰り返してきていますが、今のAIスーパーコンピュータを支える技術群は標準化が進んでおらず、全てのレイヤーを高度にすり合わせた垂直統合こそが現時点での最適解なのです。一定の標準化がIT業界として行われたことで、長く水平分業の時代が続いてきましたが、AIの世界では水平分業で勝つことはできません。
この進化が劇的に早いAIの業界では、データセンターを含めてハードウェア・ソフトウェア含めて至る所が発展の途上であり、水平分業ではなく高度にすり合わせた垂直統合こそが優れたAIのプラットフォームを生み出すのに必須になります。未だにコンピューティングやネットワークを分離して開発・運用しているチームは世間一般でも多いとも思いますが、レイヤーごとにチームを分けて扱うことはAIスーパーコンピュータにおいてはむしろ非合理的です。この全てが標準化されていない今のAIの時代だからこそ、レイヤー0からレイヤー7まで全てのところを1チームで作りこむことで、他社では実現できないスピードと競争力を実現できると考えています。
― RGF萩口:Web系企業と比較して、入社して何か良かった点などはありましたか?
NEC小林様:
オンコール対応がないため技術開発に集中できるというのも非常に良い点です。SREでは多くの方がスマホを持ち深夜でも対応しないといけないというのがありますが、精神的にも体力的にも非常に厳しい環境です。NECでは、その点で非常に安心してソフトウェアエンジニアとして技術開発に集中ができます。安定性を上げるために、技術開発に集中できるというのはとても良いと思っています。そして、オンコールがなくても運用の自動化とハードウェア障害時の自動復旧オペレーションがしっかりしているため、GPUサーバー等の不安定なコンポーネント群を安定運用できているのは驚きました。
― RGF萩口:今後、小林さんがNECでプラットフォームエンジニアとして働くことでしていきたいことは何ですか?今後の展望などあれば、教えてください。
NEC小林様:
機械学習で使われる基盤に、私の持っているKubernetes関連の知識を生かして、運用の最適化や新しい価値提供をしていきたいです。また、NEC内でのインターナルなプラットフォームとしていちから作る以上は、社内のAI研究者にとって使いやすく、AIの技術開発にとって最適な物を目指したいと考えています。
― RGF萩口:最後に、こんな方にNECで活躍してほしいという人物象について教えてください。
NEC小林様:
私は、テクノロジーが大好きで、自分の持つ技術スキルを限界まで使いたいという情熱を持っている方と一緒に働きたいと考えています。新しい技術やトレンドに興味があり、絶えず自分のスキルを磨き、挑戦を楽しむエンジニアの方と働きたいと考えています。
NEC北野様:
小林さんのように高い技術力を持ちながらも、価値創出にこだわれる真にプロフェッショナルの方に是非来ていただきたいですね。AIの産業は急激な発展をしている未成熟な産業であるがゆえに、高度なプラットフォームエンジニアリング力を持つことでしか実現できない未来があります。AIの技術の可能性を信じ、AIを中核として世界の未来の産業を作るのだという高い志をもつエンジニアの方に是非来て頂きたいと考えています。
本グループは、NECが掲げている行動指標を高いレベルで実践したプロジェクトだけが表彰されるNEC Award (※)を、2023年に続き2024年も連続受賞をするなど、NEC内においても非常に注目されているグループになります。この熱いAIの時代に、生成AIを支える先端のプラットフォームエンジニアリングを行いたいエンジニアの方のご応募をお待ちしております。
※ NECグループブランドマガジン N/Mag vol.0 p.15
Profile
NEC グローバルイノベーション戦略統括部 深層学習基盤開発グループ
ソフトウェアエンジニア 小林 優吾 様
ヤフー株式会社に新卒で入社、Kubernetes as a Serviceのプラットフォーム構築/運用を担当し、1000以上のKubernetesクラスタが稼動している日本国内でも有数の大規模環境の構築・運用を行う。2024年02月にKubernetes関連プロジェクトであるkustomizeのメンテナに就任し、2024年6月にNECに入社。
NEC グローバルイノベーション戦略統括部 深層学習基盤開発グループ
上席研究員 北野 貴稔 様
インド国民13億人が利用する世界最大の大規模生体認証システム(アドハー)を実現、政府・空港等を中心に大規模AIの実行プラットフォームを世界40か国へと展開。現在は、機械学習の研究テーマリーダーを経て、国内最大級の「NECのAI研究用スーパーコンピュータ」の企画・設計・開発・運用を主導。NECの先進AIの技術開発から事業化までを統合的に支え、一貫してNECの先進AIの競争力強化に携わる。
RGFエグゼクティブサーチジャパン
プリンシパルコンサルタント 萩口 博士
20年以上に渡り日本のリクルーティング業界で勤務しており、テクノロジー分野のスペシャリストとして、アプリ開発、インフラストラクチャー、DX、エンジニアリング、プロジェクト/プロダクトマネジメント等の様々な分野の高度エンジニア人材の採用を担当。
専門分野としては、テックリード/リードエンジニア、インフラストラクチャリーダー/マネージャー、プロジェクト/プロダクトマネージャー、ITコンサルティング/システムインテグレーション等のエンジニア採用であり、中間管理職からエグゼクティブ層・トップマネジメントの採用実績多数。
クライアントと候補者の両方の満足度を重視しており、ゼロからのチーム作りや難しい市場での採用など様々な状況の採用経験を活かし、多様なクライアント様の採用の支援並びに候補者様のキャリアアップをサポート。
【萩口からのメッセージ】
クライアントや求職者からの想いに視点をおくことを大切にしています。人材は十人十色で一筋縄ではいきません。以前に比べ、近年IT業界においてあらゆる職種や企業があふれています。ご自身の[Next Career]に対し、どのような道を描いていくのか、求人票だけでは決して見えない奥の情報を共有しつつ、一緒に考えサポートできれば望外の喜びです。