Upload
Download free for 30 days
Login
Submit Search
AndApp開発における全て #denatechcon
5 likes
2,770 views
DeNA
DeNA TechCon 2017の登壇資料です。
Technology
Read more
1 of 37
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
More Related Content
PPTX
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
DeNA
PPTX
DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
DeNA
PDF
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
DeNA
PPTX
DeNAのプログラミング教育の取り組み #denatechcon
DeNA
PPTX
DeNA private cloudのその後 #denatechcon
DeNA
PPTX
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNA
PPTX
DebugHeadを使ったiOSアプリ開発手法 #denatechcon
DeNA
PPTX
革新的ブラウザゲームを支えるプラットフォーム技術
Toru Yamaguchi
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
DeNA
DeNA内製ゲームエンジンの現状と目指す未来 #denatechcon
DeNA
Mobage/AndAppのSDK開発事例とSDKを作る際に知っておくべきこと #denatechcon
DeNA
DeNAのプログラミング教育の取り組み #denatechcon
DeNA
DeNA private cloudのその後 #denatechcon
DeNA
DeNAのゲームを支えるプラットフォーム Sakasho #denatechcon
DeNA
DebugHeadを使ったiOSアプリ開発手法 #denatechcon
DeNA
革新的ブラウザゲームを支えるプラットフォーム技術
Toru Yamaguchi
What's hot
(20)
PDF
サービスの成長を支えるフロントエンド開発 #denatechcon
DeNA
PDF
Unityアバターアプリ開発パッケージのご提案
gdays
PDF
これからの Microservices
Toru Yamaguchi
PDF
DeNAの動画配信サービスを支えるインフラの内部 #denatechcon
DeNA
PDF
Vue Fes Japan 2018 LINE株式会社 LunchスポンサーLT
LINE Corporation
PPTX
DeNAが取り組む Software Engineer in Test
Masaki Nakagawa
PPTX
Unityネイティブプラグインマニアクス #denatechcon
DeNA
PDF
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
dena_study
PPTX
Unityで本格戦国シュミレーションRPG 開発
dena_study
PDF
DeNAのゲーム開発を支える技術 (クライアントサイド編)
denatech2016
PPTX
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
Toshiharu Sugiyama
PDF
FFRKを支えるWebアプリケーションフレームワークの技術
dena_study
PDF
チラシルiOSでの広告枠開発
Satoshi Takano
PPTX
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
Toshiharu Sugiyama
PDF
B2B2Cなヘルスケアサービスの作り方
Tomohiro MITSUMUNE
PPTX
マンガボックスのiOS10プッシュ通知導入事例
Fukaya Akifumi
PDF
Anyca(エニカ)のC2Cビジネスを支えるシステムと運用 #denatechcon
DeNA
PPTX
Anyca におけるUIフレームワークとスマホによるドア操作の仕組み
Shuhei Kawasaki
PDF
DeNAインフラの今とこれから - 今編 -
Tomoya Kabe
PPTX
技術選択とアーキテクトの役割 (要約版)
Toru Yamaguchi
サービスの成長を支えるフロントエンド開発 #denatechcon
DeNA
Unityアバターアプリ開発パッケージのご提案
gdays
これからの Microservices
Toru Yamaguchi
DeNAの動画配信サービスを支えるインフラの内部 #denatechcon
DeNA
Vue Fes Japan 2018 LINE株式会社 LunchスポンサーLT
LINE Corporation
DeNAが取り組む Software Engineer in Test
Masaki Nakagawa
Unityネイティブプラグインマニアクス #denatechcon
DeNA
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
dena_study
Unityで本格戦国シュミレーションRPG 開発
dena_study
DeNAのゲーム開発を支える技術 (クライアントサイド編)
denatech2016
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
Toshiharu Sugiyama
FFRKを支えるWebアプリケーションフレームワークの技術
dena_study
チラシルiOSでの広告枠開発
Satoshi Takano
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
Toshiharu Sugiyama
B2B2Cなヘルスケアサービスの作り方
Tomohiro MITSUMUNE
マンガボックスのiOS10プッシュ通知導入事例
Fukaya Akifumi
Anyca(エニカ)のC2Cビジネスを支えるシステムと運用 #denatechcon
DeNA
Anyca におけるUIフレームワークとスマホによるドア操作の仕組み
Shuhei Kawasaki
DeNAインフラの今とこれから - 今編 -
Tomoya Kabe
技術選択とアーキテクトの役割 (要約版)
Toru Yamaguchi
Ad
Viewers also liked
(20)
PPTX
ScalaからGoへ
James Neve
PDF
AWS X-Rayによるアプリケーションの分析とデバッグ
Amazon Web Services Japan
PDF
SLOのすすめ
Takeo Sawada
PDF
golang.tokyo #6 (in Japanese)
Yuichi Murata
PPTX
MongoDBの可能性の話
Akihiro Kuwano
PDF
Spiderストレージエンジンの使い方と利用事例 他ストレージエンジンの紹介
Kentoku
PDF
Blockchain on Go
Seiji Takahashi
PDF
Apache Spark Streaming + Kafka 0.10 with Joan Viladrosariera
Spark Summit
PDF
神に近づくx/net/context (Finding God with x/net/context)
guregu
PDF
An introduction and future of Ruby coverage library
mametter
PDF
Microservices at Mercari
Google Cloud Platform - Japan
PDF
Fast and Reliable Swift APIs with gRPC
Tim Burks
PDF
Swaggerでのapi開発よもやま話
KEISUKE KONISHI
PDF
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
Takuya Ueda
PDF
So You Wanna Go Fast?
Tyler Treat
PPTX
Solving anything in VCL
Fastly
PDF
Google Home and Google Assistant Workshop: Build your own serverless Action o...
Bret McGowen - NYC Google Developer Advocate
PDF
Spark Streaming Programming Techniques You Should Know with Gerard Maas
Spark Summit
PPTX
リクルートを支える横断データ基盤と機械学習の適用事例
Tetsutaro Watanabe
PDF
「サーバレスの薄い本」からの1年 #serverlesstokyo
Masahiro NAKAYAMA
ScalaからGoへ
James Neve
AWS X-Rayによるアプリケーションの分析とデバッグ
Amazon Web Services Japan
SLOのすすめ
Takeo Sawada
golang.tokyo #6 (in Japanese)
Yuichi Murata
MongoDBの可能性の話
Akihiro Kuwano
Spiderストレージエンジンの使い方と利用事例 他ストレージエンジンの紹介
Kentoku
Blockchain on Go
Seiji Takahashi
Apache Spark Streaming + Kafka 0.10 with Joan Viladrosariera
Spark Summit
神に近づくx/net/context (Finding God with x/net/context)
guregu
An introduction and future of Ruby coverage library
mametter
Microservices at Mercari
Google Cloud Platform - Japan
Fast and Reliable Swift APIs with gRPC
Tim Burks
Swaggerでのapi開発よもやま話
KEISUKE KONISHI
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
Takuya Ueda
So You Wanna Go Fast?
Tyler Treat
Solving anything in VCL
Fastly
Google Home and Google Assistant Workshop: Build your own serverless Action o...
Bret McGowen - NYC Google Developer Advocate
Spark Streaming Programming Techniques You Should Know with Gerard Maas
Spark Summit
リクルートを支える横断データ基盤と機械学習の適用事例
Tetsutaro Watanabe
「サーバレスの薄い本」からの1年 #serverlesstokyo
Masahiro NAKAYAMA
Ad
Similar to AndApp開発における全て #denatechcon
(20)
PPTX
DataEngConf NYC’18 セッションサマリー #2
gree_tech
PDF
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
満徳 関
PPTX
エンジニアという職業について
Hisatoshi Kikumoto
PDF
Intalio japan special cloud workshop
Daisuke Sugai
PPT
Google Product
Daisuke Sugai
PDF
MuleアプリケーションのCI/CD
MuleSoft Meetup Tokyo
PPTX
Rails on GKEで運用するWebアプリケーションの紹介
Makoto Haruyama
PDF
C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦
Insight Technology, Inc.
PPTX
Dangerでpull requestレビューの指摘事項を減らす
Shunsuke Maeda
PPTX
Jenkins+Gitによる検証済みマージ(30分版)
Kohsuke Kawaguchi
PPTX
バージョンアップ対応を軽減するサービス:マスティフ
Toshiyuki Hirata
PDF
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
Yahoo!デベロッパーネットワーク
PDF
おすすめインフラ! for スタートアップ
Koichiro Sumi
PPTX
CakePHP × 国産! baserCMS3の深化と今後の拡がり
Daisuke Abe
PPTX
技術選択とアーキテクトの役割
Toru Yamaguchi
PDF
OSC2013@FUKUOKA
Ryuji Egashira
PDF
楽天がCloud foundryを選んだ理由
Rakuten Group, Inc.
PDF
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
Yahoo!デベロッパーネットワーク
PDF
とあるメーカーのRedmine活用事例
agileware_jp
PPTX
グループ制作注意
MakotoItoh
DataEngConf NYC’18 セッションサマリー #2
gree_tech
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
満徳 関
エンジニアという職業について
Hisatoshi Kikumoto
Intalio japan special cloud workshop
Daisuke Sugai
Google Product
Daisuke Sugai
MuleアプリケーションのCI/CD
MuleSoft Meetup Tokyo
Rails on GKEで運用するWebアプリケーションの紹介
Makoto Haruyama
C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦
Insight Technology, Inc.
Dangerでpull requestレビューの指摘事項を減らす
Shunsuke Maeda
Jenkins+Gitによる検証済みマージ(30分版)
Kohsuke Kawaguchi
バージョンアップ対応を軽減するサービス:マスティフ
Toshiyuki Hirata
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
Yahoo!デベロッパーネットワーク
おすすめインフラ! for スタートアップ
Koichiro Sumi
CakePHP × 国産! baserCMS3の深化と今後の拡がり
Daisuke Abe
技術選択とアーキテクトの役割
Toru Yamaguchi
OSC2013@FUKUOKA
Ryuji Egashira
楽天がCloud foundryを選んだ理由
Rakuten Group, Inc.
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
Yahoo!デベロッパーネットワーク
とあるメーカーのRedmine活用事例
agileware_jp
グループ制作注意
MakotoItoh
More from DeNA
(20)
PPTX
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DeNA
PPTX
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
DeNA
PPTX
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...
DeNA
PDF
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
DeNA
PPTX
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
DeNA
PPTX
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeNA
PDF
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
DeNA
PPTX
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
DeNA
PPTX
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
DeNA
PDF
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
DeNA
PDF
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
DeNA
PDF
DeNA の Slack 導入と活用の事例紹介
DeNA
PPTX
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
DeNA
PPTX
オートモーティブ領域における 位置情報関連アルゴリズムあれこれ
DeNA
PPTX
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
DeNA
PPTX
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
DeNA
PPTX
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
DeNA
PPTX
MOV お客さま探索ナビの GCP ML開発フローについて
DeNA
PPTX
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
DeNA
PPTX
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DeNA
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
DeNA
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...
DeNA
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
DeNA
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
DeNA
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeNA
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
DeNA
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
DeNA
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
DeNA
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
DeNA
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
DeNA
DeNA の Slack 導入と活用の事例紹介
DeNA
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
DeNA
オートモーティブ領域における 位置情報関連アルゴリズムあれこれ
DeNA
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
DeNA
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
DeNA
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
DeNA
MOV お客さま探索ナビの GCP ML開発フローについて
DeNA
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
DeNA
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA
AndApp開発における全て #denatechcon
1.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. AndApp開発の全て Atsushi Kobayashi General Manager Systems Development Dept. Open Platform Business Unit DeNA
2.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. 自己紹介 • 小林 篤 ⁃ 2011/03にDeNAに入社 ⁃ MobageOpenPlatformのAPI/ProxyServer開発に従事 ⁃ オープンプラットフォーム事業本部 システム開発部 部長 • Mobage全般・MobageOpenPlatform、協業Platform事業などの開発責任者 ⁃ 一般社団法人JapanPerlAssociation 代表理事 • YAPC(Yet Anoter Perl Conference)などを主催しPerlの普及振興に尽力 ⁃ Perl Hacker • 自作のライブラリが日本の有名企業各所でも利用 ⁃ 最近では社内GCP(GoogleCloudPlatform)エバンジェリスト的な活動 も • 特別エバンジェリスト程詳しくもないですが… 2
3.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. AndAppとは 3
4.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. AndAppとは • DeNAが新しく提供するPC向けのアプリケーションプラットフォーム ⁃ スマホでもPCでも遊べる場の提供 • 2016年11月にサービスローンチ • 現在では11タイトルがリリース済 ⁃ 今後続々リリース予定 4
5.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. AndAppとは • 完全ド新規サービスなのでシステムをフルスクラッチで開発 • 本日は本システムの開発の裏側を余すところなくお伝え致します 5
6.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. 開発現場の過去と現在 6
7.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. 過去 • 今までの開発手法と技術スタック ⁃ Infra • 基本オンプレ • パブリッククラウドを使ってもサーバインスタンスの上にオンプレライクな 環境を構築 ⁃ 開発言語はサーバはPerlがメイン • DeNA内部要素に特化したライブラリが整備されている • Perlでの開発に慣れ親しんだエンジニアが多い ⁃ JSON Schemaやmicroservice、JWTを積極的に導入 ⁃ 認証/認可ではOpenID Connect等の標準仕様に則った設計/開発や JWT(JSON Web Token)等を積極的に活用 7
8.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. 現在 • 今の開発手法と技術スタック ⁃ Infra • GCP(Google Cloud Platform)の中のGoogleAppEngineを積極的に活用しほ ぼ全てのシステムをGAEで提供 ⁃ 開発言語はサーバをgolangに変更 • GAE SE(Standard Environment)でPerlをサポートしていない為 ⁃ JSON Schema/microservice/OIDC/JWTなどの技術は引き続き利用 8
9.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. 過去 to 現在 • 何故変えたのか? • 変える必要あったのか? • 変えてどうだったのか 9
10.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. 何故変えたのか • 変えたかったから! 10
11.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. 第一部完 11
12.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. 何故変えたのか1 • Infra ⁃ 運用という名の苦行 • 運用はとても大切です ⁃ 大規模システムになればなるほど使うサーバ台数が多くなる • 故障率というのがあってだな ⁃ 台数が多くなるとメンテナンスコストが高くなる • 故障率(ry • セキュリティパッチ等 • オペミスの確率も上がる ⁃ 多数のサーバ管理を効率化する為の自動化するにも工数がかかる • 歴史的背景等もあるわけです • 歴史・経験があるからこその独自ツール • 其の環境でしか使えないナレッジ 12
13.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. 変える必要があったのか • 究極変えなくてもやっていける • ただ既存のテクノロジーの上でヌクヌクしていると、数年後には其の環境 でしかやっていけない人材になってしまう • 現状維持は退化でしかなく、挑戦し続けることで第一線で戦い続けられる • フルスクラッチでシステム開発出来る機会なんて早々ない。 • つまり今しかない! 13
14.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. 何故変えたのか2 • 人の工数は有限 • システムを開発・運用する上でどうしても必要となる工数以外はサービス を創る工数に回したい・回すべき • 人間の頭脳を余すところなく最大限モノづくりに投入したい • 周辺テクノロジーでそれを実現出来るものがある! • 使わないわけには! 14
15.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. 技術選定 15
16.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. GoogleAppEngine • 運用コスト等を最大限抑えることが第一のお題 • パブリッククラウドで提供されるフルマネージドサービスをフル活用する べく様々なサービスの検討を開始 ではないんです 16
17.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. GCP ManagedVM • 本検討の少し前にGCPのManagedVMというサービスがβ提供始まった • 簡単に言うとManagedVMは好きなプログラミング言語をランタイムに選 べるGAEみたいなもの • DeNAのエンジニアはPerlに慣れ親しんでいるので開発言語をPerlのまま でGCP ManagedVMを利用すれば丁度いい感じにマネージドされる環境を 構築できるんじゃないか • ということでPerl on ManagedVMという技術スタックで一部システムの 開発を先行させる • なので、他のパブリッククラウドのサービスを細かく調べてはいません ⁃ ある程度情報は持ってる、何ができそうかのイメージはあるが精緻に は調べてない 17
18.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. GCP ManagedVM • 実際にManagedVM上で開発してみるも、GCPの各サービスやAPIとつな ぐのにライブラリの開発から必要だった! ⁃ そらそうだ • βサービスということもありGAEほどこなれておらずtry&errorがかなり多 くなってしまった ⁃ βですし… • パフォーマンスも思った以上に出ず、チューニングにかなり工数が取られ そうだった • ManagedVMは人類には早かった ⁃ ちなみに今はGoogleAppEngine FlexibleEnvironmentと名称等が変 わっております 18
19.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. Google Container Engine(GKE) • ManagedVMで1機能作るのに並行してGKEでも1機能作り始めた • GAE系ではネットワーク周りの制限が一部あるので、その制限を受けられ ない機能を開発する場合は違う技術選定をする必要がある • Google Compute Engine(GCE)をつかう事も当然できるがお題に反する • GKEを活用して上手く構成を組めればフルマネージドサービスに近いシス テム構築が可能ではある • 色々試行錯誤し実際に開発したが… • もっと楽にできないのかっ!何気にめんどくさい! 19
20.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. Firebase • GKEでは通知関連のシステムを作ろうとしていたのでGCPファミリーにな ったFirebaseの利用を検討 • 通知の基盤としてはFirebaseを活用し、周辺APIをGAEで作ることでフル マネージド! 20
21.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. と、言う感じで • 幾つかの試行錯誤の上、我々が求めるものを一番満たしてくれるのはGAE のStandard Environmentだという結論に至る • サクッとGAE/go+Firebaseでシステム開発を始めたわけではなく、幾つ かの試行錯誤と失敗を積み重ねました • ただ、あるテクノロジーが有用なのかどうか、その場のニーズに合うかど うかを見極めるには実際に使ってみるのが一番 21
22.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. GAE SEに決めてから • GAE SEにすると意思決定した後に開発言語を再選定する必要があった ⁃ Java7 ⁃ PHP ⁃ Python 2.7 ⁃ Go • 今までPerlというLL言語を利用していたので折角ならLL以外で。 • ということでPHPとPythonは除外 • Perlエンジニア的にはGoが一番良いというウワサとJavaが嫌いという同 しようもない理由でGoとしました(え ⁃ 実際Perl Hacker達は最近ではGoを使うことが多いですね ⁃ GAEとの相性も良い • Footprintが軽くspin-upしてくる時間がJavaと比べると圧倒的 22
23.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. システムアーキテクチャ 23
24.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. AndApp System Overview 24
25.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. 基本構成 • 機能単位でコンポーネントを分割 ⁃ User / Notification / 分析 / 決済などの単位 • コンポーネント毎にGAEのサービスとして配置 • データストアにはDatastoreを利用 ⁃ RDBMSを使わない選択! • Go ⁃ WebApplicationフレームワークにはGinを採用(一部echo) ⁃ DatastoreライブラリとしてはGoonを採用 • 分析用途としてはBigQueryを採用 • Log管理はStackdriver Logging • 監視はStackdriver • システムメトリックスはGCPのコンソール • Theフルマネージド 25
26.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. なぜDatastore • GCP上でRDBSを利用するとするとCloudSQLが選択肢に入る ⁃ GCE上にMySQLを立てるとかもできるけど趣旨に反する • ただCloudSQLが思った以上にパフォーマンスが出ない ⁃ 途中でパフォーマンス改善はあったものの • PokemonGoでの実績 • 郷に入っては郷に従え 26
27.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. 開発体制 27
28.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. チーム構成 • 大まかな機能単位でチーム構成 ⁃ 一人チームもあれば2〜3人チームもあり、最大でも1チーム5名程 度 ⁃ 総開発人員数は25名程 • Microserviceでの開発を行っており、1機能1コンポーネント1リポジト リ1サービスという形の開発を行っているので開発そのものは複数のチー ムに分かれて実施可能 28
29.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. チームを細切れにしてもワークした理由 • チームメンバーが多く、かつチームが細切れだと空中分解しかねない • そうさせないために ⁃ 各チームのリードエンジニア陣をあつめたDSを実施 ⁃ 共通基盤チームを用意しライブラリや開発作法ほ基本統一 ⁃ JSON Schemaを活用しI/Fの可視化とValidationで利用 ⁃ Documentのフォーマットを決めDocument Firstでの開発 29
30.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. GAE+microservice • なにげに相性が良い • 1コンポーネントがGAEの1サービスとなり、他コンポーネントに基本影 響されずに管理が可能 ⁃ オンプレなどではどのサーバにどのコンポーネントをdeployするか ⁃ LBやProxyの設定をどのようにするかの管理が複雑… • ただし1プロジェクトあたりの利用可能Service数が20なので要注意 ⁃ 相談すれば上限突破してくれるかも ⁃ 現時点で我々は26サービスを利用している 30
31.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. コスト 31
32.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. コスト is 何? • 一番イメージしやすいのは ⁃ サーバ購入費 ⁃ データセンター関連の諸費用 • 忘れがちなのが人件費 • なかなか思いつかないのはコミュニケーションコスト 32
33.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. コスト(サーバ・DC) • 当然必要な台数を用意する必要があるので初期費用がかかります • パブリッククラウドって一般的にはこういう初期費用をかけずに利用でき るのがウリだったりしますよね • オンプレでサーバを用意する場合、例えば他サービスで余ったサーバを回 してもらう、減価償却切れのサーバを回してもらうとすれば初期費用はお さえらえれるかもしれない • DCのコスト(ラック・電源・ネットワーク・etc)はどうしてもかかって いく。規模によってはボリュームディスカウント効くけど ⁃ 前職ではサービス規模に対して結構な額になったり 33
34.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. コスト(人件費) • 何かを安定的に維持するには人が必要 • サービス開発以外にInfraをお守りする必要がありそこで働く人のコスト が発生する • 規模が大きくなれば必要とする人も多く必要になってくる 34
35.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. コスト(コミュニケーション) • 情報共有はとても大切 ⁃ 大規模開発になりチームが細切れだったりチーム人数が多ければ特に • とても大切だし必要なんだけど関係者が膨れ上がるとそれはコストになる • 営業・企画・デザイナー・エンジニア・QA・法務・などなど関係者が膨 らんでくるともう大変 • 密室ではなくシンプルに出来るところはする 35
36.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. まとめ 36
37.
Copyright (C) 2013
DeNA Co.,Ltd. All Rights Reserved. まとめ • 既存の技術や運用にとらわれない事 • モノづくりに集中出来る環境を如何に用意できるか • 今回の例は実はかなりチャレンジング ⁃ もっとスモールスタートしてもいい ⁃ つまり既存のシステム・サービスの一部から始めるもよい • 新しい取り組みに失敗はつきもの ⁃ 失敗を許容しよう、そこから学ぼう • 振り返ろう ⁃ やって満足しない。課題はいっぱいある • 一番大切なことは ⁃ めいいっぱい楽しむこと。ワクワクしよう! 37