Slide 1

Slide 1 text

Site Reliability Engineering
 2nd
 DevOps unit study group
 Makoto Korenaga
 


Slide 2

Slide 2 text

アジェンダ
 1. Googleのプロダクション環境
 1.1. ハードウェア
 1.2. システムソフトウェア 
 1.3. ソフトウェアインフラストラクチャ 
 1.4. 開発環境
 
 


Slide 3

Slide 3 text

Googleのプロダクション環境


Slide 4

Slide 4 text

ハードウェア
 ● マシン ・・・ 1つのハードウェア(あるいは1つのVM)
 ● サーバー ・・・ サービスを実装しているソフトウェア
 クラスタオペレーティングシステムBorgがマシン上で起動させるサーバーのリソース 割り当てを行う。


Slide 5

Slide 5 text

ハードウェア
 ● ラック・・・数十台のマシンを配置
 ● クラスタ・・・1つないし複数の列(複数のラックで構成)で構成
 ● データセンター・・・複数クラスタを格納
 ● キャンパス・・・近くに配置されたデータセンター群
 ● Jupiter・・・データセンター内で高速通信する為のClos Network装置
 ● B4・・・データセンター群を相互接続する地球規模のネットワーク


Slide 6

Slide 6 text

ハードウェア
 Google データセンター内の光景 


Slide 7

Slide 7 text

システムソフトウェア
 Borg
 マシン群を管理する分散クラスタオペ レーティングシステム


Slide 8

Slide 8 text

システムソフトウェア
 D
 HDDやSSD含めたファイルサーバ
 Colossus
 一般的なFSセマンティックに加え、レ プリケーションと暗号化を提供する ファイルシステム


Slide 9

Slide 9 text

システムソフトウェア
 1. OpenFlowベースのSDN ネットワーク間での最善経路を事前に計算 2. Bandwidth Enforcer(BwE)
 利用できる帯域を最大化する為に利用可能帯域を管理
 3. Global Software-Load Balancer(GSLB) 3.1. DNSリクエストに対するロードバランシング 
 3.2. サービスレベルでのロードバランシング 
 3.3. RPCレベルでのロードバランシング 


Slide 10

Slide 10 text

システムソフトウェア
 Chubby
 ロックサービス(複数箇所のデータセンターに跨 がる)
 非同期合意形成には Paxosプロトコル使用
 Borgmon
 モニタリングプログラム 
 サーバーメトリクスの定期スクレイプ 


Slide 11

Slide 11 text

ソフトウェアインフラストラクチャ
 Stubby
 すべてのサービスで使用されるリモートプロシージャコール(RPC)。
 オープンソースでgRPCとして公開。
 Protocol buffers
 RPC間のデータやりとりに使用。
 XMLと比較するとサイズは1/3〜1/10、速度は20〜100倍高速。


Slide 12

Slide 12 text

開発環境
 AndroidやChromeのように独自のオープンソースリポジトリを除けば、Googleのソフ トウェアエンジニアは単一の共有リポジトリを使って作業している
 ● 自分のプロジェクト外のコンポーネント不具合に遭遇した場合、自身でその問題を修正し変更の提案 (changelistもしくはCL)を所有者に送り、レビュー後メインラインに投入してもらうことができる 
 ● 自分のプロジェクトのソースコードに変更を加える際にはレビューが必要 
 ● ソフトウェアのビルドはデータセンター内のビルドサーバーへビルドリクエストが送られ実行 
 ● プロジェクトによっては push-on-greenシステムによりテストをパスした新バージョンが自動的にプロダ クション環境に送られる 
 


Slide 13

Slide 13 text

次回予告


Slide 14

Slide 14 text

リスクの受容
 サービスレベル目標
 
 第参回


Slide 15

Slide 15 text

ありがとうございました
 参照:
 SRE
 サイトリライアビリティ 
 エンジニアリング
 Googleの信頼性を支えるエンジニアリングチーム 
 (オライリー・ジャパン)