システムビジョンを語り合ったペパボ・はてな技術大会〜インフラ技術基盤@福岡

Webオペレーションエンジニアのid:y_uukiです。 今日は10月7日にGMOペパボ株式会社さんの福岡支社にて開催しました「ペパボ・はてな技術大会〜インフラ技術基盤〜@福岡」のレポートをお届けします。ペパボさんのレポートはペパボ・はてな技術大会〜インフラ技術基盤〜をペパボ福岡支社で開催しました! - ペパボテックブログにて公開されています。 ペパボさんとの技術大会は、昨年からの継続的な取り組みとなります。

今回の技術大会では、「Webサービス基盤技術の開発・運用の考え方やビジョンとその実践」をテーマにさせていただけないかと、はてなからペパボさんへお願いしました。 というのも、はてなのWebオペレーションチームでは、基盤システムのビジョンを現在策定しようとしているため、そのアウトプットの場になればという思いがあったからでした。 ペパボさんは、「なめらかなシステム」に代表されるように、Webサービスの基盤技術に対してすばらしいビジョンを掲げそれを日々実践されていると感じています。 そのペパボさんからみて、はてなが構想しているビジョンをどのように捉えていただけるかという、ある種挑戦者のような気持ちでイベントに臨みました。

以下では、全発表のうちはてなの分を紹介します。

はてなシステム構想 by y_uuki

はてなシステムというそのままの名前をつけた、はてなの基盤システムにおける構想中のビジョンを紹介しました。 ビジョンの出発点は、システムの運用に疲弊せずに、エンジニアが創造性を発揮して楽しく開発をしたいという欲求でした。 そして、はてなの基盤システムなのだから、はてなのミッション/ビジョンから導出しようと試みました。加えて、はてながもともと持っている個々の特徴的な要素1を合わせて考えました。 最終的には、はてなシステムとは、サービスの「個数」と「時間」に対してスケールさせることを目標に、「分解と再構築/Repairable」と「観測と実験/Experimentable」というキーワードを基にしたものになりました。 かなり抽象的な話になりましたが、懇親会やWeb上でいただいた感想では、だいたい理解していただけたようでほっとしました。

詳細については、別途ブログに書こうと思います。

はてなのインフラストラクチャ設計構想 by masayoshi

前述のid:y_uukiの発表を継承し、id:masayoshiからは、Repairableなインフラストラクチャ設計を紹介しました。 具体的には、「分解と再構築」の考え方をアーキテクチャ軸と機能軸にそれぞれ適用するとどうなるかという話です。 前者のアーキテクチャの分解と再構築は、基盤システムのレイヤアーキテクチャ(Resource,Domestic Infrastructure, Service Adapter, Service Application)を定義し、システムのRepairable化とエンジニアの担当領域を明確化するというアイデアです。 後者の機能の分解と再構築の例として、IPアドレスの払い出し機能を紹介しました。これまでサーバ管理ツールに密結合だった諸々の機能を分解し、IPアドレス払い出しツールを開発して再構築するという事例になっています。

詳細については、id:masayoshi がきっとブログに書いてくれるはずです。

トークセッション 「なめらかなシステム vs はてなシステム」

最後のトークセッションは、ペパボさん側は、id:matsumoto_rさんとid:monochromeganeさん、はてな側はid:masayoshiid:y_uuki、モデレータをペパボCTOのあんちぽさんにお願いし、テーマを「なめらかなシステム vs はてなシステム」というバーン感のあるものに設定しました。 なめらかなシステムについては、レンサバの常識を覆す「なめらかなシステム」に挑む──運用技術を学術研究して実際のサービスへ適用 - はてなニュースなどで既に紹介されていますが、 はてなシステムについては、今回が初出となりました。 なめらかなシステムの定義については、ペパボ研究所のサイトにて確認できます。

セッション中では、なめらかなシステムのほうが上位概念ではないか、いやはてなシステムのほうがシステムに対する直接的な操作をする表現まで含まれているため先にいっているでは、といったどちらのビジョンが優位かどうかの議論がありました。 前者についてはそのとおりだと思っていたのですが、後者の観点は自分にはなかったため、また一つ新たな気付きを得ることができました。

優位性とは別に、基盤に対する取り組み方の違いと共通点を垣間見ました。 まず、どちらのビジョンも互いのシステムにとって有用ではありますが、異なるサービスを提供しているため、取り組む技術が異なります。 一般に、ホスティングサービスでは、任意のアプリケーションをホストすることを前提とする基盤になり、はてなのようなWebサービス事業者は自社開発したアプリケーションのみをホストすることを前提とする基盤になります。 例えば、前者ではハードウェアリソースを無数のアプリケーションに公平に配分する制御技術が発達し、後者では多数のアプリケーションを制御というよりは状態を把握する動的ホストレジストリ技術2が発達するといったものです。 一方で、共通点として挙げられるのは、互いに必要なものを自分たちで開発しているという点です。 例えば、ペパボさんは、既存のコンテナエンジンではなくhaconiwaを開発し、はてなではdrootを始めとした複数のソフトウェアを組み合わせてコンテナをデプロイしています。

その他、いろいろなトピックについて話をすることができ、充実した時を過ごすことができました。 打ち合わせなしでモデレートしていただいたあんちぽさんの手腕は凄まじく、初出のはずのはてなシステムと、なめらかなシステムの性質の共通点と相違点をうまく浮き彫りになるように誘導していただいたおかげで、単なる比較ではない、より高度な次元で議論することができたと思います。

セッション内容の詳細はペパボさんのレポートでも紹介していただいています。

tech.pepabo.com

むすび

はてな側の視点で、技術大会の内容をレポートとしてまとめました。 互いのビジョンを突き合わせて議論するという世の中にはなかなかみられない取り組みになったと感じています。 登壇者として、大変楽しめたイベントで、今後も継続的に開催していきたいと思っています。 会場設営などもろもろの準備をしていただいたペパボの皆様どうもありがとうございました。

はてなとしては、ビジョンは定義できつつあるものの、ペパボさんと比較し、ビジョンから生まれた成果ではまだまだ負けています。 ペパボさんの若手エンジニアである@takumakumeさんと@ry023さんの発表はまさに実践の段階といえるものでした。 また、@linyowsさんの発表では、いまでこそペパボさんは技術の会社というイメージがありますが、そこまで至るにはさまざまな課題があったことをうかがい知れるものでした。 今後は、はてなでも基盤開発の成果をどんどんアウトプットしていきたいと思います。

ところで、トークセッションの最後に、id:masayoshiからWebシステム基盤技術の研究会をやりたい(意訳)という話があり、そのあとid:matsumoto_rさんやid:monochromeganeさんと一緒に盛り上がり、Webシステムアーキテクチャ研究会(Web System Architecture=wsa研)を発足するぞという話になりました。wsa研の第1回を今のところ、12/23(土)にはてな京都オフィス3開催を予定しています。

蛇足ですが、はてなでは、Webシステムの基盤技術をやっていくエンジニアを募集しています。


  1. 公開されているものでは、Mackerelぼくがかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく、Songmuさんのhorenso、拙作のdrootなどがこれにあたります。

  2. Mackerelなどがこれにあたります。

  3. 社内調整中です。