grasysの仕組み解説
TRANSCRIPT
Date: 2015/01/25
grasysの仕組み解説
index• 会社紹介
• 自己紹介
• 実績
• grasysのシステム管理手法
• grasysの各種Toolご紹介
• システム構築のフロー
• システム運用のフロー
• GCP事例紹介(ソーシャルゲーム
• Google Cloud Platformの各種性能評価
会社紹介
社名 株式会社grasys
設立 2014年11月13日
代表 長谷川祐介
事業内容MSP事業・システム運用保守受託
クラウドのシステムコンサルティング
2015年1月
パートナーになりました!
grasys• 開発者様がProductの開発に注力できる環境をご提供
• システムの足回りはすべてこちらがご提供
• 運用コストを意識した運用設計
• 24時間365日の運用監視体制
• 開発者様と24時間365日 連携可能な体制
自己紹介氏名 長谷川 祐介
経歴
GMO, Yahoo Japan, Squere Enix etc… 2010年にgms(gloopsの前身)へ入社インフラ面のすべての設計
開発部部長として開発部組織化、エンジニアの採用執行役員、プリンシパルインフラストラクチャーアーキテクト
職種 いわゆるインフラエンジニアGCP歴 GCEを中心に1年ほどその他 azureは少し, awsも触っています。
pub
Fusion-IOを2011年に本番導入しFusion-IO社に取り上げられるSoftwareDesign2012.03記事
2012年DellのCM出演(テレビ東京 ワールドビジネスサテライト)Icinga(nagiosのfork)のユーザーコミュニティに掲載
今はいろいろアピールしなきゃいけない時期なので勘弁して下さい!w
facebook: yusuke.exzm
実績(言えないこと多すぎw• 株式会社Zeadle ソーシャルゲーム(mobage/gree)
• クラウドソーシングシステム(global
• A社 XXXXXXX XXXXX (超やばい・・・言えない・・・
• A社 XXXX XX XXXXXXXXX(ひみつ・・・言えない・・・
• A社 XXXXXXXX(い・・・いえない・・・
• B社 XXXXX(いえない・・・
• C社 XXXXXXX(いえない・・・
• D社 XXXXXXXX(いえない・・・
• E社 お話し中
• F社 お話し中
• NDAあるのでこちらに書けないけど・・・いろいろやってます!
grasysのシステム管理手法
各種作業の項目に分解
monitoring
configuration
bootstrap
provisioning
operation
deployment
インスタンス起動
必要なソフトウェアのインストール
各種設定の管理
監視と通知
定形の運用作業やオーケストレーション
更新の配布や開発アプリの配布
clustering サーバをグループ化
provisioningconfigration 環境変数/PATH/LD自動設定
configration各種Middleware自動設定
fluentd/haproxy
clusteringconfigrationmonitoring
serf/consul/monitoring自動設定
clusteringoperation オーケストレーションツール
bootstrapGoogle metadata Instance Tagを利用
各種Daemon起動Tool
provisioningconfigration
ansibleのplaybookまとめwrapper script
grasys Utilities
cfgutils
clutils
clctl
glauncher
envutils
setuputils
現在はperlで書かれているものが多いですが、順次goへ移植中
考え方• 必要な作業を分類
• 作るToolを体系化多少またがっていても良い一番わかりやすいのは使うMiddlewareはconfigration/provisioningを混ぜて一発セットアップする。
• 目的別に利用
• どこかで何か処理させる必要がある場合、どこに差し込んでいくか考え全体の流れを構成
• 運用設計を必ず初期の要件定義後の設計に盛り込む運用コストが段違いになる
各種解説
bootstrap
provisioning
configuration
clustering
monitoring
monitoring consul
monitoring grafana
monitoring grafana
monitoring grafana
monitoring grafana
monitoring kibana3
monitoring kibana3
operation
deployment
システム構築のフロー
srcサーバ構築
grasys Utilities各種設定
bootstrap開始
bootstrap手順を 目的のcluster分繰り返すと
できあがりの例
システム運用のフロー
configの更新(自動化の必要のないもの)
configの更新(自動化されているもの)
cfgutils
Daemonのreload/restart
glauncher
Init Script
運用管理について• 基本はオーケストレーションで対応してます。
• データストア系は1台1台のオペレーションが必要だったりします。
• データストア系のReplication/Cluster化などは随時作っていてこれからgrasys Utilitiesに加わっていく予定です。
監視体制について
24時間365日対応致します。
GCP事例紹介
ソーシャルゲーム事例• Webにおけるリアルタイムを追求
• 最大20人でレイドボスを叩ける
• リアルタイム部分にはWebSocket利用
• サービスの30%以上がWebSocket(イベント時には80%くらい)のWebSocket/XHR部分がキモの設計
• 2014年7月にかなり実験的に作ったアーキテクチャでUpdateしながら現在稼働中
GCP各種サービスCompute Engine
Application, WebSocketRedis, MariaDB, JobQueue, Worker, Batch
etc…
CloudDNS DNSはすべて依存
Cloud Storage静的ファイル配信Backupなどに活用
BigQuery 各種Syslog, ApplicationLogのアーカイブとして活用
Google Analytics今回スマートフォン限定のサービスなため
全面的に活用
お世話になっているみなさん
インスタンス種別Application x 10 MariaDB x 4(Master/Slave x 2
WebSocket x 10 Redis x 4
Job Queue Redis x 2 Operaton Central x 1
Job Queue Worker x 4 Monitor x 1
API x 2 Batch x 1
Application
WebSocket
WEBSOCKET振り分け• LoadBalancerを使ってません!いわゆるHTTP Dispatcherを独自で構成してます。
• 監視結果を元に正常なWebSocketインスタンス情報を更新
• 各レイドボス出現タイミングで選択
• リアルタイムバトルではteam_id単位で利用するインスタンスを選択
DEPLOY• BlueGreenっぽい
• Active/Standbyの データ保持はconsulのkv
• 基本はserf/consulの オーケストレーション
• git pullするだけ
• nginxのconfigはconsulのkvを用いて自動生成
• その他Roleback可能 Staging/Maintenanceの各Modeを持つ
Google Cloud Platform 性能評価
Load Balancer• http://qiita.com/kazunori279/items/8d2417c8510021c697e7こちらで解説されています。
• DNSを介さず世界中のRegionへ分散可能
• ウォームアップなしで常時100万req/secさばける性能を提供(この100万は限界ではなくLoadTestの性能限界らしい・・・w
Load Balancer
Google Cloud Platform blog転載http://googlecloudplatform.blogspot.jp/2013/11/compute-engine-load-balancing-hits-1-million-requests-per-second.html
Disk性能(NVMe Debian版
http://qiita.com/kazunori279/items/7837a78d18ec7e22b939
Network benchmark• あるお客様からの要望で取得
• nuttcpで取得
• 2014.10.09のデータ
• Machine-Typeはn1-standard-4
• 1coreあたり2Gbits/secのcapがあります。
Network benchmark
Network benchmark
Network benchmark
ご清聴ありがとうございました。
ご質問ありましたらお気軽に名刺交換でもなんでもご質問下さいませ!
長谷川 祐介facebook: yusuke.exzm