Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ゲームインフラとGoogle Cloud Platformと酒!

954 views

Published on

ゲームインフラとGoogle Cloud Platformと酒!

Published in: Technology
  • Be the first to comment

  • Be the first to like this

ゲームインフラとGoogle Cloud Platformと酒!

  1. 1. GCE事例とgrasysの仕組み紹介
  2. 2. 会社紹介 社名 株式会社grasys 設立 2014年11月13日 代表 長谷川祐介 事業内容 MSP システム設計・構築・運用保守 2015年1月になりました!
  3. 3. 自己紹介 氏名 長谷川 祐介 経歴 GMO,Yahoo Japan, Squere Enix etc…
 2010年にgms(gloopsの前身)へ入社 インフラ面のすべての設計 開発部部長として開発部組織化、エンジニアの採用 執行役員、プリンシパルインフラストラクチャーアーキテクト 職種 いわゆるインフラエンジニア GCP歴 GCE初期の頃から その他 azure, awsも触っています。 publish Fusion-IOを2011年に本番導入しFusion-IO社に取り上げられる SoftwareDesign2012.03記事 2012年DellのCM出演(テレビ東京 ワールドビジネスサテライト) Icinga(nagiosのfork)のユーザーコミュニティに掲載 facebook: yusuke.exzm
  4. 4. GCE事例紹介
  5. 5. Application WebSocket HTTP Load Balancer Cloud Storage BigQueryPercona XtraDB Cluster Redis UserData Shard Redis WebSocket HealthyList MonitorOperation Static IP Static IP Static IP CNAME asset.xxx.com Cloud Storage backup KPI Data Cloud MonitoringCloud Logging 2014年前半頃に構成したものに現状のアレンジを加えており当時の構成とは異なっています。
  6. 6. Application nginx gunicorn django haproxy maxscale consul serf fluentd redis XtraDB XtraDB XtraDB redis bigquery 各種Instance情報 influxdbへのmetrics送信 各種監視Statusなど HTTP Load Balancer
  7. 7. WebSocket nginx gunicorn django haproxy maxscale consul serf fluentd redis XtraDB XtraDB XtraDB redis bigquery 各種Instance情報 influxdbへのmetrics送信 各種監視Statusなど redis HTTP Load Balancer
  8. 8. ApplicationとWebSocketの連携 redis consul HTTP API - nginx - DNS - supervisord - haproxy - maxscale - connections 上記statusがすべてOKのInstanceを RedisのListとして保存
  9. 9. Network Load Balancer rabbitmq cluster percona xtradb cluster application old api operation monitor BigQuery Cloud DNS Network Load Balancer application new api redis image cache jobqueue worker application customer api key data temporary dataasset Network Load Balancer Network Load Balancer 現在準備中 application sub system ha-mode Cloud Storage
  10. 10. Network Load Balancer master node client node data node kibana elasticsearchelasticsearchelasticsearch elasticsearch elasticsearch fluentd fluentd elasticsearch fluentd elasticsearch fluentd elasticsearch fluentd Static IP 1日特に多い日で150GB ちょっと多めの日で40GB 普通は6∼8GB
  11. 11. Photonもやってたりします・・・ 実際の台数とかは言えませんが!w
  12. 12. すいませんが言えません・・・ • 某社様とコンソールゲームとか • 某社様とスマートフォン向け期待のタイトル • 某社様とIPのスマートフォン向けゲームとか • 現在某社様とめっちゃ設計中だったりとか
  13. 13. ゲーム業界のみなさまへ • オンプレミスからのGCP移行についての注意点などはいくつか ありますが、
 ぶっちゃけここじゃ話し切れないのでご相談ください。 • むしろ常時接続とか • バックエンドどうするのとか • データ通信のストリームバッファ使いたいとか • グローバルバランシングと常時接続のハンドリングとか
  14. 14. grasys architecture
  15. 15. まずは・・・ うちがよく使ってるみなさん
  16. 16. provisioning configration 各種Middleware setup etc…
 環境変数/PATH/LD自動設定 configration 各種Middleware自動設定 fluentd, haproxy, etc… clustering serf/consul自動設定 operation perlのcinnamonでできている
 オーケストレーションツール bootstrap monitoring init制御: glauncher monitoring: gmonitor grasys Utilities Utilities envutils cfgutils clutils clctl gutils
  17. 17. consul • cluster情報 • 監視(自社開発のgolang製の仕組み)の発行 • 簡易的なオーケストレーションツールとして
  18. 18. serf • perl cinnamon(オーケストレーションツー ル)のrole情報のソース • 将来的に廃止予定
  19. 19. terraform • Instance生成 • Disk Attach • Firewall設定 • Load Balancer生成 • etc..
  20. 20. rerun • Bash Command Line Framework • rerun [modules]: [commands] • コマンドの体系化が行えて非常に便利! • gcloudでsnapshotとってdiskつくってimage生成とかめんどくさくて覚えてられない • InstanceのMachine-SizeとかのResizeとかばばっとやりたい • elasticsearchのclusterstatusとかnodesとかcurlでいちいち覚えてられない • コマンド長いものでよく使うものなどを登録して便利に実行してます。 • 一度やったことはもうやらない!w
  21. 21. envutils • 環境構成ツール • bashrc自動生成(PATH, MANPATH, PKG_CONFIG_DIRとか • ldconfig(追加したLDのconfig自動生成と追加 • /usr/local/etc(git管理)と/etc配下の自動symlink • ntpd設定からchronydのconfig自動生成 • rerunのmodule directoryも含んでいてgitで管理
  22. 22. clutils • consul/serfの自動設定 • Instanceの起動シーケンスで自動設定して 起動してくるようにするためのツール • gitで管理
  23. 23. clctl • オーケストレーションツール • 母体はperlのcinnamon • cinnamon [role] [task] • gitで管理 • serfのクラスタ情報からオーケストレーションのRoleを自動生成 • 将来的にはconsulのwrapperなどに移行してserf依存を減らしていく 方針で廃止していく予定
  24. 24. gmonitor • golangで開発している監視プログラム • gmonitor [subcommand] • リソース監視、通信、ミドルウェアのステータス取得 • consulにキックされる形で起動 • consulの監視InterfaceはNagiosPluginと同じ • InfluxDBへ直接データを書き込む(徐々にStackDriverのCustomMetricsも追加 されつつある • サブコマンドが多くなりすぎてきていて困ってるww(でも気にしない!
  25. 25. influxdb / grafana • 時系列データベースとそのフロントエンド • 各種監視データを入れグラフサンプリング
  26. 26. • これはリソース用の ダッシュボード • 各種ミドルウェア用 のものもあります。 • 単一ホスト、サーバ 種別毎に絞ることも できるようにしてい ます。
  27. 27. strecherのGCS版 • 名前つけてない・・・ • 通常では対応できないレベルのクラスタ向け • Google Cloud Storageを利用した大規模向けデプロ イツール • 200 instancesくらいに対して配布対象に対して配布 するサイズにもよりますが2秒程度で完了します。
  28. 28. Backup Framework • 毎回shellscriptなどで作るのがめんどいので framewaork化を進めています。 • golang製のCLI Framework • MySQL/MongoDB • Google Cloud Storage Standard/NearlineのBulk/ Archiveの振り替えなどに対応予定
  29. 29. grasysではご紹介したように
 たくさんのインフラ向けのツールを開発し ています。
  30. 30. MSP事業者として
 インスタンス追加とか管理といった単純な 作業ではなく
 一緒に負荷対策を検討したり
 必要あれば構成変更も打診しています。 開発者の方と一緒に運用していく形を
 かなり重視しています。
  31. 31. ご興味あれば
 お気軽にご連絡ください!
  32. 32. ご清聴ありがとうございました。 ご質問ありましたらお気軽にどうぞ! Facebookの友達申請もお気軽にどうぞ! 長谷川 祐介 facebook: yusuke.exzm

×