人間とウェブの未来

「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。

現場の技術を知らずに研究するコンプレックスについて

僕は大学時代に研究を続けたかったのだけど、当時アルバイトとして働いていたレンタルサーバー会社の中の取り組みがとても高度に思えて、こういう状況を知らずに研究を続けるのは怖いと思って、大学院に行かずに就職した。そして、3年後になんとか大学院に再び入り直すことができたし、博士課程での研究では随分と会社で学んだ運用技術をネタにした研究をすることができた。

これまで、僕は運用技術をネタに研究をやってきたのだが、研究に専念すればするほど、その経過時間だけ新たな運用技術の時代背景や細部も変化していき、それを個人としてうまくキャッチアップして研究につなげていくことが非常に困難であることに数年前から気づき始めた。でも、自分自身はそれを素直に受け入れることができず、どうにか自分の現場の経験があることを武器に研究をすることにこだわっていた。しかし、それも誤魔化しきれない程に、少しずつ少しずつ限界が来ていたし、自分で見ても、その武器はもはやサビきっていた。

現場の技術を知っていると中途半端に拘り続けると、知らない間に細部を認識できなくなり、表面的な実践に囚われて研究の質が低下する。自ずと実践的なネタを一個人の研究として活用できなくなっていくのだ。だからこそ、研究所を研究チームとして構成し、今の運用技術を体験している人と共に知識領域を分担しながら研究していく必要があると考え、その方向に舵をとることに決めた。より自分の強みに専念し活かしながら、今リアルな実践を体験してるエンジニアと一緒に研究開発することが更なる優れた研究を生み出すと信じて。専門性を持つとは、こういうことなのかもしれない。

研究に専念することにより、次第に現在の運用技術の細部を理解できなくなることについて、自分を納得させるのには本当に時間がかかったし、そのように認識するのは苦渋の決断ではあった。しかし、今所属するさくらインターネット研究所では、今の現場を深く認識している優れたエンジニア達と一緒にやれるようになってきたのは幸せなことなので、更にやっていきたい。

この話のもう一つの文脈で、現場を知らずに研究をするのは難しいのか、先に経験したから有利なのか、という問いである。これについては、前述したように、先に経験していてもその技術には賞味期限があるので、研究に専念しているといずれ少しずつまた現場を知らないコンプレックスが出てくる。結局、どのタイミングでこのコンプレックスと向き合うかの選択なのだろうと思える。

それをこれまでの経験から認識できたという意味と、賞味期限のある現場の技術を出来るだけ普遍的に活用できるように、博士論文を通じて抽象化して理解しようと取り組めたという意味で、現場を先に学べてよかったとは思える。しかし、一般的に言われるような、現場の知識を先に学べると社会の課題を研究に活かせて研究がしやすくなるという点では、先に述べた通り、これまた研究に専念している間の時間の経過とともに更に現場の技術は変化していき、そのメリットについては数年で限界が来るように思えるので、そこがポイントではないだろうと今は思える。

そういう意味で、若くして研究したいけれど現場を知らないことにコンプレックスや不安を感じ、研究するかを悩んでいる人には、あまりそこは気にしなくていいよと伝えたい。が、それに気付けるのはこういう経験があったから、とも言えるので、やはりこの類の話をうまく伝えるのは困難ではある。さらに、企業の研究所だからといっても、プロダクトと研究開発が近すぎると、新規開発によってしまって研究としても開発としても中途半端になるパターンもある。

つまり、企業の研究所の旨味は、しっかりと研究や実践などの知識分担をできるチームとして構成し、それぞれに関心を持ちながらも核となる行動は引きずられずに分担して活動し、いずれ新たなプロダクトを作る際に必要となるかもしれない選択肢を多面的かつ長期的に用意しておき、その各選択肢において深い知識と理解を有する研究者がいることにこそ、企業としての技術投資と差別化のメリットがあるだろうと思える。多くの技術的選択肢と、その選択肢を深く理解しておけることは、これからの技術の透明性が進むインターネットに関わる企業としては、その透明化される技術を自ら生み出し続けられるという意味で非常に重要な要素になる。

ここからさらに主語を大きくして、僕は日本のインターネットと運用技術の研究で学術や企業に身を置いて今も研究をしているのだが、全体の状況を眺めると、過去の自分の運用経験があることに囚われ、今もなおそこから抜け出せず、新しい運用技術の細部を見ていないことや、リアルな現場の活動や技術について歩み寄れていない点が非常に大きな問題と感じている。例えばUSENIXが関連する運用技術に関するトップカンファレンスのUSENIX LISAや技術カンファレンスのSREconなどでは、Google、Facebook、Netflix、Fastly、Microsoft、Red Hat、他の大学などのそうそうたる研究者やエンジニアが積極的に新しい技術を深く追求している。そこに日本の研究者の名前はほぼない。これらに関連する日本の研究界隈では、コンテナやマイクロサービスなんて今までの技術となんら変わらない、機械学習や深層学習?昔からあるよね、と言って見向きもしない人たちもいる。SREすら知らない人もいるだろう。

僕が所属するさくらインターネット研究所はそうならないように研究所をチームとして構成していくつもりで、その第一弾としてServerspecのmizzyさんやk8s本の青山さんをお招きして、この辺りをしっかりと分担しつつ、僕自身も過去の経験に囚われないようにバランスをとりながら、グローバルな水準で研究開発をして行こうと取り組みを開始し始めているのが現状です。

やっていきます!


2019/03/27 10:50 追記

色々とはてブコメントは目を通しておるのですが、まず考えるべきは僕が指摘している分野は運用技術の分野なので、運用技術を工学するにも関わらず実践や実装を考えないあり方もあるというのは無理があるように思えます。運用技術は読みかえれば「実践するための技術」とも言えます。すなわち運用技術の研究とは、実践する技術の進化を精緻に観測し、自らも押し進めながらその貢献を普遍的に解釈して言語化し、論文として叡智に積み重ね、その進化に寄り添いながら新しい実践のあり方をさらに追求することにあるでしょう。となると、最新の進化の現状を追えていないのはサーベイ不足に他ならないのではないか。

なので、例えばコンテナやマイクロサービス、サーバレスアーキテクチャ、クラウドネイティブを始めとしたCNCFの取り組みなど、そういった技術や設計手法、サービスが広く使われ始めている現状を踏まえ、運用技術の最新情報をウォッチして、なぜ普及しているのか、この先どうなるのか、我々がやるべきことは何か、などしっかり解釈・検証して未来像を描くというのは必要だろうと思うのでした。そういう意味でも、研究だからといって実践や実装を軽視するといった見方は、少なくとも運用技術の研究においてはよろしくないだろうと思えます。