未踏に応募して採択されると、どんな世界が待っているのか? 応募するにあたっては、どのような思いがあったのか。実際に未踏を修了した方々に聞いてみました。
今回は、2023年度に「Wasmを実行するunikernelとWasmコンパイラ」で未踏IT人材発掘・育成事業(以下未踏IT)に応募して、Wasm(WebAssembly)を隔離性を維持しつつ軽量に実行するunikernel「Mewz」と独自のWASI(WebAssembly System Interface)とWasmバイナリをリンクするためのコンパイラ「Wasker」 の開発に取り組んだ上田蒼一朗さんと野崎愛さんに話を伺いました。
WasmはWebブラウザ上で実行できるバイナリ形式の仮想命令セットで、 コンテナの次のアプリケーションの実行環境として期待されている。本プロジェクトではWasmの実行に特化したunikernel「Mewz」、Wasmバイナリをネイティブコードに変換するコンパイラである「Wasker」、Kubernetesなどのコンテナ管理ソフトウェアでMewzの実行を可能にするソフトウェア「containerd-shim-mewz」を開発し、Wasmのサーバレスコンピューティングでの活用やクラウドコンピューティングでの新しい実行形態を提案した。
成果報告会のレベルが高く、雲の上の存在に見えていた
お二人は東京大学と京都大学という違う大学に通われていますが、どのようなきっかけでチームを組むことになったのでしょうか。
大学の授業でOSやネットワーク領域が好きになり、2020年度のIPAのセキュリティ・キャンプに参加しました。上田との接点はありませんでしたが、上田が書いていたネットワークドライバ実装のブログを読んで、同じような技術領域に関心を持っていると認識していました。
私がコンピュータに触れ始めたのは大学に入ってからです。工学部情報学科に進学し、そこでネットワークに興味をもちインターネットの仕組みはどうなっているのか調べたり2021年度のセキュリティ・キャンプに参加したりしているうちに、システムソフトウェアの世界に足を踏み入れていました。
その頃に野崎が書いていたLinuxカーネルがらみのブログを見ていました。
同時期にお互いがunikernelに興味を持っていることを知り、一緒に未踏ITでunikernelで何か開発ができないかと声をかけました。
未踏ITに応募した理由はなんだったのでしょうか。
未踏ITの成果報告会を見て「いつかは参加したい!」と憧れていました。明確な問題意識とアイデア、それを支える高い技術力の揃った発表ばかりで、いつか自分もこのようなプロジェクトができるようになりたいなと思っていました。
私の周囲には未踏経験者の人たちが多くすごい人たちばかりだったので、一人で応募するのは気が引けていましたが、野崎から誘ってもらえて面白いことができそうだと思ったので応募しました。お互いに以前からリスペクトしていたことが引き金になりましたね。
成果報告会を見ているとレベルの高い発表ばかりで、とてもハードルを高く感じていました。一人だと考えられることが自分の知識に限界されるために一緒に取り組める仲間を探し声をかけました。
未踏ITで求められる才能やアイデアは自分にはないと思い込んでいました。雲の上の存在として見ていましたね。
資金を支援してもらうことで、開発にリソースを集中できた
プロジェクトはどのように進めていったのでしょうか。
チームを結成したのは応募する前年の12月でした。それから3ヶ月間リモートで相談しながらアイデア を詰めて提案書にまとめ、応募しました。採択されるまで殆ど実際に会ったことがありませんでしたが、未踏ITがリアルに会う機会になりました。
それから2週間程度で二次審査のためのプロトタイプを作りました。プロトタイプはすごく小さなプログラムで、OS部分が100行、コンパイラ部分も100行程度です。関数を呼び出して「Hello World」を表示させるモノでした。
プロトタイプを作ることで自分たちのアイデアが机上の空論ではないことを確認でき、自信を持って二次審査に望めました。
未踏ITにはどんなことを期待していましたか。
集中して開発に打ち込む時間が欲しかったという面は大きかったです。
私も同じです。システムソフトウェアの開発に打ち込む機会が欲しかったですね。インターンシップやアルバイトだとWeb開発などの機会は多くありますが、システムソフトウェアの開発は稀です。趣味ベースではなくしっかりとしたプロジェクトとして取り組みたいと思っていました。
未踏ITは自分のリソースをつぎ込む動機になりました。生活の心配をすることなく開発に打ち込む機会をもらえたことはありがたかったです。
プロジェクトでの役割はどのように分担したのでしょうか。
互いが開発したものをレビューして、週に1回のミーティングで詰めていきました。
私がWasmを動かすためのunikernel「Mewz」の開発を担当し、Wasmコンパイラ「Wasker」を野崎が開発するというのが基本的な役割分担でした。
PMとのミーティングや定例の会議では、プロジェクト全体の方向性や位置付けについて議論しました。曾川PMは色々な選択肢を提示してくれましたが、どう進めるかは私たちに任せてくれました。やりたいように進められたのは良かったです。
コミュニティを大事にすると良いというアドバイスももらいました。
すぐにビジネスに活かせるものではないので、Wasmにunikernelを使うといったことに対して面白いと思う人たちを巻き込んでコミュニティを大きくすることに価値があると指摘してくれました。
競合が出てきて焦った時も「競合が出てくるということは可能性があるということだ」と諭してくれました。
常に背中を押してくれたので、迷わずに突き進むことができました。実際のビジネスに精通している曾川PMから意見をもらえたことは私たちにとって、大きな自信や方針の裏付けになりました。
正解のない世界にいることを改めて考える機会になった
未踏ITの期間中で特に印象に残っているのはどんなことですか。
毎月のようにミーティングが開催されて、プレゼンの中身を見直す良い機会になっていたことです。最初は自分たちが言いたいことをひたすら話していた感じで、一方通行になっていたと思います。そこでどういう問題提起をして、どこまで伝えられるのかを試行錯誤しました。
曾川PMが担当している他のチームとの合同ミーティングを含めて、システムソフトウェアの領域におけるこのプロジェクトの重要性をどう伝えるのか、最終の成果報告会に向けてプレゼン内容を繰り返しリファインしていきました。
それが開発のマイルストーンになっていたと思います。
次のプレゼンではデモでこの機能を入れて見せようなど、ペースメーカーの役割を担っていました。
同期や修了生とのエピソードは何かありますか。
セキュリティ・キャンプでunikernelについて教えてくれた方が未踏修了生としてミーティングに参加していました。プレゼンを通して目指している世界を伝えることができて、その後にはコアな話ができました。
その方も悩みながら意見を出してくださり、私たちがやっていることは正解のあるものではないと話していました。私自身も正解はないと感じていましたし、あれほど詳しい方でもわからないところがあると知って、前向きに捉えることができました。
曾川PMにお願いしシステムソフトウェアの領域に詳しい方に合同ミーティングで話を聞いて頂いたこともありました。
プロジェクトで壁に突き当たったりしたのでしょうか。
11月末くらいまでは楽しく開発していたのですが、後半になってバグが出てきて悩まされました。二人が作ったコンパイラとOSが上手く連動しないので、どこが悪いのか原因を突き詰めるのが大変でした。
1つのバグを潰すのに二人で1週間悩んでいたこともありました。その時は銭湯で原因を思いつきました。CPUに割り込みがかかるとメモリが書き変わってしまっていて、復帰できなかったのです。アプリがカーネルの一部になっていたため不具合が起こる条件に気づけなくて、解決までに時間がかかりました。
大きいWasmのコードを動かすと山のようにバグが発生しました。全部潰すのに1ヶ月くらいはかかってしまい、12月はデバッグで終わりました。1月に入ると今度はパフォーマンスが出ない状況になり、かなり焦りました。
目標のパフォーマンスが達成できたのは、成果報告会の2週間くらい前です。曾川PMからはプランBを考えるようにとも言われたのですが、パフォーマンスを諦めずに追求して良かったです。
目標と後押ししてくれる人たちが揃っているという幸せを実感
未踏に採択されて驚いたことはありましたか。
何の力もない大学生が作っているソフトウェアを後押ししてくれる方が沢山いたことです。OSSで活躍されている方や海外でWasmランタイムを開発していている方に、話を聞いて頂いたりコミュニティミーティングに出させてもらったり、楽しいことが沢山ありました。バグ潰しに追われていた時にもこうした楽しみがあったから持ち堪えられました。
個人では既存のものを超えるようなものを作れるとは思っていなかったのですが、未踏であれば周囲からアドバイスをいただきながら、新規性のあるものを作ることができると感動しました。
多くのことが得られたわけですね。
やりたい目標があって、背中を押してくれる人が揃っていることは、本当に幸せだと思いました。それに気づいた時から、前に進むことが楽しくなって、良い感じに取り組めるようになりました。
もともと未踏に参加するためにプロジェクトを立ち上げたわけですが、途中からはプロジェクト自体が本当に面白く感じるようになって、このプロジェクトのために未踏に参加している感じになりました。目的と手段が逆転したのです。未踏を経験して、プロジェクトが自分たちの財産になっていきました。
プロジェクトに本気で向き合えるようになって、技術の勉強ではなく、その技術を活用して今足りないことをどう解決していくのかという考え方を持つようになったことが、一番大きな収穫です。
プロジェクトでやっていることを面白がってくれる人が沢山現れて、海外も含めてシステムソフトウェアのコミュニティの人たちとのつながりができたことも大きな財産です。今年6月のクラウドネイティブのカンファレンスにも、スピーカーとして呼ばれました。
プレゼンを見た方からWasmのことがわかったという反響をもらいました。プレゼン能力は最初と比べると10倍アップしたと思います。成果報告会でも良い反応をもらうことができました。
未踏での経験はどう活かせそうですか。
Wasmのアプリをクラウド上で動かせるPaaS的なサービスをイメージしてきましたが、そのためにはまだまだ機能が足りません。Wasm自体も発展途上ですし、やるべきことはいっぱいあります。
クラウドの世界は海外勢がコアの部分を独占していて日本は開発力が弱く、クラウド利用が広がるほどお金が海外に流れる構造になっていて不健全です。自分たちが作り出したもので、日本全体のクラウドの開発力を高めることに貢献したいと思っています。
個人としては技術を使うだけでなく、生み出せるようにしていきたいです。今後はWasmのOSS開発や仕様にも関わっていくことが目標です。
Message
未踏はやりたいことに打ち込んで開発ができ、そして経験を持ったPM・OBOG・周りの方から背中を押してもらえる素晴らしい環境だと思います。女性の中には応募に一歩踏み出せない人がいるかもしれませんが、未踏のコミュニティには女性も多く、全体会議にはOGも参加します。最近は未踏を目指す女性のための座談会も開催されていますので、雰囲気を知っていただく機会になるかなと思います。
■プロフィール
野崎 愛さん
東京大学大学院情報理工学系研究科中村・高瀬研究室修士2年。2023年未踏IT人材発掘・育成事業で「Wasmを実行するunikernelとWasmコンパイラ」プロジェクトでクリエータとして開発。2024年セキュリティ・キャンプ全国大会WebAssemblyゼミ講師。大学院では準同型暗号のハードウェアアクセラレーションの研究を行っている。
完璧なアイデアを持っている必要はありません。興味のある分野に飛び込んで調査していくうちに自分なりのやりたいことが見つかるでしょう。未踏への応募を通してそれをアイデアとして洗練させていくことに価値があると思います。未踏で発想やアイデアを突き詰めることができますし、その過程で新しい景色が見えてくるはずです。
■プロフィール
上田 蒼一朗さん
京都大学大学院情報学研究科通信情報システムコース岡部研究室修士1年。2023年未踏IT人材発掘・育成事業で「Wasmを実行するunikernelとWasmコンパイラ」プロジェクトでクリエータとして開発。2024年セキュリティ・キャンプ全国大会WebAssemblyゼミ講師。クラウドを支えるシステムソフトウェアに興味を持ち研究や開発に取り組んでいる。
Other Interview
未踏は予想以上に自分自身の成長につながった
野崎 智弘さん、三橋 優希さん