20100520 【qpstudy01】 チームでトライ!インフラ構築のススメ
- 2. 自分
芝生 • 大村幸敬(@yktko)
関西
インフラ
娘^2 エンジニア • SIer
• インフラ専門
• 主に金融機関
オープン
ソース • アプリ以外全部
• 構築→納品
• 保守少し
• 数名×数チーム
酒 あたらしもの
• 提案から実装まで
1
- 3. 伝えたいこと
• インフラエンジニアこそチームプレイ
– その知られざる生態
– 広大な担当タスク・技術範囲
– インフラエンジニアの特性
• インフラチーム運営のポイント
– エンジニアだってスケールアウト
– アジャイルインフラ構築
– 「運用」をゴールに
• 初心者からチームの一員へ
– どんどん失敗
– かならずログ
– いちどはリリース
2
- 4. インフラエンジニアの生態
• アラートメールで起こされ
• 朝からDCに直行し
• ファンの轟音と強烈な冷房にも負けず
• サービスが止まれば顧客の矢面に立たされ
• 社内では手元の仮想環境でこっそり新技術を検証
• 帰りがけに営業から見積りを依頼され
• 一人残って構成図を書く
• 昼にはカレー
• 夜には唐揚げ
3
- 6. インフラ構築タスクの全体像
要件定義
要件定義 基本設計(アーキ)
基本設計(アーキ) 詳細設計
詳細設計 構築/UT
構築/UT ITa/ITb
ITa/ITb ST
ST 試⾏
試⾏ 本番
本番
⾮機能
⾮機能 設計
設計 NW
NW NW
NW NW
NW 性能
性能
要件
要件 ⽅針
⽅針
HW
HW HW
HW
OS
OS OS
OS
AP
AP アプリケーションサーバ
アプリケーションサーバ
DB
DB データベース
データベース
(その他)
(その他) (その他)
(その他) (その他)
(その他)
基本設計(運⽤)
基本設計(運⽤)
運⽤ 監視
監視 監視ツール 監視 サイクル
運⽤ 監視ツール 監視 サイクル
⽅針
⽅針
backup
backup バックアップツール backup
バックアップツール backup
ck
運⽤
運⽤ 運⽤シェル
運⽤シェル 運⽤
運⽤ 運⽤/障害
運⽤/障害
ta
ジョブネット
ジョブネット ジョブネット
ジョブネット
マニュアル
マニュアル
マニュアル
ll S サポート
u
マニュアル サポート
移⾏
移⾏
計画
計画
移設・移⾏
移設・移⾏
初期
初期 IT
IT
F ST
ST 試⾏
試⾏ 本番
本番
5
- 7. インフラエンジニアの技術領域
カテゴリ 個別技術名
業務アプリケーションを動かす技術 フレームワーク/Web/DB
性能・信頼性のための技術 クラスタ/負荷分散/memcached
運用シェルの実装言語 Perl/Ruby/bash/powershell/bat
運用のための技術 バックアップ/監視/ジョブネット
OSに関する技術 Linux/Windows/PaaS
ネットワーク技術 スイッチ/ルータ/WAN
プロジェクト実行の技術 テスト計画/移行計画/運用計画
範 囲
ビジネスマン/障害対応担当者として 論理思考/仮説思考/説明能力
広
6
- 9. インフラエンジニアの特性
• 特定技術に特化する
– 興味のあるところを徹底的に/それ以外はあまり…
– 全体を分かっている人は少ない
• 個人プレイが必要
– 全体がわからないと確信を持って仕事できない
– 忙しいので後輩には「man見ろ」 / 自分でやったほうが早い
• 宗教^h^hこだわり
– 技術的な設計・実装方針でぶつかる
• vi/emacs、Linux/Windows
• percussionに似てる
8
- 12. 1.エンジニアだってスケールアウト
3人のとき n人のとき
タスク タスク
↓ ↓↓↓ ↓↓↓↓↓↓
↓ ↓↓↓ ↓↓↓↓↓↓
サブリーダ リーダ サブリーダ リーダ
スペシャリスト スペシャリスト アニキ
11
- 13. スケールアウト型チームの例
サブリーダ: リーダ:
・現場の課題管理 ・対外窓⼝(write受付)
・技術レビュー/統括 heart-beat ・要件・資⾦・要員管理
・障害時のメイン担当 ・運⽤・技術レビュー/統括
・リーダのバックアップ ・障害時のサブ担当
・新案件の獲得
スペシャリスト: アニキ:
・個別技術の責任者 ・スペシャリストの相談役
・次はアニキ ・サブリーダのバックアップ
• Master-Slave方式のDB構成と似てる…なんとなく
– スペシャリスト間のjoinを減らす
– 上下間��情報同期
– ノードダウン→バックアップ稼動
• すべてのメンバに責任のある役割を持たせる
– それぞれの視点から気づきを促進
12
- 15. 具体的な施策
• スタンドアップミーティング
– 毎朝10分 全員が集まり 実績/予定/問題を報告
– 作業予��の確認、問題点の迅速な把握、エスカレーション
• スプリント計画と振り返り
– 月曜に計画、金曜に振り返りと調整
– 有識者の知識を共有
– 広範囲な技術を学ぶのに有効
• ペア作業
– 本番作業はダブルチェックが必要→ついでに教育の場に
• ベースラインの整備
– 成果物ベースの荒いWBS(タスクよりステータス)
– インシデントはすべて課題管理表へ→課題0=リリース
– 設計書の標準化→ヌケモレを防ぐ
14
- 16. 3.「運用」をゴールに
• 宗教論争 や のめりこみ に対応する
– 実装方式ではなくどのような運用になるか?に注目
– 対立構造ではなく共闘構造に持ち込む
• インフラエンジニア共通のゴール→「運用」
– メンバのベクトルをあわせる
– 各々が動きやすいようにすべての情報を提供
– 厳密な管理より自発的な動きを
15
- 18. 初心者からチームの一員へ
• チームで仕事するにはメンバを増やさないと
– 初心者を一人前のチームメンバにするのもチームの仕事
• インフラエンジニアの特性
– 好奇心旺盛 / 技術が好き / 唐揚げ好(ry
– オーケストラで言えばパーカッションのような
• 一人前って?
– こいつに任せれば大丈夫
– 問題が出ても片付けられるよ
• 一人前になるためには?
17
- 20. 2.必ずログをとろう
• こんなことありませんか?
– うまくいかなかったという事実はよく覚えている
– 試行錯誤してたらうまくいった!
– 喜んで次のターゲットに向かう
– そして何をやってうまくいったのかを覚えていない
– で、同じところで、またつまづく
• ログは自動的に取って保存&ふりかえる
– Teratermで時刻つきのログを自動的に取るとか
– 作業時刻だけ記録しておいて、あとから振り返る
– 全文検索との組み合わせがおススメ
19
- 22. おわりに
• インフラエンジニアこそチームプレイ
– その知られざる生態
– 広大な担当タスク・技術範囲
– インフラエンジニアの特性
• インフラチーム運営のポイント
– エンジニアだってスケールアウト
– アジャイルインフラ構築
– 「運用」をゴールに
• 初心者からチームの一員へ
– どんどん失敗
– かならずログ
– いちどはリリース
21