Soumettre la recherche
Mettre en ligne
マイクロサービスっぽい感じの話
•
5 j'aime
•
3,464 vues
Makoto Haruyama
Suivre
マイクロサービスを採用して、実際にモノリシックな作りに移した話です。
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 45
Recommandé
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
Teppei Sato
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
disc99_
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
Spring Bootハンズオン ~Spring Bootで作る マイクロサービスアーキテクチャ! #jjug_ccc #ccc_r53
Spring Bootハンズオン ~Spring Bootで作る マイクロサービスアーキテクチャ! #jjug_ccc #ccc_r53
Toshiaki Maki
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
Recommandé
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
Teppei Sato
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
disc99_
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
Spring Bootハンズオン ~Spring Bootで作る マイクロサービスアーキテクチャ! #jjug_ccc #ccc_r53
Spring Bootハンズオン ~Spring Bootで作る マイクロサービスアーキテクチャ! #jjug_ccc #ccc_r53
Toshiaki Maki
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
mosa siru
MagicOnion入門
MagicOnion入門
torisoup
『ラブライブ!スクールアイドルフェスティバル ALL STARS』を支えるビルドパイプライン 〜より安定したサービス提供を目指して〜
『ラブライブ!スクールアイドルフェスティバル ALL STARS』を支えるビルドパイプライン 〜より安定したサービス提供を目指して〜
KLab Inc. / Tech
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
Yahoo!デベロッパーネットワーク
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Masahito Zembutsu
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
Tokoroten Nakayama
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
型安全性入門
型安全性入門
Akinori Abe
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
Yuhei Miyazato
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
PPL 2022 招待講演: 静的型つき函数型組版処理システムSATySFiの紹介
PPL 2022 招待講演: 静的型つき函数型組版処理システムSATySFiの紹介
T. Suwa
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
Serverless時代のJavaについて
Serverless時代のJavaについて
Amazon Web Services Japan
RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介
MITSUNARI Shigeo
Keycloak拡張入門
Keycloak拡張入門
Hiroyuki Wada
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
20分でわかるgVisor入門
20分でわかるgVisor入門
Shuji Yamada
What's new in Spring Boot 2.6 ?
What's new in Spring Boot 2.6 ?
土岐 孝平
DeNAのゲーム開発を支える Game Backend as a Service
DeNAのゲーム開発を支える Game Backend as a Service
Makoto Haruyama
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNA
Contenu connexe
Tendances
MagicOnion入門
MagicOnion入門
torisoup
『ラブライブ!スクールアイドルフェスティバル ALL STARS』を支えるビルドパイプライン 〜より安定したサービス提供を目指して〜
『ラブライブ!スクールアイドルフェスティバル ALL STARS』を支えるビルドパイプライン 〜より安定したサービス提供を目指して〜
KLab Inc. / Tech
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
Yahoo!デベロッパーネットワーク
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Masahito Zembutsu
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
Tokoroten Nakayama
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
型安全性入門
型安全性入門
Akinori Abe
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
Yuhei Miyazato
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
PPL 2022 招待講演: 静的型つき函数型組版処理システムSATySFiの紹介
PPL 2022 招待講演: 静的型つき函数型組版処理システムSATySFiの紹介
T. Suwa
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Akihiro Kuwano
Serverless時代のJavaについて
Serverless時代のJavaについて
Amazon Web Services Japan
RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介
MITSUNARI Shigeo
Keycloak拡張入門
Keycloak拡張入門
Hiroyuki Wada
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
20分でわかるgVisor入門
20分でわかるgVisor入門
Shuji Yamada
What's new in Spring Boot 2.6 ?
What's new in Spring Boot 2.6 ?
土岐 孝平
Tendances
(20)
MagicOnion入門
MagicOnion入門
『ラブライブ!スクールアイドルフェスティバル ALL STARS』を支えるビルドパイプライン 〜より安定したサービス提供を目指して〜
『ラブライブ!スクールアイドルフェスティバル ALL STARS』を支えるビルドパイプライン 〜より安定したサービス提供を目指して〜
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
暗号技術の実装と数学
暗号技術の実装と数学
型安全性入門
型安全性入門
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
PPL 2022 招待講演: 静的型つき函数型組版処理システムSATySFiの紹介
PPL 2022 招待講演: 静的型つき函数型組版処理システムSATySFiの紹介
Redisの特徴と活用方法について
Redisの特徴と活用方法について
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
Serverless時代のJavaについて
Serverless時代のJavaについて
RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介
Keycloak拡張入門
Keycloak拡張入門
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
20分でわかるgVisor入門
20分でわかるgVisor入門
What's new in Spring Boot 2.6 ?
What's new in Spring Boot 2.6 ?
Similaire à マイクロサービスっぽい感じの話
DeNAのゲーム開発を支える Game Backend as a Service
DeNAのゲーム開発を支える Game Backend as a Service
Makoto Haruyama
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNA
インフラ初心者向け・サーバの選び方(第31回さくらの夕べ in 仙台 ~全国さくら前線ツアー2016 #さくらクラブ ~)
インフラ初心者向け・サーバの選び方(第31回さくらの夕べ in 仙台 ~全国さくら前線ツアー2016 #さくらクラブ ~)
さくらインターネット株式会社
MonotaRO TechTalk #1 ごあいさつ
MonotaRO TechTalk #1 ごあいさつ
株式会社MonotaRO Tech Team
デブサミ2013LT大会 Japan SenchaUG
デブサミ2013LT大会 Japan SenchaUG
dsuke Takaoka
多対多のクラウド利用を支えるデータ標準化技術
多対多のクラウド利用を支えるデータ標準化技術
CData Software Japan
Automation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbix
softlayerjp
Mulesoft meetup #02 Anypointで日本のクラウドサービスを繋いでみた!
Mulesoft meetup #02 Anypointで日本のクラウドサービスを繋いでみた!
Kazuya Sugimoto
rake:money拡大版@Ruby会議2010 ~Rubyエンジニアと企業の幸せな関係~
rake:money拡大版@Ruby会議2010 ~Rubyエンジニアと企業の幸せな関係~
Ouka Yuka
初心者がWio LTEで作った話~IN 名古屋ハッカソン 2017~
初心者がWio LTEで作った話~IN 名古屋ハッカソン 2017~
Shingo Makino
Idcfクラウドhw占有タイプ開発話
Idcfクラウドhw占有タイプ開発話
IDC Frontier
エンジニアからCTOへ 2015-06-11 IVS CTO Night & Day
エンジニアからCTOへ 2015-06-11 IVS CTO Night & Day
株式会社MonotaRO Tech Team
OSSコミッタの生活とその必要性
OSSコミッタの生活とその必要性
Hirofumi Ichihara
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
Masahito Zembutsu
Drupalによる大規模サイトの設計・実装において何に気をつけるべきか
Drupalによる大規模サイトの設計・実装において何に気をつけるべきか
dgcircus
デブサミ関西2011 JAZ紹介
デブサミ関西2011 JAZ紹介
Keiji Kamebuchi
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容
sairoutine
SORACOM Canalを使った キャンペーン端末事
SORACOM Canalを使った キャンペーン端末事
Tosihiyuki Hirai
Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)
Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)
株式会社MonotaRO Tech Team
20180319 ccon sync kintone
20180319 ccon sync kintone
CData Software Japan
Similaire à マイクロサービスっぽい感じの話
(20)
DeNAのゲーム開発を支える Game Backend as a Service
DeNAのゲーム開発を支える Game Backend as a Service
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
インフラ初心者向け・サーバの選び方(第31回さくらの夕べ in 仙台 ~全国さくら前線ツアー2016 #さくらクラブ ~)
インフラ初心者向け・サーバの選び方(第31回さくらの夕べ in 仙台 ~全国さくら前線ツアー2016 #さくらクラブ ~)
MonotaRO TechTalk #1 ごあいさつ
MonotaRO TechTalk #1 ごあいさつ
デブサミ2013LT大会 Japan SenchaUG
デブサミ2013LT大会 Japan SenchaUG
多対多のクラウド利用を支えるデータ標準化技術
多対多のクラウド利用を支えるデータ標準化技術
Automation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbix
Mulesoft meetup #02 Anypointで日本のクラウドサービスを繋いでみた!
Mulesoft meetup #02 Anypointで日本のクラウドサービスを繋いでみた!
rake:money拡大版@Ruby会議2010 ~Rubyエンジニアと企業の幸せな関係~
rake:money拡大版@Ruby会議2010 ~Rubyエンジニアと企業の幸せな関係~
初心者がWio LTEで作った話~IN 名古屋ハッカソン 2017~
初心者がWio LTEで作った話~IN 名古屋ハッカソン 2017~
Idcfクラウドhw占有タイプ開発話
Idcfクラウドhw占有タイプ開発話
エンジニアからCTOへ 2015-06-11 IVS CTO Night & Day
エンジニアからCTOへ 2015-06-11 IVS CTO Night & Day
OSSコミッタの生活とその必要性
OSSコミッタの生活とその必要性
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
Drupalによる大規模サイトの設計・実装において何に気をつけるべきか
Drupalによる大規模サイトの設計・実装において何に気をつけるべきか
デブサミ関西2011 JAZ紹介
デブサミ関西2011 JAZ紹介
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容
SORACOM Canalを使った キャンペーン端末事
SORACOM Canalを使った キャンペーン端末事
Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)
Pythonエンジニアの最適なキャリアを考える (PyCon JP 2016 ジョブフェア LT)
20180319 ccon sync kintone
20180319 ccon sync kintone
Plus de Makoto Haruyama
Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介
Makoto Haruyama
DeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
DeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
Makoto Haruyama
backbone.jsの使用例 その1
backbone.jsの使用例 その1
Makoto Haruyama
Fluentd in Co-Work
Fluentd in Co-Work
Makoto Haruyama
fluent-plugin-resque_stat
fluent-plugin-resque_stat
Makoto Haruyama
初心者エンジニアのシステム構築失敗談
初心者エンジニアのシステム構築失敗談
Makoto Haruyama
初心者エンジニアの システム構築 失敗談
初心者エンジニアの システム構築 失敗談
Makoto Haruyama
Mysql casual fukuoa_vlo_2
Mysql casual fukuoa_vlo_2
Makoto Haruyama
Yapc2012 ltthon
Yapc2012 ltthon
Makoto Haruyama
分散ファイルストレージ
分散ファイルストレージ
Makoto Haruyama
Automation tech casual_talks_1_20120717
Automation tech casual_talks_1_20120717
Makoto Haruyama
My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1
Makoto Haruyama
20110622 haruyama webso]cket
20110622 haruyama webso]cket
Makoto Haruyama
Plus de Makoto Haruyama
(13)
Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介
DeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
DeNAオリジナル ゲーム専用プラットフォーム Sakashoについて
backbone.jsの使用例 その1
backbone.jsの使用例 その1
Fluentd in Co-Work
Fluentd in Co-Work
fluent-plugin-resque_stat
fluent-plugin-resque_stat
初心者エンジニアのシステム構築失敗談
初心者エンジニアのシステム構築失敗談
初心者エンジニアの システム構築 失敗談
初心者エンジニアの システム構築 失敗談
Mysql casual fukuoa_vlo_2
Mysql casual fukuoa_vlo_2
Yapc2012 ltthon
Yapc2012 ltthon
分散ファイルストレージ
分散ファイルストレージ
Automation tech casual_talks_1_20120717
Automation tech casual_talks_1_20120717
My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1
20110622 haruyama webso]cket
20110622 haruyama webso]cket
マイクロサービスっぽい感じの話
1.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. November 22, 2016 Makoto HARUYAMA DeNA Co., Ltd. マイクロサービスっぽい感じの話
2.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 少し自己紹介 2 ● 2008年 DeNA入社(みんなのウェディング) ● 2010年 エンジニアになる ● 2011年 DeNA退社 -> 福岡へ ● 2013年 DeNAに出戻り ● 2016年 ゲーム事業本部 Makoto HARUYAMA ● GitHub https://github.com/SpringMT ● Twitter https://twitter.com/Spring_MT 春山 誠
3.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 3 DeNAのゲーム開発について
4.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. DeNA for GAME CREATORS 4参照元 : http://recruit-games.dena.jp/technology/
5.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. DeNA for GAME CREATORS 5参照元 : http://recruit-games.dena.jp/technology/
6.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. DeNA for GAME CREATORS 6参照元 : http://recruit-games.dena.jp/technology/
7.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. DeNA for GAME CREATORS 7参照元 : http://recruit-games.dena.jp/technology/
8.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 今日お話すること 1. Sakashoとは(軽く) 2. マイクロサービスぽい? 3. 最近の取り組み 4. まとめ 8
9.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 9 Sakashoとは
10.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. DeNA for GAME CREATORS ネイティブゲーム用プラットフォーム Sakasho
11.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Sakashoとは ネイティブアプリゲーム開発に 必要とされるサーバー機能を 提供するゲームプラットフォーム ゲーム開発におけるサーバーサイドで やるべき事をSakashoが一括で受け持 つことで、各開発チームはクライアント側 の開発に専念できる 運用のしやすさも見据えたゲームの 作り方のルールもある程度強いる 11
12.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. ゲーム開発・運用に必要なAPIの提供 ● ユーザー情報API ● マスターデータ配信API ● ログインボーナスAPI など 12 Sakashoが提供している機能 ● 課金API ● アセット配信API ● CS対応のための機能
13.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. SDK ● 課金やPush通知など、OSに依存している機能について 簡単に使えるインターフェースの提供 ● Unity、C++のゲームエンジンに対応 13 Sakashoが提供している機能
14.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. WebView用インターフェースの提供 ● お知らせの配信 ● 掲示板 ● 利用規約など 14 Sakashoが提供している機能
15.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. ゲーム専用サーバーとの連携機能 ● ゲーム専用サーバーからSakashoにアクセスできるWeb APIを提供 ● ゲーム専用サーバーを介してのユーザー情報の取得などに対応 15 Sakashoが提供している機能
16.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Sakashoの機能一覧(一部抜粋) ● マスターデータ配信 ● アセット配信 ● プレイヤー管理 ● お知らせ管理 ● アイテム管理 ● ログインボーナス ● お問合せ機能 ● 課金 ● ログ管理 16 ● ランキング ● 掲示板 ● 補填機能 ● メンテナンス ● Push通知 ● プレイヤー検索機能 ● ギルド ● アプリのバージョン管理 ● CS運用ツール Sakashoが提供している機能
17.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 主なリリースタイトル 17
18.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 18 マイクロサービスぽい?
19.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Sakashoの構成について
20.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Sakashoの構成について
21.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Sakashoの構成について(Web View)
22.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. マイクロサービス? 役割毎に10の独立したAPIコード群がある ○ メリット ■ 他のAPIへの影響を考えずにデプロイできる ■ リソースを細かく調整できる ○ デメリット ■ 運用工数がかかる(gemの更新とか) ■ 結局サービス毎に人を専用にアサインとかしなかったので、全員 全部見る状態 コード量も少ない(API全部ファイル数が700程度、行数3万行)のでこの規模 だと管理工数のほうが大きい Sakashoの構成について
23.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. マイクロサービスの利点 Sakashoの構成について ● 各サービスは比較的小さくなる ○ コンテナの起動が早くなり、開発のイテレーションが高速になる ● 各サービスのデプロイは独 して える ○ 各サービスを独 して開発していけるので複数のチームが独立して 動く事が出来る ○ 各サービスが独立しているので開発の規模拡大が容易である ● 障害耐性を向上させる ○ 各サービスが完全に独立してるので、影響が他に及ばない 出典 : http://microservices.io/patterns/microservices.html http://www.slideshare.net/zigorou/microservices-57643957
24.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. マイクロサービスの構成で必要なこと Sakashoの構成について ● 独立性の確保 ○ 開発、デプロイの独立 ○ 各サービスは夫々独立したデータベースを持っている ● 各サービスのインターフェース ○ HTTP/RESTのような同期的なプロトコル ○ AMQPのような非同期的なプロトコル 出典 : http://microservices.io/patterns/microservices.html http://www.slideshare.net/zigorou/microservices-57643957
25.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Sakashoの構成を考える上で Sakashoの構成について ■ Sakashoはプラットフォームなので、サービスが落ちることは避けたい。 ● 障害の影響を最小限に押さえ込みたい ○ workerの枯渇等で一気にサービスダウンになるのを防ぐ ■ 仕様が固まったサービスには極力触らない ● 仕様が固まりリリースされたサービスには手をつけたくない ○ QAもしない(影響範囲に加えない)
26.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. Sakashoの構成について
27.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 27 マイクロサービスがよいのでは?
28.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 実際は マイクロサービスぽい? ● サービス毎にデータは隔離されていない ○ データベースが別れてもいないので、どれか1つのサービスでTMC がでたら、他のサービスも影響を受ける ● サービス毎にロジックが独立になっていない ○ あるサービスのロジックを他のサービスでもつかえるようなgemが あったりする(本来は各サービスのインターフェースを通して行うは ず) ○ 共通のgemのアップデート問題 ● チーム体制は一チーム(8人〜10人)で開発・運用が続いていて、そこまで 独立性が高くはない
29.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 実際は マイクロサービスぽい? ● サービスが別れすぎていて、結局全部触るチームなのに、チームにjoinし てからのキャッチアップが時間がかかる ● 共通化している部分がわからん
30.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 30 1番の問題は?
31.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. あるサービスのロジックを他のサービスでもつ かえるようなgemがあったりする マイクロサービスぽい? ● プレイヤーのデータを保存しながら同時にほげほげしたい 例) ● アチーブメント ○ プレイヤーデータの保存とアチーブメント報酬の受け取りを1トラン ザクションで実行したい ○ ClaimAchievementPrizesAndSave()
32.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 結果生まれたのが マイクロサービスぽい? ● sakasho-common_models
33.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. なぜ? マイクロサービスぽい? ● 一貫性を重要視し、不整合が起きない仕組みにする ○ 同一トランザクションでなんとかできないか? ■ プレイヤーの仮想通貨の管理 ■ プレイヤーのデータの保存 ■ プレイヤーのアイテム管理 ● チートはさせたくない ○ ロジックはサーバーによせる
34.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 現在、コードベース整理中 マイクロサービスぽい? ● 管理 ○ サービスが別れてて逆に分かりにくくなっている ○ チーム規模は小さい ● サーバーリソースの状況 ○ 省メモリのサービス ● サービスを跨いだコードベース・データの共有 ○ 影響範囲が読めなくなりつつある ● データベース ○ ほぼ共通になっている
35.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 現在、コードベース整理中 マイクロサービスぽい? ● 今まででも良かった部分もある ○ workerの枯渇等でとあるサービスが止まっても他のサービスに影響 はない状態(DBが詰まるとだめなのはそのまま) ○ APIのコードがそこまで膨れ上がっておらず、省メモリで運用できて いる
36.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 現在、コードベース整理中 マイクロサービスぽい? ● 一旦コードを1つにまとめる ○ 管理のしやすさ ■ 共通のモジュールはgemではなく、1つのサービスに取り込む ○ サーバーリソースには余裕がある ■ 1つにまとめても問題ない ○ 独立性 ■ そもそも1チームしかないので、独立性を持たせることは今は重 要じゃない(将来的に必要になるかもしれないが)
37.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. スケジュール マイクロサービスぽい? ● コードベースを整理する前に、仕様が変わっていないことを保証するため に結合テストを準備 ○ 2016年上期に集中的に対応 ● 2016年下期 ○ コードベースの統合に着手 ○ deployの整理も合わせてしている
38.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. SDKのテストと自動化
39.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 39 結合テストの整備 ● google製のC++テスティングFW ○ https://github.com/google/googletest ○ ライブラリのインストールはいらず、ccファイルをテストコードと一緒 にビルドすればテストの実行ファイルができる ● Xcode(XCTest)と一緒に動かせる ● テスト結果を出力しやすいこと(JUnit形式) ● Native Sakasho SDKが対象 googletestの採用 39
40.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 結合テストの整備 SDK ✔テスト結果を 通知 テストを実行 Slackプラグインで通知も GitHub pull request builder plugin で結果を表示 PP Junit XML
41.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 41 結合テストの整備 SDKのテスト(iOS) 41
42.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 現在、コードベース整理中 マイクロサービスぽい? ● 自動テストも整備が終わって ○ 粛々とAPIを一緒にしている ■ 全部ロードさせる ■ 最初は統合のみ、改善は後で
43.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. ゲーム開発を支えるプラットフォームSakasho ○ Sakashoがサーバー側の運用を一括で受け持つことで 各ゲームタイトルはゲーム開発に集中できる マイクロサービスぽい構成からモノリシックな構成に直してる ○ 管理コストの削減が狙い ○ まだ途中なので、後日談も発表したいですね まとめ
44.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 44 最近の取り組み 44 2017/2/10 FRI 13:00-20:30 SHIBUYA HIKARIE HALL A/B
45.
Copyright © DeNA
Co.,Ltd. All Rights Reserved. 45 最近の取り組み SDKのテスト 45 ● SWETチームとの共同作業 参照元 : https://career.dena.jp/job.phtml?job_code=476