grasysの仕組み解説
TRANSCRIPT
![Page 1: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/1.jpg)
Date: 2015/01/25
grasysの仕組み解説
![Page 2: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/2.jpg)
index• 会社紹介
• 自己紹介
• 実績
• grasysのシステム管理手法
• grasysの各種Toolご紹介
• システム構築のフロー
• システム運用のフロー
• GCP事例紹介(ソーシャルゲーム
• Google Cloud Platformの各種性能評価
![Page 3: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/3.jpg)
会社紹介
社名 株式会社grasys
設立 2014年11月13日
代表 長谷川祐介
事業内容MSP事業・システム運用保守受託
クラウドのシステムコンサルティング
![Page 4: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/4.jpg)
2015年1月
パートナーになりました!
![Page 5: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/5.jpg)
grasys• 開発者様がProductの開発に注力できる環境をご提供
• システムの足回りはすべてこちらがご提供
• 運用コストを意識した運用設計
• 24時間365日の運用監視体制
• 開発者様と24時間365日 連携可能な体制
![Page 6: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/6.jpg)
自己紹介氏名 長谷川 祐介
経歴
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
![Page 7: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/7.jpg)
実績(言えないこと多すぎw• 株式会社Zeadle ソーシャルゲーム(mobage/gree)
• クラウドソーシングシステム(global
• A社 XXXXXXX XXXXX (超やばい・・・言えない・・・
• A社 XXXX XX XXXXXXXXX(ひみつ・・・言えない・・・
• A社 XXXXXXXX(い・・・いえない・・・
• B社 XXXXX(いえない・・・
• C社 XXXXXXX(いえない・・・
• D社 XXXXXXXX(いえない・・・
• E社 お話し中
• F社 お話し中
• NDAあるのでこちらに書けないけど・・・いろいろやってます!
![Page 8: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/8.jpg)
grasysのシステム管理手法
![Page 9: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/9.jpg)
各種作業の項目に分解
monitoring
configuration
bootstrap
provisioning
operation
deployment
インスタンス起動
必要なソフトウェアのインストール
各種設定の管理
監視と通知
定形の運用作業やオーケストレーション
更新の配布や開発アプリの配布
clustering サーバをグループ化
![Page 10: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/10.jpg)
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へ移植中
![Page 11: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/11.jpg)
考え方• 必要な作業を分類
• 作るToolを体系化多少またがっていても良い一番わかりやすいのは使うMiddlewareはconfigration/provisioningを混ぜて一発セットアップする。
• 目的別に利用
• どこかで何か処理させる必要がある場合、どこに差し込んでいくか考え全体の流れを構成
• 運用設計を必ず初期の要件定義後の設計に盛り込む運用コストが段違いになる
![Page 12: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/12.jpg)
各種解説
![Page 13: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/13.jpg)
bootstrap
![Page 14: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/14.jpg)
provisioning
![Page 15: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/15.jpg)
configuration
![Page 16: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/16.jpg)
clustering
![Page 17: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/17.jpg)
monitoring
![Page 18: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/18.jpg)
monitoring consul
![Page 19: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/19.jpg)
monitoring grafana
![Page 20: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/20.jpg)
monitoring grafana
![Page 21: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/21.jpg)
monitoring grafana
![Page 22: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/22.jpg)
monitoring grafana
![Page 23: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/23.jpg)
monitoring kibana3
![Page 24: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/24.jpg)
monitoring kibana3
![Page 25: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/25.jpg)
operation
![Page 26: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/26.jpg)
deployment
![Page 27: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/27.jpg)
システム構築のフロー
![Page 28: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/28.jpg)
srcサーバ構築
![Page 29: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/29.jpg)
grasys Utilities各種設定
![Page 30: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/30.jpg)
bootstrap開始
![Page 31: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/31.jpg)
bootstrap手順を 目的のcluster分繰り返すと
![Page 32: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/32.jpg)
できあがりの例
![Page 33: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/33.jpg)
システム運用のフロー
![Page 34: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/34.jpg)
configの更新(自動化の必要のないもの)
![Page 35: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/35.jpg)
configの更新(自動化されているもの)
cfgutils
![Page 36: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/36.jpg)
Daemonのreload/restart
glauncher
Init Script
![Page 37: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/37.jpg)
運用管理について• 基本はオーケストレーションで対応してます。
• データストア系は1台1台のオペレーションが必要だったりします。
• データストア系のReplication/Cluster化などは随時作っていてこれからgrasys Utilitiesに加わっていく予定です。
![Page 38: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/38.jpg)
監視体制について
24時間365日対応致します。
![Page 39: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/39.jpg)
GCP事例紹介
![Page 40: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/40.jpg)
ソーシャルゲーム事例• Webにおけるリアルタイムを追求
• 最大20人でレイドボスを叩ける
• リアルタイム部分にはWebSocket利用
• サービスの30%以上がWebSocket(イベント時には80%くらい)のWebSocket/XHR部分がキモの設計
• 2014年7月にかなり実験的に作ったアーキテクチャでUpdateしながら現在稼働中
![Page 41: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/41.jpg)
GCP各種サービスCompute Engine
Application, WebSocketRedis, MariaDB, JobQueue, Worker, Batch
etc…
CloudDNS DNSはすべて依存
Cloud Storage静的ファイル配信Backupなどに活用
BigQuery 各種Syslog, ApplicationLogのアーカイブとして活用
Google Analytics今回スマートフォン限定のサービスなため
全面的に活用
![Page 42: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/42.jpg)
お世話になっているみなさん
![Page 43: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/43.jpg)
インスタンス種別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
![Page 44: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/44.jpg)
Application
![Page 45: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/45.jpg)
WebSocket
![Page 46: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/46.jpg)
WEBSOCKET振り分け• LoadBalancerを使ってません!いわゆるHTTP Dispatcherを独自で構成してます。
• 監視結果を元に正常なWebSocketインスタンス情報を更新
• 各レイドボス出現タイミングで選択
• リアルタイムバトルではteam_id単位で利用するインスタンスを選択
![Page 47: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/47.jpg)
DEPLOY• BlueGreenっぽい
• Active/Standbyの データ保持はconsulのkv
• 基本はserf/consulの オーケストレーション
• git pullするだけ
• nginxのconfigはconsulのkvを用いて自動生成
• その他Roleback可能 Staging/Maintenanceの各Modeを持つ
![Page 48: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/48.jpg)
Google Cloud Platform 性能評価
![Page 49: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/49.jpg)
Load Balancer• http://qiita.com/kazunori279/items/8d2417c8510021c697e7こちらで解説されています。
• DNSを介さず世界中のRegionへ分散可能
• ウォームアップなしで常時100万req/secさばける性能を提供(この100万は限界ではなくLoadTestの性能限界らしい・・・w
![Page 50: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/50.jpg)
Load Balancer
Google Cloud Platform blog転載http://googlecloudplatform.blogspot.jp/2013/11/compute-engine-load-balancing-hits-1-million-requests-per-second.html
![Page 51: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/51.jpg)
Disk性能(NVMe Debian版
http://qiita.com/kazunori279/items/7837a78d18ec7e22b939
![Page 52: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/52.jpg)
Network benchmark• あるお客様からの要望で取得
• nuttcpで取得
• 2014.10.09のデータ
• Machine-Typeはn1-standard-4
• 1coreあたり2Gbits/secのcapがあります。
![Page 53: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/53.jpg)
Network benchmark
![Page 54: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/54.jpg)
Network benchmark
![Page 55: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/55.jpg)
Network benchmark
![Page 56: grasysの仕組み解説](https://reader033.vdocuments.net/reader033/viewer/2022050818/55a943211a28abfd5c8b484e/html5/thumbnails/56.jpg)
ご清聴ありがとうございました。
ご質問ありましたらお気軽に名刺交換でもなんでもご質問下さいませ!
長谷川 祐介facebook: yusuke.exzm