ブログ - Googleを支える技術
この本,出版されてから半年くらい経ちますが,本屋に行くと売れ筋No.1となってますね. 買ったまま転がしていたのですが,やっと読みました.
Googleは,外から見ても誰もが判る巨大システムですが,いったいどういった規模でどういった仕組みで作られているのか,これまで明らかになっていません.
この本でも,正確な所は明らかになっていないのですが,Googleが発表している論文を読み解いたり,報道されている内容やインタビュー等からその仕組みと規模を想像してみてまとめてみたというのが,この本の趣旨です.
第1章ではPageRankやクローリング,インデックス作成のような事がかかれていますが,システム屋が,外から見てキーとなるポイントは,次のような物です.
1.大容量ストレージ
2.大量のトランザクション
3.サーバ構築と管理
技術的には非公開ですが,次のような技術要素があるようです.
1.Google File System(GFS):分散ファイルシステム
2.BigTable:分散ストレージシステム
3.Chubby:分散ロックサービス
4.MapReduce:分散処理基盤技術
5.Sawzall:分散処理専用開発言語
これら第2〜4章で構築された基盤技術を用いながら,Googleは構成されているとされていますが,私には読んでも論文を読み解いた細かいロジックは良く理解できませんでした.(笑)
ただし,基本的に思想・概念自体は,さらりと読んでもわかりますね. 基本的にはそれら基盤技術は公開されることはないしGoogleの中の人でさえ,意識せずにAPIだけ使っても成り立つ様にできていると思います.(負け惜しみ)
第5章になると,インフラ系の話になります. Googleのデータセンタがいくつか構築されていますが,その人材採用情報やGoogle Mapで空から敷地を見て想定されるサーバ台数や消費電力等をはじき出し,年間コストを算出してみたりしています.
あとはコンピュータの故障部品第1位と言えるとおもいますけど,ハードディスク. ここ5〜6年?のハードディスクは,S.M.A.R.T.という機能で温度や読み書きエラー発生情報等のステータスが取得できますが,これらと故障率等の相関関係等を調べたデータがあります.
この情報の元となる論文が公開された時に一部話題になったのですが,Googleは色々なメーカのハードディスクを購入しているので,メーカ別,さらにその製造時期等からみた故障しやすいデータを持っている筈だという噂がありました. そのデータは,本当に教えてもらいたいですね...
第6章では,開発体制について書かれていました. 1つのチームは2〜6人程度の小規模とされていて,大きくなったら分割する様です.
また,レビューやドキュメント化プロセス等を最初から作っていないと評価に至らない決りになっているようで,品質にとても気を使っている様です.
まぁ,たしかに多くなってからだと大変ですから,最初からそういう「決り」となっているのが理想です.
そう言う意味で,理想的な会社を作っているという事ですね.
Googleは,外から見ても誰もが判る巨大システムですが,いったいどういった規模でどういった仕組みで作られているのか,これまで明らかになっていません.
この本でも,正確な所は明らかになっていないのですが,Googleが発表している論文を読み解いたり,報道されている内容やインタビュー等からその仕組みと規模を想像してみてまとめてみたというのが,この本の趣旨です.
第1章ではPageRankやクローリング,インデックス作成のような事がかかれていますが,システム屋が,外から見てキーとなるポイントは,次のような物です.
1.大容量ストレージ
2.大量のトランザクション
3.サーバ構築と管理
技術的には非公開ですが,次のような技術要素があるようです.
1.Google File System(GFS):分散ファイルシステム
2.BigTable:分散ストレージシステム
3.Chubby:分散ロックサービス
4.MapReduce:分散処理基盤技術
5.Sawzall:分散処理専用開発言語
これら第2〜4章で構築された基盤技術を用いながら,Googleは構成されているとされていますが,私には読んでも論文を読み解いた細かいロジックは良く理解できませんでした.(笑)
ただし,基本的に思想・概念自体は,さらりと読んでもわかりますね. 基本的にはそれら基盤技術は公開されることはないしGoogleの中の人でさえ,意識せずにAPIだけ使っても成り立つ様にできていると思います.(負け惜しみ)
第5章になると,インフラ系の話になります. Googleのデータセンタがいくつか構築されていますが,その人材採用情報やGoogle Mapで空から敷地を見て想定されるサーバ台数や消費電力等をはじき出し,年間コストを算出してみたりしています.
あとはコンピュータの故障部品第1位と言えるとおもいますけど,ハードディスク. ここ5〜6年?のハードディスクは,S.M.A.R.T.という機能で温度や読み書きエラー発生情報等のステータスが取得できますが,これらと故障率等の相関関係等を調べたデータがあります.
この情報の元となる論文が公開された時に一部話題になったのですが,Googleは色々なメーカのハードディスクを購入しているので,メーカ別,さらにその製造時期等からみた故障しやすいデータを持っている筈だという噂がありました. そのデータは,本当に教えてもらいたいですね...
第6章では,開発体制について書かれていました. 1つのチームは2〜6人程度の小規模とされていて,大きくなったら分割する様です.
また,レビューやドキュメント化プロセス等を最初から作っていないと評価に至らない決りになっているようで,品質にとても気を使っている様です.
まぁ,たしかに多くなってからだと大変ですから,最初からそういう「決り」となっているのが理想です.
そう言う意味で,理想的な会社を作っているという事ですね.