matsumotoryの話

第1話
matsumotoryという男
第2話
ペパボを選んだ理由
第3話
アウトプットの重要性

matsumotoryの話

第1話  matsumotoryという男
第2話  ペパボを選んだ理由
第3話  アウトプットの重要性

今回の登場人物

栗林 健太郎(あんちぽ)
人間たちからあんちぽくんと呼ばれるペパボの執行役員CTOとしてすっかりおなじみ。常日頃アウトプットの重要性を訴えつつ、自ら率先してアウトプットを行う。GMOグループの新卒エンジニア向けに発表したスライドが巷で話題。

松本 亮介
技術基盤チームのアドバンスド・シニアエンジニアとして2015年4月に入社。mruby活用によるOSSへの貢献が評価され、数々の賞を受賞。京都の大学院博士課程を経て、ペパボ就職と同時に福岡へ移住。一児の父。

「もうここしかない」と思った

あんちぽ
そこからペパボに今年4月に入社されたわけですけど、入社に至るまでの経緯をお聞かせいただけますか?
松本
僕は技術で社会貢献したいという気持ちがずっと強くて、学んだ技術をオープンにしていきたいと思っていたんです。博士課程で研究していたときに、「ペパボがオープンに仕事や技術を公開しだしてるぞ」みたいな話が聞こえてきて。しかも、この会社はホスティングサービスをやっている。自分の専門分野を生かしつつ、新しい技術を追求しながら社会貢献ができる。もうここしかないって思いました。
あんちぽ
で、入社前から何度かお会いして、オフィスにも来ていただいたりしましたね。
松本
そうなんです。新入社員とかいって4月に入社したんですけど、入社したばかりなのにOSS活動を通して知っている顔が結構ある。不思議な感じでした。
あんちぽ
正式な入社は4月ですけど、実はその前から数ヶ月間、リモートワークで参加していただいてたんですよね。どういう感じでやってらっしゃったんですか?
松本
そのときは完全に子育てメインの生活をしてたので、基本的には全てリモートでした。日中、妻は働いていて、僕が家で子どもの面倒を見ていたので、子どもが寝静まったあとに、夜中に時間を見つけて作業するっていうやり方をしてました。
あんちぽ
子育てと研究と仕事の両立については、ブログにも書いておられましたね。
松本
はい。「学生として、フリーランスエンジニアとして、1年間子育てをして思った事」というタイトルで。
あんちぽ
そして4月に福岡に引っ越されて、リモートではなく実際にオフィスで働くことになったわけですね。主にロリポップ!に関わることが多いと思うんですが、そもそもどんなことをしたいとお考えだったんですか?
松本
ロリポップ!のように、ひとつのサーバーに複数のお客さんが入るっていうマルチテナント型の大規模なサービスで、セキュリティとパフォーマンスをどう効率よく最大化するかということは、僕の研究してきた内容と非常に親和性が高いんです。研究してきたことが実際の運用できちんと役に立つかどうか検証して、改善できたときに、きちんとお客さんに実感してもらえるか、というところを徐々に取り組んでいきたいと思っています。
あんちぽ
直近で、既に取りかかってることはありますか?
松本
共用サーバーの特長として、お客さんの使い方によって、ひとつのサーバーの中にいるお客さん同士が相互に影響を受けやすいという弱点があるんですが、一方で必要なときに細かいことを気にせずガンガン使えるという共用サーバーならではのよさもあるんです。主にリソース制御の仕組みを改善してこのメリットを最大化しつつ、デメリットを最低限に抑えるということをこれまでにない高いレベルで両立したいと思っています。まずは基礎技術を導入して、実際に検証を始めているところです。
あんちぽ
その課題を解決するために、既存の技術に加えて、松本さんが研究の過程で作られたngx_mrubymod_mrubyを適用させているんですね。
松本
そうですね。やっぱり既製技術だけでは限界があると思っているので、それをミドルウェアの中で効率的に、かつ運用する人が制御しやすい仕組みにするための実装のひとつとして、mod_mrubyやngx_mrubyという僕が作った仕組みを取り入れています。このふたつはある程度運用者が制御しやすいインターフェースを持っていて、かつ内部で動的に処理を行うことができるので、これらを組み合わせることで、運用者の使いやすさを担保しながら効率よくパフォーマンスを最大化できると考えています。
あんちぽ
松本さんが経てきたような、学部で卒業して世の中を知るために社会人になって、興味を掘り下げるために研究者になって、また企業に入ってその成果を活かして、という流れは結構ストーリー性のある構想に思えるんですけど、当初から思い描いていた流れなんでしょうか?
松本
mod_mrubyやngx_mrubyは、当初の研究計画には入ってなかったんです。たまたまmod_luaとかあの辺のミドルウェアの設定をコードで書く技術をちらっと見かけて、研究とは関係ないんですけど、興味を持っていたんです。Luaはウェブエンジニアにとってあまり馴染みがないので、もっといい方法はないかなと思っていたときにちょうどMatzさんがmrubyを公開したので、Luaじゃなくてmrubyで書いたら結構いいんじゃない?って思って作り始めたのがきっかけです。最初は研究とは離れた趣味のOSS活動の一環だったんです。
あんちぽ
ほとんど勢いでやってみたっていう感じだったんですね。
松本
勢いでやってみましたし、僕の中では研究とはまったくリンクしてなくて、本当に自分の趣味の一環でやってたんですけど、「これうまく研究としてまとめたら面白いから論文書いてみませんか?」って教授からいきなりメールが来たんですよ。その時点では全然そんなこと思っても見なかったんですけど、mod_mrubyやngx_mrubyの新規性や有効性はどこにあるのか、ということを研究ベースで考えるようになりました。で、研究を進めていくと、そっちがすごく評価されるようになってきたんです。それまでやっていた研究とは比べものにならないくらい、技術的にも学術的にも評価を得るようになって、揚げ句の果てにはOSS奨励賞とか、当時は考えてもなかったような賞をもらえるまでになりました。
あんちぽ
おそらく興味の方向としては一貫してるんだけど、寄り道のつもりだったものがいろんな偶然もあって、突然爆発的に広がったっていう感じですかね。
松本
そうですね。僕の教授が言ってたんですが、確かに最初に立てた研究計画通りに研究を進めていくのが基本ではあるんですけど、やっぱり研究っていうのは寄り道をしてみたりとか、自分の興味が全然違う方向にいったときに、あるとき急にそれがいろんなことに結びついてすごい成果を生むっていうのは往々にあるらしいんですよね。結局mod_mrubyもそういうことだったんだなと思いました。で、それをあらかじめわかっていて論文執筆を勧めてくれた教授はやっぱりすごい人だし、なかなか勝てないな、って思いましたね。
あんちぽ
mod_mrubyとかngx_mrubyって、いわゆるウェブサービスやホスティングで使えるものだという認識なんですけど、最初からそういうことを考えていたわけじゃないってことですよね。
松本
そうですね。とにかくmruby面白そうっていうのと、ウェブサーバーをrubyで制御できるとかっこいいし楽しいし、というところから始まってるんですが、いざ論文にしようとすると最初の動機だけでは全然足りなくて、例えばmod_mrubyっていうのはmrubyを使ってるから優れてるのか?じゃあmrubyじゃなくて別の言語を使うと、そのmod_mrubyの価値は下がってしまうのか?みたいなところから議論しないといけない。僕の技術が本当に社会に貢献するかどうか確かめるためには、mruby以外の言語であってもアーキテクチャが優れているということを明らかにできないといけないんです。そんなことを考えていくうちに、自ずとウェブサービスでもホスティングでも、いろんな場面に使えるなというふうに、どんどん理解が深まっていったっていうのがありますね。
あんちぽ
その流れを経て培ってきた実績が、今ペパボのサービス改善に生かされているわけですね。
松本
はい。
あんちぽ
いろんな偶然が重なったんですね。数日とかで作ったんですよね、mod_mruby。
松本
mruby公開の次の日に公開したんですよ。本当にもう、「動いた!うおー!」ってテンション上げながら、寝ないで作るくらいの勢いでした。
あんちぽ
楽しくて勢いで作ったものが結果的に研究にも仕事にも強くかかわってくるようになったという意味では、自分の好きなことや興味のあることを一貫してやっているというベースがあったからこそ、ちょうどいいタイミングをつかむことができたんじゃないかとも思えますね。
松本
今までの僕の人生を振り返っても、自分がやりたい・楽しいと思ったことをやるというブレない軸があったからこそ、多少寄り道しても最終的にはいい方向に進んだっていう経験は多かった気がします。

次世代ホスティングの時代

あんちぽ
昨今ロリポップ!のような形のホスティングサービスだけではなくて、VPSやIaaS、クラウドサービスなんかも増えてきましたが、両者の共通点や違いってどんなところにあるんでしょうか?
松本
すごく難しい質問なんですけど、僕はホスティングサービスというのは運用を売るサービスだと思っています。保守管理とか、運用とか、一般に面倒だと思われがちなところを全部やってあげる。一方で、VPSやIaaSは企業や個人がこれまでのホスティングの枠組みにとらわれないサービスをどんどん工夫して作れるようになっている。そういう流れはごく自然で、インターネットの進化にはすごく合ってると思うんですね。でも、個人的にはもう一度ホスティングって必要とされる時代がくると思っているんです。提供の形態は今までのホスティングと大きく変わるとは思うんですけど、自分でシステムやサービスを作ると、次に必要となるのは運用です。既に今、運用の自動化や効率化に焦点が当たることって多いじゃないですか。でも、よく話を聞いてみると、彼らの悩みって、僕やkurodaさんが、10年前ぐらいに同じようにすごく悩んで解決してきたことと同じだったりするんですよ。VPSでサービスを作る人は今後も増えると思うんですが、運用の大変さを解決したいっていう要望が出てきたときに、運用を売りにしてきたホスティングのノウハウは必ず使えると思ってますし、「運用を提供するサービス」っていう形でホスティングが提供されることもあるんじゃないかと思っています。
あんちぽ
ロリポップ!のような共用サーバーを利用するほうがよい場合って、どのような場面が想定されると思いますか?
松本
共用サーバーのデメリットはひとつのサーバーを使用しているお客さんのうち、1人でもリソースを思い切り使ってしまうと、他のお客さんがその影響を受けてパフォーマンスが低下してしまうという点なんですが、裏を返すと、それってメリットにもなり得るんです。サーバー自体は大きなコンピュータリソースなんですよ。元々のリソースはたくさんあるので、サーバーが空いてるときは存分に使ってもらって構わないし、お客さんは快適な環境を手に入れることができる。デメリットの部分をサービスがある程度担保できれば、VPSと比べても低価格で快適な環境を提供することができるんです。
あんちぽ
例え話をすると、ホスティングってマンションみたいなものだと思うんですね。ひとつ建物があって、そこにいろんな人が入居している。そのマンションの壁が薄いと隣の部屋から音が聞こえてきて、嫌だなあってなるわけですよね。マンションを管理する側としては、いかにマンションの部屋数を多くしながら壁を厚くするかっていう問題だと思うんです。その際に「じゃあ壁を5メートルぐらいにしましょう」っていう解決策をとっているのが、例えばVPSだったりするんです。だけど逆に、「薄くても音が漏れない壁を作って解決しよう」っていう方法をとるのが、松本さんがやってらっしゃるような技術革新ということだと思うんですよね。
松本
壁が薄くなると部屋も広くなるし、入居できる人数も増える。サービスを受ける側も提供する側も、両者にとってメリットになるんじゃないかなと思います。


~第3話へつづく~