インタビュー

設計,運用,日々改善~Open Compute Projectに見るFacebook流アプローチ~

この記事を読むのに必要な時間:およそ 4 分

5つのデザインスタンダード

こうなるとその先についても興味が湧いてきます。

  • 筆者:もう少し詳しく教えてください。ソフトとハードのコンビネーションについて。⁠いいとも)

    ハードウェアとソフトウェアはその寿命において違いがあるはずです。ソフトウェアは簡単に更新できるけれど,ハードウェアはおらく2,3年は使うはずです。どうやってハードウェアのスペックを決めるのですか?つまり,どうやって将来予測に合わせたハードとソフトのコンビネーションを決めるのでしょう?

  • M:我々はソフトウェア設計のシニアアーキテクトととても近く仕事をしてます。ソフトウェアアーキテクトと僕のハードウェアチームは,業界がどう進んでいくかを見て将来の設計のフォーカスをどこに置くかを選択するんです。ソフトウェアはとても細かく毎日修正するといっても,全体の設計はそう急には変わらないからです。

    Facebook はまさにそうやって作られたんだ。はじめPHPで書かれたけれど,まだ変わっていない。MySQLで始まって,たぶんまだ変わっていない。少しずつ変えていくんだ。

  • 筆者:いい話ですね。

  • M:我々はとても広範囲なデザイン,Facebookのデザインパターンとでも言うべきものをターゲットとしている。これをソフトウェアアーキテクトとハードウェアアーキテクトの両方が,3年先を見てどんなデザインパターンをターゲットとすべきかを決めるんだ。

    また我々はFacebookのトップ5のソフトウェアチームと一緒に作業していて,ハードウェア設計はこの5つのユースケースでうまく働くように作る。つまり,5つのデザインスタンダードを作り,Facebookの各ソフトウェアチームはこの5つのデザインから選んで自分達のアプリケーションを動作させるんだ。そして,彼らが何を必要としているかも問題ですが,我々もまた彼らのアプリケーションを十分にモニタリングしています。

    たとえばソフトウェアの人が来て「メモリがもっと欲しい」と言っても,我々はまず扱うデータの種類やアクセス頻度,必要なアクセス速度などについて考えます。つまりFlashカードはキャッシュでとてもうまく働くから,ソフトウェアの人が「テラバイトのメモリ(主記憶)が欲しい」と言っても,僕はそれに対して「64GBメモリと1TBの Flashを出すよ」と答えたりするわけです。

    これは1/10の価格でできることで,また多くの場合はこれでとてもハッピーです。ソフトウェアを少し変えて,メインメモリではなくFlashを使うようにして,それでFacebookにとってはより良い結果が出る。これも(コンビネーションの)1つの例だね。

    彼らが我々に「これが欲しい」と頼むのではなく,彼らが必要としているものに合わせて設計するんだ。

写真7 本社入り口前にあるタイトル

写真7 本社入り口前にあるタイトル

おわりに

最後にJohnは,実際にFacebookがPrinevilleで建設業界とIT業界のエンジニアが一緒に作業をしたことが1つの指標となった例があると教えてくれました。つまりある建設会社ではファシリティの人間を再編成して,ITの人達を同じ部署に入れて効率の良いモジュール型データセンターを構築している,というのです。この種の変化は建設業界に限らず設備を持っている会社すべてで起きうるはずで,CIO(最高情報責任者)あるいはCOO(最高執行責任者)といった「C-レベル注6)⁠で認識すべきだ,と。

思わず「なるほど,しかし大変そうだなあ」と返事すると,Johnはこれを東海岸のとても保守的な会社で見たんだ,彼らは我々(Facebook)をインジケータとして変わったんだ,と言います。この「業界」をリードし,変える,といった野心的な視点といい,小さなチーム(Matt曰く「バス1台分」⁠で最初に挑戦的な設計を試して動かしながら日々修正し・更新する態度といい,彼らのアプローチからはやはりFacebook全体に通じる「流儀」を感じます。それが彼らを大きくしてきたのだし,大きくなったからOCPのような活動が大きなインパクトを与えるようになったのだと思います。

筆者は,ここ何年かでFacebookやGoogleのような巨大なサービス企業がコンピュータ業界のありようを大きく変化させており,我々はまさにこの変革に立ち会っているのだと考えています。OCPの1つ興味深いところは,こうした大変革の中心部を,企業の外に居る我々が直接的に見られることでしょう。

オープンソースの価値はさまざまな側面で語られますが,今回の取材を通じてこの「誰もがそれに立ち会える」部分がとても重要であることを感じました。我々はそんな時代に生きているのですね。

注6)
CIO, COOなどのCは,Chiefつまりその部門のトップを指しており,そのレベルでの意志決定を指しています。Johnはこういう面白いフレーズを良く使います。

コラム:ラボルーム

ラボには冷却効果を検証するための風洞写真Aがありました。

これは最初にOCPが動き出したときにWebに掲載されていたビデオに登場したもので,当時見ていた筆者は「ここに来たんだ」と感動しました。Matt が「オーブン」と呼ぶ,温湿度を動的に変えられる試験機写真Bもありました。これにサーバなどの機器を丸ごと入れて稼働温度範囲などを試すわけですが,彼らはデザートストームを想定した急速な温度降下を繰り返し,ボードが伸縮することによる耐久性についても調べたそうです。

筆者はラボを見るのが大好きなのですが,OCPのラボもとても興味深いものでした。

写真A 冷却効果検証用の風洞

写真A 冷却効果検証用の風洞

写真B サーバなどの機器を丸ごと入れて温度変化の耐性を見る試験機

写真B サーバなどの機器を丸ごと入れて温度変化の耐性を見る試験機

著者プロフィール

安田豊(やすだゆたか)

京都産業大学コンピュータ理工学部所属。KOF(関西オープンフォーラム)やiPhoneプログラミング勉強会などのコミュニティ活動にも参加。京都の紫野で育ち,いまは岩倉在住。せっかく復帰させたCBX 400Fに乗る機会がなく残念な日々を過ごしている。

バックナンバー

2013年

  • 設計,運用,日々改善~Open Compute Projectに見るFacebook流アプローチ~