https://docs.google.com/forms/d/e/1FAIpQLSccfcbfQeYxkn9OdIOpTZQISNBe4ULeSpK2jHFQ4mqh893uHg/viewform
発表時間30分。
## 発表のタイトル(100文字)
- とあるSREの博士「過程」 ☆
- SRE分野で博士になる
- SREで博士の学位をとるまで
- とあるSREの情報系博士の道
- SRE分野で博士になるために考えたこと
- SREと博士学位
- SREと社会人博士
- とあるSREの社会人博士
- 修士課程を中退してソフトウェアエンジニアになったはずが、気づいたら博士になっていた件
## 発表の概要 (1000文字)
%%
ソフトウェアエンジニアがより高みを目指すために、計算機科学(コンピュータサイエンス)を修めることがキャリアを充実させる一つの手段として知られています。計算機科学あるいはそれを取り囲むより広範な情報学が、エンジニアが普段取り扱う情報技術の基礎であるためです。そして、そのような基礎そのものに新しい発見や課題解決を積み上げるための訓練を積む場が、大学院の博士課程であると考えています。通称SREBookの序文では、"PhDs"(博士号取得者)に関する言及もあり、SREとも縁の感じられるキーワードです。
博士課程の体験記は、学位を取得された先人たちが、ウェブ上で公開されているケースは多数あります。しかし、社会人のソフトウェアエンジニアから、学位を取得する事例の数は少なく、それゆえに、博士課程が何であり、何を得られるのか、研究と開発はなにが違うのか?といったことは広く共有されていません。実際、研究とか博士課程がどのようなものか想像もつかないと言われることは多々あります。
そこで、本発表では、今年に博士(情報学)の学位を取得した実体験を踏まえて、博士論文の表題となった"Scaling Telemetry Workload"と呼ぶ体系に辿り着くまでの研究の道のりを紹介します。SREのようなシステム管理は、工学や研究対象としては見なされなかった歴史があることからわかるように、SREに関する問題解決を学術研究としていかに帰着させるかは自明ではありません。
博士学位を得ることは、容易なことではありませんでした。自分で考える一つのテーマに向き合い、いつ役に立つかもよくわからないことに数年がかりで、論文やOSSを調べ、手を動かし、思考し続けることになります。しかし、大変なだけでなく、博士研究はおもしろいものです。こんなことを考えているのは自分だけかも、と思う瞬間もあります。博士論文を書き上げる上で、自分の中に体系を気づいていく実感もあります。これらは自分がエンジニアをやっていたころにはなかった感覚です。
本発表が、大学院進学に興味のある、特にSREの分野で博士号をとるということかを知るきっかけとなり、今後のキャリアのなんらかの参考になれば幸いです。
%%
### 校正後
ソフトウェアエンジニアがより高みを目指すために、計算機科学(コンピュータサイエンス)を修めることがキャリアを充実させる一つの手段として知られています。計算機科学あるいはそれを取り囲むより広範な情報学が、エンジニアが普段取り扱う情報技術の基礎であるためです。そして、そのような基礎そのものに新しい発見や課題解決を積み上げるための訓練を積む場が、大学院の博士課程であると考えています。通称SREBookの序文では、"PhDs"に関する言及もあり、SREとも縁の感じられるキーワードです。
博士課程の体験記は、学位を取得された先人たちがウェブ上で公開しているケースが多数あります。しかし、社会人のソフトウェアエンジニアが学位を取得する事例は少なく、それゆえに、博士課程とは何であり、何を得られるのか、研究と開発は何が違うのかは広く共有されていません。実際、研究や博士課程がどのようなものか想像もつかないと言われることもありました。
そこで、本発表では、今年に博士(情報学)の学位を取得した実体験を踏まえて、博士論文の表題となった"Scaling Telemetry Workload"と呼ぶ体系に辿り着くまでの研究の道のりを紹介します。要素技術としては、時系列データベース、Linuxネットワークスタック、eBPF、AIOpsなどが含まれます。
SREのようなシステム管理は、工学や研究対象としては見なされなかった歴史があることからわかるように、SREに関する問題解決を学術研究としていかに帰着させるかは自明ではありません。実際に、博士学位を得ることは、容易なことではありませんでした。自分で考える一つのテーマに向き合い、いつ役に立つかもよくわからないことに数年がかりで、論文やOSSを調べ、手を動かし、思考し続けることになります。しかし、大変なだけでなく、博士研究は面白いものです。こんなことを考えているのは自分だけかも、と思う瞬間もあります。博士論文を書き上げる上で、自分の中に体系を築いていく実感もあります。これらは自分がエンジニアをやっていたころにはなかった感覚です。
本発表が、大学院進学に興味のある方、あるいはマネージャーやスタッフエンジニア以外のキャリアパスがないかを模索されている方に、博士という道を知るきっかけとしていだければ幸いです。
%%
SREの場合は、情報学のうち、計算機科学、システム科学、通信工学、社会学などが基礎となりますが、SREという分野そのものがアカデミアで確立しているわけではないため、分野を
また、実際に遭遇した技術的な問題に対して深く考えたことも紹介します。
%%
## 聞いた人が得られるもの (200文字)
計算機科学、大学院進学、論文の世界に興味がある方、SREのキャリアパスとしてマネージャーやスタッフエンジニア以外の道がないかを模索されている方に向けて、
- 博士課程という道の存在
- 実際の博士課程研究の紆余曲折の事例
を持ち帰り、すぐに進学することはさすがハードルが高いとしても、遠い将来も含め今後のキャリアの参考にしていただく。
## 発表の詳細(3000文字以内)
### 導入部分:期待の調整と背景(1分)
本発表はSREの技術的問題解決ではなく、博士課程を経験した個人のキャリア観に関する内容です。ソフトウェアエンジニアコミュニティでは共有されにくい博士課程についての体験を伝えます。しかし、その背景は膨大であるため、講演をきっかけに参加者との「会話」を通じて交流を深めたいと思います。実務経験を持ちながら博士課程を修了した経験から、研究と実践の架け橋となる視点を提供します。
### 博士という存在について(5分)
博士とは、既知の知識を学んだ上で新たな知見を積み上げる存在です。1937年の「君たちはどう生きるか」では、人類の知の最先端まで学び、そこに新しい積み上げを行う人がいることが示唆されており、それを自分は博士相当の存在であると感じています。学部や修士課程が最先端に近いところまで学ぶ段階だとすれば、博士課程は人類の知の最先端に到達した上で、わずかでも新しい知見を積み上げる訓練を積む場です。
漫画「葬送のフリーレン」では「不可能を可能にするのが一級魔法使い。未踏破だろうが前人未到だろうがねじ伏せて突き進むんだ」というセリフがあります。一級魔法使い試験が博士課程に似ているという指摘がありますが、実際には相違点もあります。博士課程では何が未踏破領域なのか、ゴールの定義も曖昧です。人類の知識の最先端では境界が不明瞭になり、既存知識と自分の貢献の差を明確に示すことが重要になります。特に情報系では論文数が膨大で、新規性を明確に示さなければ査読を通過できません。
研究と開発の違いとして、成果の形態が異なります。学術研究の成果は「知」である論文、エンジニアリングの成果はソフトウェア自体です。両者には重なる部分もありますが、優先される成果物の性質が異なります。SREのようなシステム管理分野は従来あまり研究対象として見なされていませんでしたが、近年工学として認められつつあります。しかし、実務経験をそのまま論文にすることは難しく、研究として形にするには様々な工夫が必要です。
本発表では自身の博士研究を具体例として、博士課程の実態や研究プロセス、得られる成果について共有することが目的です。
### 博士研究の道のり - 個別研究編(15分)
博士論文の要件として、外部の学術媒体での論文発表が求められます。具体的には、ジャーナルや国際会議に採録される2-3本相当の実績が必要で、それらを統合して最終的な博士論文を作成します。
研究計画段階では、当初時系列データベースからデータベース分野へのシフトを考えていましたが、最終的にはSREのテレメトリーシステムを主軸に据える方針に転換しました。当初の計画通りに研究が進むことは少ないという話もあり、バラバラに研究を始めていくことになりました。
第一の研究:時系列データベースの開発に関する研究。前職で行ったプロジェクトを発展させ、インメモリDB(Redis)とディスクベースDB(DynamoDBやCassandra)を組み合わせ、古いデータをディスクベースDBに移行する方式を研究しました。実装ではRedis、DynamoDB、S3の組み合わせを使用し、性能とコストの最適化を図りました。Prometheus、VictoriaMetrics、InfluxDBなどの既存OSSとの単純な性能比較ではなく、「運用性」に着目し、広く普及している技術の枠組みで問題解決することの価値を主張しました。
第二の研究:複雑化するマイクロサービスやクラウドシステムのトポロジーを把握する方法の研究。時間的な見方ではなく空間的な構造を可視化するため、ネットワークスタックのTCP/UDPレイヤーから通信情報を取得し、システム構造を捉える方法を開発しました。eBPFを活用しましたが、カーネルからユーザー空間へのデータコピーによるCPU負荷の問題があり、高負荷環境でも効率的にトレースできる集約方法を考案しました。実験用のツールを作成し、複数の手法を実装して評価。TCPサーバー・クライアント環境での自動化された実験で様々なパラメーターや手法の組み合わせを検証し、性能評価を実施しました。
第三の研究:テレメトリーデータの解析に機械学習を応用する研究。SRE分野のブレイクスルーにはAIが重要と認識し、人間の認知に関わる要素や組織的問題、ルールベースでは解決困難な課題に取り組みました。機械学習については一から学ぶ必要がありましたが、さくらインターネット研究所の専門家との共同研究から始め、最終的には自身で機械学習モデルを構築するに至りました。この研究の詳細な経緯はSRE NEXT 2022でも講演しています。
### 博士研究の道のり - 博士論文編(7分)
博士論文では、3つの個別研究を一つのストーリーとしてまとめる課題に直面しました。時系列データ、空間データ、データの保存・計測・解析という異なる段階の研究を統合する軸が必要でした。中間発表ではいろいろやっていて良いとは言われたものの、全体のとりまとめが不十分と指摘されていました。
最終的に「テレメトリー」というキーワードと「負荷の削減」という共通視点を見出しました:
- 第1研究:データ保存におけるメトリクス数増加への対応
- 第2研究:計測段階でのカーネル内データ集約によるコピー回数削減
- 第3研究:分析時のメトリクス数削減
これらを「テレメトリーワークロードスケーリング」という概念で統合し、データ量増加に対する性能維持能力という観点から論文をまとめました。関連研究を広く調査した上で自分の3つの研究を適切に位置づけ、最終的には博士論文としてのストーリーが評価され、一定の成果を得ることができました。
博士論文は、自身の技術的興味や個性を反映したものとなりました。国際的なトップカンファレンスレベルではないものの、エンジニアとしてのアイデンティティが表れた論文に満足感を得ています。研究テーマはキャリア初期(1-3年目頃)に遭遇した課題と深く関連しており、長年取り組んできた問題の解決策を示す内容となりました。大量のメトリクスを処理する技術や、システムを俯瞰的に捉え、動作状況を可視化することへの関心が研究に反映されています。博士論文をまとめる過程を通じて、自分の技術的関心とキャリアの方向性をより明確に理解することができました。
### むすび(2分)
- 自分の道を作っていく
- 博士研究は大変だが非常に興味深い
- 世界で自分だけが考えている領域がある瞬間がある
- それゆえに孤独もある。孤独を恐れない。
- ソフトウェアエンジニアの世界はスタンダード・ポピュリズム・実装レベルの共有(OSSなど)を通じたエコシステムの中で生きていく文化がある。
- 一方で研究では「エコシステムを創造・破壊・再構築」「エコシステムがもつ制約を解決する」視点をもつ。
- それでもコミュニティが大事。
- SRE NEXTなどのエンジニアのコミュニティやIOT(インターネットと運用技術)研究会などの学会コミュニティの方々に支えられた。
---
0. 本発表に対する期待の調整(1分)
本発表で話すことは、SREに関わるテクニカルな問題解決ではなく、個人のキャリア観に近しいものです。それでも、博士課程を経験し、実際に遭遇した問題を紆余曲折ながらも解決した内容ではあります。SREという職種やプラクティスにとらわれすぎない、という募集要件も満たす内容になっていると思います。
博士に関する背景知識は膨大なものがある一方で、それらは少なくともソフトウェアエンジニアコミュニティではなかなか共有されません。そのため、本発表をきっかけにして、博士という一つの道について、参加者の皆さまと「会話」したいと思っています。それは今回のテーマである「Talk NEXT」に沿うものであると考えます。
1. はじめに(5分)
博士という存在について、経験者と未経験者の間には理解のギャップがあるかもしれないので、整理します。
「君たちはどう生きるか」という1937年の古典では、すでに知られていることを全て学び、その上に新たな知見を積み上げる存在が紹介されています。自分はこれが「博士」相当であると考えています。 学部や修士課程が最先端に近いところまで学ぶ段階だとすれば、博士課程は人類の知の最先端まで学んだ上で、わずかでいいので新しい積み上げを行うことが求められます。
「葬送のフリーレン」の「不可能を可能にするのが一級魔法使い。未踏破だろうが前人未到だろうがねじ伏せて突き進むんだ」というセリフがあります。一級魔法使い試験が博士課程に似ているという指摘がありますが、実際には相違点もあります。博士課程では何が未踏破領域なのかが明確でなく、ゴールの定義も曖昧です。人類の知識の最先端に近づくほど境界は不明瞭になり、既存の知識と自分の貢献の差を明確に示すことが重要になります。特に情報系では論文数が多く、新規性の明確な提示がなければ査読は通りません。
研究研究と開発の違いとして重要なのは、最終的な成果の形が異なる点です。学術研究の成果は論文という「知」であり、エンジニアリングの成果はソフトウェア自体です。もちろん両者には重なる部分もありますが、優先される成果物の性質が異なります。
さらにSREのようなシステム管理分野は、従来あまり研究対象として見なされていませんでしたが、最近では工学として認められつつあります。しかし、実務経験をそのまま論文にできるわけではなく、研究として形にするには様々な苦労があります。
発表では自身の博士研究を具体例として、博士課程の実態や研究プロセス、得られる成果について共有することが目的です。と開発の違いとして重要なのは、最終的な成果の形が異なる点です。学術研究の成果は論文という「知」であり、エンジニアリングの成果はソフトウェア自体です。もちろん両者には重なる部分もありますが、優先される成果物の性質が異なります。
さらにSREのようなシステム管理分野は、従来あまり研究対象として見なされていませんでしたが、最近では工学として認められつつあります。しかし、実務経験をそのまま論文にできるわけではなく、研究として形にするには様々な苦労があります。
発表では自身の博士研究を具体例として、博士課程の実態や研究プロセス、得られる成果について共有することが目的です。
2. 博士研究の道のり - 個別研究編(15分)
博士論文の要件:博士論文はいきなり書き始めるものではなく、まずは外部の学術媒体で論文を発表するという研究実績が求められます。細部の要件は大学院によって異なりますが、ジャーナルと呼ばれる学術雑誌あるいは国際会議に採録される2-3本相当の実績が必要になります。つまり、2-3個のサブ研究を完成させたのちにそれらを一つにまとめ最終的にオリジナルの博士論文を書き上げる必要があります。
研究計画期では、2〜3個のサブ研究を完成させ、1つの博士論文としてまとめる必要がありました。専門性はSREでしたが、当時は時系列データベースに関する論文を1本書き終えていたこともあり、SREの基礎であるモニタリングやオブザーバビリティからデータベースの世界へシフトすることを考えていました。しかし最終的には、SREこそが自分の専門性であると判断し、データベース分野を軸にするのではなく、サブ的な要素として活用する方針に転換しました。当初の計画通りに研究が進むことは少ないとの助言もあり、結果的にはバラバラに始めた研究が一人の人間が考えた内容として最終的にまとまりのあるものになりました。
第一の研究では、前職で行ったプロジェクトを発展させ、ジャーナルに投稿しました。時系列データベースの開発がテーマで、インメモリDB(Redis)とディスクベースDB(DynamoDBやCassandra)を組み合わせ、古いデータをディスクベースDBに移行する方式を研究しました。実装ではRedis、DynamoDB、S3の組み合わせを使用し、性能とコストの最適化を図りました。単純な性能ではPrometheus、VictoriaMetrics、InfluxDBなどの既存のOSSに対して単純な性能勝負で勝つことが難しかったため、「運用性」に着目して研究を展開しました。具体的には、RedisやCassandraといった既に広く普及している技術の枠組みで問題解決することの価値を主張する方向性で論文をまとめました。
第二の研究では、マイクロサービスやクラウドシステムが複雑化する中で、分散システムのトポロジーを把握する方法を研究しました。時系列データやログで時間的な見方はできても、空間的な構造を見ることは当時あまり行われていなかったため、ネットワークスタックでTCPやUDPレイヤーの通信情報を取得し、分散システムの構造を捉える方法を開発しました。eBPFを活用しつつも、カーネルからユーザー空間へのデータコピーによるCPU負荷の問題があったため、高負荷環境でも効率的にトレースできる集約方法を考案しました。研究では実験用のツールを言語で作成し、複数の手法を実装して評価しました。TCPサーバー・クライアント環境での自動化された実験を実施し、様々なパラメーターや手法の組み合わせで性能評価を行いました。実験や評価が時間的に最も大変な部分でした。
第三の研究では、テレメトリーデータの解析に機械学習を用いることにしました。SRE分野のブレイクスルーにはAIが重要であると認識し、人間の認知に関わる要素や組織的問題への対応、ルールベースのプログラミングでは解決困難な課題に取り組むためでした。機械学習については一から勉強する必要がありましたが、さくらインターネット研究所の機械学習専門家と共同で研究を開始できたことが良かったと述べています。最終的には自分で機械学習モデルを構築することになり、研究の過程には紆余曲折があったとのことです。この詳細な経緯についてはSRE NEXT 2022で講演を行っています。
4. 博士研究の道のり - 博士論文編(7分)
博士論文では、これまでの3つの研究をひとつのストーリーとしてまとめる新たな課題に直面しました。時系列データを扱った研究、空間データを扱った研究、データの保存・計測・解析と異なる段階を研究していたため、統一的な軸を見つける必要がありました。中間発表でも研究内容は評価されたものの、全体のとりまとめが不十分だという指摘を受けていました。
最終的に「テレメトリー」というキーワードを採用し、研究全体に共通する「負荷の削減」という視点を見出しました。第1の研究はデータ保存におけるメトリクス数増加への対応、第2の研究は計測段階でのカーネル内データ集約によるコピー回数削減、第3の研究は分析時のメトリクス数削減という、それぞれ異なるアプローチで負荷削減に取り組んでいました。
これらを「テレメトリーワークロードスケーリング」という概念で統合し、データ量増加に対する性能維持能力という観点から論文をまとめました。関連研究を広く調査した上で自分の3つの研究を適切に位置づけ、最終的には博士論文としてのストーリーが評価され、一定の成果を得ることができました。
道のりの振り返り:
博士論文を完成させた後の振り返りでは、この論文が自分の技術的興味や自分らしさをよく反映したものになったという手応えを感じています。国際的なトップカンファレンスに通るような素晴らしい研究実績を含んだ論文とは言えないものの、自分のエンジニアとしてのアイデンティティが表れた博士論文になったことに一定の満足感を得ています。
研究テーマとして取り組んだ時系列データベース、ネットワークトポロジーの計測、メトリクスの過剰生成による認知負荷の問題などは、エンジニアとしてのキャリア初期(1-3年目頃)に遭遇した課題と深く関連していました。当初から意図したわけではありませんが、結果的に自分が長年取り組んできた問題を解決する研究になりました。また、大量のメトリクスを処理する技術や、システムを俯瞰的に捉え、動作状況を可視化することへの関心が研究に反映されています。これはSREに携わる多くの人が共感するであろう興味でもあります。博士論文をまとめる過程を通じて、自分がどのような技術的関心を持ち、どのようなキャリアを歩んできたのかをより明確に理解することができました。
5. むすび(2分)
本発表を締めくくるメッセージは次の3つです。
- 自分の道を作っていく。
- 博士研究は大変だが、すごくおもしろい。
- (世界あるいは日本で)自分しかこんなことを考えてないかも、と思う瞬間がある。
- それゆえに孤独もある。孤独を大事にする。
- 「エコシステムの中で生きていく」
- ソフトウェアエンジニアの世界は、スタンダード・ポピュリズム・実装レベルの共有(OSSなど)、それらをコミュニティを通じて同期するため、大事にする。
- 「エコシステムを創造・破壊・再構築」「エコシステムに不足するものを埋める」
- それでもコミュニティが大事。
- SRE NEXTなどのエンジニアのコミュニティやIOT(インターネットと運用技術)研究会などの学会コミュニティの方々に支えられました。
## メモ
- 聴衆の期待値からスタートしないといけない。
- 1. 博士課程には詳しくない。研究って何するの?ただし、コンピュータサイエンスには興味がある。
- 2. 情報系の学士や修士学位は持っている。研究に関するイメージは持っているが、なにが研究であるかの理解は限定的。
- 研究はなにかすごいものという印象はある。なにがどうすごいのかはわからない。
- 研究者としての自分はそこまですごくない、と自己評価している。なぜなら世界トップレベルとの比較になるから。
- 研究の新規性の正しい理解
- 特に運用技術を含める。
- 学術的貢献ってなに?
- [[SRE NEXT 2024 アウトライン]] で工学としてのSREについて話をした。
- [[SRE NEXT 2023 アウトライン]]では論文の読み方の話をした。
- 「もの」 <-> 「知」
- ユーザーにソフトウェアを提供するのがエンジニア <-> 学術とは、「学ぶ術」を構築すること。「知」を提供する。
- ものを作った上での知 というものもある
-
- SREの研究テーマとしてありえるもの
-
- 発表者の経験に由来するエピソード
- オリジナリティというものに興味があった。
- エンジニア時代に、既存ソリューションを組み合わせてるだけに感じていた。組み合わせについても自明に感じることも多かった。
- 体系理解に興味があった。当時にウェブ系と言われる分野は、体系性よりも、ツールや実装、特定の現場依存の話、が重視されていた。
- 研究テーマ
- [[Scaling Telemetry Workloads]]
- 博士課程の入学時の研究計画書では、この解像度のテーマではなかった。信頼性に関して、モニタリングやデータベースの観点からアプローチするような話をしていた。
- データベースは難しすぎる ->
- 機械学習も難しすぎるががんばった。教師なし学習を主体とする手法へ。詳しくはAIOps研究録へ [[SRE NEXT 2022 アウトライン]]
- 巨人の肩の上にのる
- 研究や博士課程に挑戦するエンジニアだからこそ陥りがちであろうこと
- 「使われないもの(ソフトウェア)に価値はない」
- 少なくとも博士課程においては「知」が重要である。
- 「研究というからにはすごいものでなければならない」
- 研究は開発の上位概念ではない。
- 「新規性」は小さくともエンジニアだからこそ「価値」を信じられる。
- 「不可能を可能にするのが一級魔法使い。未踏破だろうが前人未到だろうがねじ伏せて突き進むんだ」(葬送のフリーレン)
- 実際は博士課程とはすこし違う。
- 博士課程では、「未踏破」なダンジョンがどこにあるか不明。
- 「踏破」された状態が自明ではない。どこまでが未踏破で踏破か最先端に行くほど曖昧になる。
- 博士課程は、素晴らしい博士論文を書く場ではない。
- 大学で研究をするあるいは教鞭をとるための運転免許証のようなもの。
- プロダクトでは、
- 自分で研究目的を定め、計画の立案、実行などの自己管理が求められる。特に社会人では、学位がとれなくても経済上困ることは少ない。
- なんらかの理由で、学位取得が困難となった人もいる。
- 語らなかったこととして生活がある。
-
---
博士論文では、これまでの3つの研究とは異なる困難に取り組む必要がありました。先述したように、これまでの研究では既存論文のサーベイや実験評価が苦労した点でした。しかし、当初計画になかったAIOpsの研究を始めたこともあり、改めて全体をまとめ直す必要がありました。
博士論文をまとめる前にも何度か整理の機会はありましたが、各研究がバラバラで一つのストーリーとは呼べない状態でした。時系列データを扱った研究もあれば、空間データを扱った研究もあり、データの保存段階、計測段階、解析段階とそれぞれ異なる段階を研究していたため、何を軸にこれらをまとめるべきか明確ではありませんでした。博士課程の中間発表では、研究内容は良いが博士論文としてのとりまとめができていないという指摘も受けていました。
最終的に整理するにあたり、まずこの分野のキーワードを決める必要がありました。博士研究の初期頃はオープンテレメトリーという概念が出始めていました。研究では工学分野でも通用する用語を使いたいと考え、「テレメトリー」というキーワードを採用しました。この用語はロケット工学や宇宙工学、水道ガスなどのインフラモニタリングでも使われており、クラウド文脈でもオープンテレメトリーという標準実装が普及してきていたからです。
研究全体を通じて共通していたのは「負荷の削減」でした。第1の研究はデータ保存(テレメトリーバックエンド)において処理効率を向上させる内容で、特にメトリクスの数(カーディナリティ)が増加する状況に対して強い構造を構築していました。第3の研究はデータ分析時にメトリクス数が多すぎる問題に着目し、機械学習の前処理段階でメトリクス数を減らす手法を開発しました。第2の研究は計測段階で、TCP接続数が非常に多い状況でもカーネル内でデータを集約してコピー回数を減らし、負荷を削減するというアプローチでした。
全体としては、テレメトリに関わるデータ量が増加する状態に対して、いかにスケールするかという点に焦点を当てていました。ここでのスケールとは、スケールアウトではなく、数が増えても性能を維持する対処能力を指します。
こうした共通点から、「テレメトリーワークロード」という表現を使いました。これは、大量のデータを長期間保存する必要性や、機械学習や人間のオペレーターに多くのインプットが出てくる状況、計測対象システムの負荷が大きく計測処理自体も負荷が増大する状態を指します。そのワークロードへの対応を「テレメトリーワークロードスケーリング」と定義し、これを軸に論文をまとめました。
最終段階でのまとめも大変でした。テレメトリーワークロードスケーリングには実践の中でも多様なアプローチがあるため、なぜこの3つの研究に焦点を当てたのかという疑問に応える必要がありました。そのため、このテーマに関連する研究を広く洗い出し、博士論文として自分の研究が適切に位置づけられるよう整理していきました。これは、これまでの3つの個別研究とは異なる思考プロセスでした。
最終的には博士論文としてのストーリーがしっかりとまとまっているという評価を審査段階でいただき、一定の成果を得ることができました。
2. なぜ博士号をとろうと思ったのか?(4分)
12年前に修士課程を中退した経緯があります。当時はプロセッサーのシミュレーションや GPU によるネットワークスタック高速化の研究をしていましたが、研究室という環境に馴染めず、内定していた企業に早期入社しました。学士のままでしたが、特に学歴に対する劣等感はなく、むしろすっきりした気持ちでした。
当時のウェブ系エンジニアの世界では学歴よりも、OSS 開発やブログ運営、実務での成果が重視される「ギークの集まり」でした。しかし次第にエンジニアとしてのキャリアを進める中で、技術やツールの変化によって知識がリセットされるような短期的な問題解決に違和感を覚えるようになりました。
新卒の頃から、ウェブサーバーのアーキテクチャなど現場のノウハウや「都市伝説」的に語られる内容を学術的に整理する志向がありました。また、単に既存ツールを使うだけでなく、問題に向き合い独自の解決策を見出すことにオリジナリティを感じていました。
このような体系性とオリジナリティの追求が研究への関心につながり、元々修士課程の経験から論文を読むことにも抵抗がありませんでした。仕事ではマネージドサービスの普及により技術的課題より組織的な課題が増えたこともあり、研究職が自分に向いているかもしれないと考え、さくらインターネット研究所へ転職しました。
研究職では博士号が自然な流れとして考えられ、修士号を飛ばして博士課程に進んだ周囲の方々からの助言や、研究所所長からの強い勧めもありました。特に自分でマイルストーンを設定する必要がある研究所の環境では、博士課程が強制的にマイルストーンを与えてくれるメリットがありました。
博士号取得が特定の職に就くための手段というより、自分の考えをオリジナルな成果として博士論文にまとめることに興味を持ちました。元々の適性や偶然の機会に恵まれたことから、過去に研究室に馴染めなかった経験はあるものの、研究に挑戦してみることを決めました。