システムをダイナミックに運用する from DevLove関西
-
Upload
daisuke-kasuya -
Category
Services
-
view
531 -
download
4
description
Transcript of システムをダイナミックに運用する from DevLove関西
システムをダイナミックに 運用する
2014-10-03 DevLOVE関西 運用現場の話を聞いてみる
@daiksy
自己紹介
粕谷 大輔 (@daiksy)
フリュー株式会社ソーシャルゲームの運用・開発Scala + Playframework2
何に対して”ダイナミック”に運用するのか?
1日数回のリリース
ボタンサイズ・位置調整
文言の変更
画像差し替え
軽微な不具合修正 etc
1日数回のリリース
商用リリースがゼロの営業日は 基本的に存在しない!
2-4週間おきに大型アップデート
機能追加
販売アイテムの追加
イベント(クリスマス・ハロウィンなど)
アップデート時は原則無停止
2-4週間おきに大型アップデート
DBの定義変更時などは
計画停止する場合もある
高負荷
広告出稿
期間(時間帯)限定イベント
瞬間的に通常の2~10倍のPVイベントで秒間2万リクエストくらい
1. インフラ
1.インフラ
AWSを利用EC2, RDS, S3
スケーラビリティを重視
1.インフラ
スケールアウトの自動化1日1回商用サーバのAMIを作成このAMIから自動的に指定台数分サーバーを自動構築負荷タイミングが比較的読みやすいので、 オートスケールはやっていない
2.ワンタッチデプロイ
1.ワンタッチデプロイ
hikyakuさん社内IRCに常駐するbot
IRCでhikyakuさんにお願いするとデプロイしてくれる
1.ワンタッチデプロイ
hikyakuさんの仕事githubからコードを取得してビルド
対象サーバをロードバランサから切り離す対象サーバに対してデプロイ & アプリケーションの再起動
ロードバランサに再接続↑ロードバランサに接続されてる全サーバに対してこれを実施
1.ワンタッチデプロイ
きめ細やかなデプロイアプリケーションの構成要素すべてviewのみ
画像やアニメーションのみアプリケーションのメンテナンスモードへの切り替え
3.サーバ監視
3.サーバ監視
外部会社に監視を依頼CPU使用率, ディスク使用率, ロードアベレージ etc
閾値超過でアラート・または電話連絡CPU使用率80%以上 etc
3.サーバ監視
RDSのディスク容量は過去数回、アラートを検知して増設(なぜかいずれも長期休暇中……)
AWSなので増設は簡単(数回クリックするだけ)
3.サーバ監視
EC2はまれにインスタンスが勝手に再起動されたりする
デプロイを必要としない軽微な障害は監視会社が 復旧手順を実施してくれる
たまに夜中に電話で起こされるが、 だいたい「復旧済みです」連絡 !ありがたい
4.障害対応
4.障害対応
リモート接続(VPN)
緊急連絡網なぜかLINE
夜中に友達からLINEが来ると心臓止まりそうになる
一斉通知できるツールならなんでもいいが、 割りとリアルタイムでのやりとりが求められるので チャットツールの方がよい(メールはだめ)
5.テスト
5.テスト
今年から テストチームを
新設
5.テスト
テストチームゲームは人依存の確認項目が多いシナリオの整合性プレイ感覚(難易度調整とか遷移の快適さとか)デザインの美しさ(ボタンサイズは適切か etc)
5.テスト
テストチーム導入以前開発チームがテストケース作成 & 実施
-> システムテストに近いイメージ?
企画チームが通しチェック
-> シナリオとかデザインとか
5.テスト
テストチーム導入以降開発チームは単体テストと簡単な動作確認だけ
-> 単体テストはJenkinsでCI
出荷前にテストチームがプレイ-> 新規開発時約5日間、イベント開発時約2日間程度-> システム的な観点(仕様を満たせているか)-> プレイヤー的な観点(シナリオやデザイン、動線など)
最低限のテストだけでカバレッジは低い
5.テスト
品質はどうなったか?テスト期間中の課題摘出件数は実施以前と以降でほぼ横ばい
リリース後の重篤な不具合は今のところゼロ
テストチーム導入後も 信頼度成長曲線による出荷判定をクリア
システム的な品質は以前と変わらないプレイヤー的な観点からの課題摘出が増加
-> ゲーム的なクオリティがアップ!
まとめ
インフラはAWSでスケーラブル
hikyakuさんで楽々デプロイ
サーバー監視で障害時の手順削減
テストチームは神チーム
ご清聴ありがとうございました