SlideShare a Scribd company logo
1 of 37
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
AndApp開発の全て
Atsushi Kobayashi
General Manager
Systems Development Dept.
Open Platform Business Unit
DeNA
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
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
AndAppとは
3
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
AndAppとは
• DeNAが新しく提供するPC向けのアプリケーションプラットフォーム
⁃ スマホでもPCでも遊べる場の提供
• 2016年11月にサービスローンチ
• 現在では11タイトルがリリース済
⁃ 今後続々リリース予定
4
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
AndAppとは
• 完全ド新規サービスなのでシステムをフルスクラッチで開発
• 本日は本システムの開発の裏側を余すところなくお伝え致します
5
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
開発現場の過去と現在
6
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
過去
• 今までの開発手法と技術スタック
⁃ Infra
• 基本オンプレ
• パブリッククラウドを使ってもサーバインスタンスの上にオンプレライクな
環境を構築
⁃ 開発言語はサーバはPerlがメイン
• DeNA内部要素に特化したライブラリが整備されている
• Perlでの開発に慣れ親しんだエンジニアが多い
⁃ JSON Schemaやmicroservice、JWTを積極的に導入
⁃ 認証/認可ではOpenID Connect等の標準仕様に則った設計/開発や
JWT(JSON Web Token)等を積極的に活用
7
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
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
過去 to 現在
• 何故変えたのか?
• 変える必要あったのか?
• 変えてどうだったのか
9
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
何故変えたのか
• 変えたかったから!
10
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
第一部完
11
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
何故変えたのか1
• Infra
⁃ 運用という名の苦行
• 運用はとても大切です
⁃ 大規模システムになればなるほど使うサーバ台数が多くなる
• 故障率というのがあってだな
⁃ 台数が多くなるとメンテナンスコストが高くなる
• 故障率(ry
• セキュリティパッチ等
• オペミスの確率も上がる
⁃ 多数のサーバ管理を効率化する為の自動化するにも工数がかかる
• 歴史的背景等もあるわけです
• 歴史・経験があるからこその独自ツール
• 其の環境でしか使えないナレッジ
12
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
変える必要があったのか
• 究極変えなくてもやっていける
• ただ既存のテクノロジーの上でヌクヌクしていると、数年後には其の環境
でしかやっていけない人材になってしまう
• 現状維持は退化でしかなく、挑戦し続けることで第一線で戦い続けられる
• フルスクラッチでシステム開発出来る機会なんて早々ない。
• つまり今しかない!
13
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
何故変えたのか2
• 人の工数は有限
• システムを開発・運用する上でどうしても必要となる工数以外はサービス
を創る工数に回したい・回すべき
• 人間の頭脳を余すところなく最大限モノづくりに投入したい
• 周辺テクノロジーでそれを実現出来るものがある!
• 使わないわけには!
14
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
技術選定
15
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
GoogleAppEngine
• 運用コスト等を最大限抑えることが第一のお題
• パブリッククラウドで提供されるフルマネージドサービスをフル活用する
べく様々なサービスの検討を開始
ではないんです
16
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
GCP ManagedVM
• 本検討の少し前にGCPのManagedVMというサービスがβ提供始まった
• 簡単に言うとManagedVMは好きなプログラミング言語をランタイムに選
べるGAEみたいなもの
• DeNAのエンジニアはPerlに慣れ親しんでいるので開発言語をPerlのまま
でGCP ManagedVMを利用すれば丁度いい感じにマネージドされる環境を
構築できるんじゃないか
• ということでPerl on ManagedVMという技術スタックで一部システムの
開発を先行させる
• なので、他のパブリッククラウドのサービスを細かく調べてはいません
⁃ ある程度情報は持ってる、何ができそうかのイメージはあるが精緻に
は調べてない
17
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
GCP ManagedVM
• 実際にManagedVM上で開発してみるも、GCPの各サービスやAPIとつな
ぐのにライブラリの開発から必要だった!
⁃ そらそうだ
• βサービスということもありGAEほどこなれておらずtry&errorがかなり多
くなってしまった
⁃ βですし…
• パフォーマンスも思った以上に出ず、チューニングにかなり工数が取られ
そうだった
• ManagedVMは人類には早かった
⁃ ちなみに今はGoogleAppEngine FlexibleEnvironmentと名称等が変
わっております
18
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
Google Container Engine(GKE)
• ManagedVMで1機能作るのに並行してGKEでも1機能作り始めた
• GAE系ではネットワーク周りの制限が一部あるので、その制限を受けられ
ない機能を開発する場合は違う技術選定をする必要がある
• Google Compute Engine(GCE)をつかう事も当然できるがお題に反する
• GKEを活用して上手く構成を組めればフルマネージドサービスに近いシス
テム構築が可能ではある
• 色々試行錯誤し実際に開発したが…
• もっと楽にできないのかっ!何気にめんどくさい!
19
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
Firebase
• GKEでは通知関連のシステムを作ろうとしていたのでGCPファミリーにな
ったFirebaseの利用を検討
• 通知の基盤としてはFirebaseを活用し、周辺APIをGAEで作ることでフル
マネージド!
20
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
と、言う感じで
• 幾つかの試行錯誤の上、我々が求めるものを一番満たしてくれるのはGAE
のStandard Environmentだという結論に至る
• サクッとGAE/go+Firebaseでシステム開発を始めたわけではなく、幾つ
かの試行錯誤と失敗を積み重ねました
• ただ、あるテクノロジーが有用なのかどうか、その場のニーズに合うかど
うかを見極めるには実際に使ってみるのが一番
21
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
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
システムアーキテクチャ
23
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
AndApp System Overview
24
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
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
なぜDatastore
• GCP上でRDBSを利用するとするとCloudSQLが選択肢に入る
⁃ GCE上にMySQLを立てるとかもできるけど趣旨に反する
• ただCloudSQLが思った以上にパフォーマンスが出ない
⁃ 途中でパフォーマンス改善はあったものの
• PokemonGoでの実績
• 郷に入っては郷に従え
26
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
開発体制
27
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
チーム構成
• 大まかな機能単位でチーム構成
⁃ 一人チームもあれば2〜3人チームもあり、最大でも1チーム5名程
度
⁃ 総開発人員数は25名程
• Microserviceでの開発を行っており、1機能1コンポーネント1リポジト
リ1サービスという形の開発を行っているので開発そのものは複数のチー
ムに分かれて実施可能
28
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
チームを細切れにしてもワークした理由
• チームメンバーが多く、かつチームが細切れだと空中分解しかねない
• そうさせないために
⁃ 各チームのリードエンジニア陣をあつめたDSを実施
⁃ 共通基盤チームを用意しライブラリや開発作法ほ基本統一
⁃ JSON Schemaを活用しI/Fの可視化とValidationで利用
⁃ Documentのフォーマットを決めDocument Firstでの開発
29
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
GAE+microservice
• なにげに相性が良い
• 1コンポーネントがGAEの1サービスとなり、他コンポーネントに基本影
響されずに管理が可能
⁃ オンプレなどではどのサーバにどのコンポーネントをdeployするか
⁃ LBやProxyの設定をどのようにするかの管理が複雑…
• ただし1プロジェクトあたりの利用可能Service数が20なので要注意
⁃ 相談すれば上限突破してくれるかも
⁃ 現時点で我々は26サービスを利用している
30
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
コスト
31
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
コスト is 何?
• 一番イメージしやすいのは
⁃ サーバ購入費
⁃ データセンター関連の諸費用
• 忘れがちなのが人件費
• なかなか思いつかないのはコミュニケーションコスト
32
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
コスト(サーバ・DC)
• 当然必要な台数を用意する必要があるので初期費用がかかります
• パブリッククラウドって一般的にはこういう初期費用をかけずに利用でき
るのがウリだったりしますよね
• オンプレでサーバを用意する場合、例えば他サービスで余ったサーバを回
してもらう、減価償却切れのサーバを回してもらうとすれば初期費用はお
さえらえれるかもしれない
• DCのコスト(ラック・電源・ネットワーク・etc)はどうしてもかかって
いく。規模によってはボリュームディスカウント効くけど
⁃ 前職ではサービス規模に対して結構な額になったり
33
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
コスト(人件費)
• 何かを安定的に維持するには人が必要
• サービス開発以外にInfraをお守りする必要がありそこで働く人のコスト
が発生する
• 規模が大きくなれば必要とする人も多く必要になってくる
34
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
コスト(コミュニケーション)
• 情報共有はとても大切
⁃ 大規模開発になりチームが細切れだったりチーム人数が多ければ特に
• とても大切だし必要なんだけど関係者が膨れ上がるとそれはコストになる
• 営業・企画・デザイナー・エンジニア・QA・法務・などなど関係者が膨
らんでくるともう大変
• 密室ではなくシンプルに出来るところはする
35
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
まとめ
36
Copyright (C) 2013 DeNA Co.,Ltd. All Rights Reserved.
まとめ
• 既存の技術や運用にとらわれない事
• モノづくりに集中出来る環境を如何に用意できるか
• 今回の例は実はかなりチャレンジング
⁃ もっとスモールスタートしてもいい
⁃ つまり既存のシステム・サービスの一部から始めるもよい
• 新しい取り組みに失敗はつきもの
⁃ 失敗を許容しよう、そこから学ぼう
• 振り返ろう
⁃ やって満足しない。課題はいっぱいある
• 一番大切なことは
⁃ めいいっぱい楽しむこと。ワクワクしよう!
37

More Related Content

What's hot

サービスの成長を支えるフロントエンド開発 #denatechcon
サービスの成長を支えるフロントエンド開発 #denatechconサービスの成長を支えるフロントエンド開発 #denatechcon
サービスの成長を支えるフロントエンド開発 #denatechconDeNA
 
Unityアバターアプリ開発パッケージのご提案
Unityアバターアプリ開発パッケージのご提案Unityアバターアプリ開発パッケージのご提案
Unityアバターアプリ開発パッケージのご提案gdays
 
これからの Microservices
これからの Microservicesこれからの Microservices
これからの MicroservicesToru Yamaguchi
 
DeNAの動画配信サービスを支えるインフラの内部 #denatechcon
DeNAの動画配信サービスを支えるインフラの内部  #denatechconDeNAの動画配信サービスを支えるインフラの内部  #denatechcon
DeNAの動画配信サービスを支えるインフラの内部 #denatechconDeNA
 
Vue Fes Japan 2018 LINE株式会社 LunchスポンサーLT
Vue Fes Japan 2018 LINE株式会社 LunchスポンサーLTVue Fes Japan 2018 LINE株式会社 LunchスポンサーLT
Vue Fes Japan 2018 LINE株式会社 LunchスポンサーLTLINE Corporation
 
DeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in TestDeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in TestMasaki Nakagawa
 
Unityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconUnityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconDeNA
 
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)dena_study
 
Unityで本格戦国シュミレーションRPG 開発
Unityで本格戦国シュミレーションRPG 開発Unityで本格戦国シュミレーションRPG 開発
Unityで本格戦国シュミレーションRPG 開発dena_study
 
DeNAのゲーム開発を支える技術 (クライアントサイド編)
DeNAのゲーム開発を支える技術 (クライアントサイド編)DeNAのゲーム開発を支える技術 (クライアントサイド編)
DeNAのゲーム開発を支える技術 (クライアントサイド編)denatech2016
 
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)Toshiharu Sugiyama
 
FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術dena_study
 
チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発Satoshi Takano
 
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組みDeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組みToshiharu Sugiyama
 
B2B2Cなヘルスケアサービスの作り方
B2B2Cなヘルスケアサービスの作り方B2B2Cなヘルスケアサービスの作り方
B2B2Cなヘルスケアサービスの作り方Tomohiro MITSUMUNE
 
マンガボックスのiOS10プッシュ通知導入事例
マンガボックスのiOS10プッシュ通知導入事例マンガボックスのiOS10プッシュ通知導入事例
マンガボックスのiOS10プッシュ通知導入事例Fukaya Akifumi
 
Anyca(エニカ)のC2Cビジネスを支えるシステムと運用 #denatechcon
Anyca(エニカ)のC2Cビジネスを支えるシステムと運用 #denatechconAnyca(エニカ)のC2Cビジネスを支えるシステムと運用 #denatechcon
Anyca(エニカ)のC2Cビジネスを支えるシステムと運用 #denatechconDeNA
 
Anyca におけるUIフレームワークと スマホによるドア操作の仕組み
Anyca におけるUIフレームワークとスマホによるドア操作の仕組みAnyca におけるUIフレームワークとスマホによるドア操作の仕組み
Anyca におけるUIフレームワークと スマホによるドア操作の仕組みShuhei Kawasaki
 
DeNAインフラの今とこれから - 今編 -
DeNAインフラの今とこれから - 今編 -DeNAインフラの今とこれから - 今編 -
DeNAインフラの今とこれから - 今編 -Tomoya Kabe
 
技術選択とアーキテクトの役割 (要約版)
技術選択とアーキテクトの役割 (要約版)技術選択とアーキテクトの役割 (要約版)
技術選択とアーキテクトの役割 (要約版)Toru Yamaguchi
 

What's hot (20)

サービスの成長を支えるフロントエンド開発 #denatechcon
サービスの成長を支えるフロントエンド開発 #denatechconサービスの成長を支えるフロントエンド開発 #denatechcon
サービスの成長を支えるフロントエンド開発 #denatechcon
 
Unityアバターアプリ開発パッケージのご提案
Unityアバターアプリ開発パッケージのご提案Unityアバターアプリ開発パッケージのご提案
Unityアバターアプリ開発パッケージのご提案
 
これからの Microservices
これからの Microservicesこれからの Microservices
これからの Microservices
 
DeNAの動画配信サービスを支えるインフラの内部 #denatechcon
DeNAの動画配信サービスを支えるインフラの内部  #denatechconDeNAの動画配信サービスを支えるインフラの内部  #denatechcon
DeNAの動画配信サービスを支えるインフラの内部 #denatechcon
 
Vue Fes Japan 2018 LINE株式会社 LunchスポンサーLT
Vue Fes Japan 2018 LINE株式会社 LunchスポンサーLTVue Fes Japan 2018 LINE株式会社 LunchスポンサーLT
Vue Fes Japan 2018 LINE株式会社 LunchスポンサーLT
 
DeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in TestDeNAが取り組む Software Engineer in Test
DeNAが取り組む Software Engineer in Test
 
Unityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconUnityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechcon
 
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
DeNA の新しいネイティブ開発(パズル戦隊デナレンジャー)
 
Unityで本格戦国シュミレーションRPG 開発
Unityで本格戦国シュミレーションRPG 開発Unityで本格戦国シュミレーションRPG 開発
Unityで本格戦国シュミレーションRPG 開発
 
DeNAのゲーム開発を支える技術 (クライアントサイド編)
DeNAのゲーム開発を支える技術 (クライアントサイド編)DeNAのゲーム開発を支える技術 (クライアントサイド編)
DeNAのゲーム開発を支える技術 (クライアントサイド編)
 
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
DeNAtechcon_DeNAのセキュリティの取り組みと、スマートフォンセキュリティ(same-origin policy)
 
FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術FFRKを支えるWebアプリケーションフレームワークの技術
FFRKを支えるWebアプリケーションフレームワークの技術
 
チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発
 
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組みDeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
DeNA_Techcon2017_DeNAでのチート・脆弱性診断への取り組み
 
B2B2Cなヘルスケアサービスの作り方
B2B2Cなヘルスケアサービスの作り方B2B2Cなヘルスケアサービスの作り方
B2B2Cなヘルスケアサービスの作り方
 
マンガボックスのiOS10プッシュ通知導入事例
マンガボックスのiOS10プッシュ通知導入事例マンガボックスのiOS10プッシュ通知導入事例
マンガボックスのiOS10プッシュ通知導入事例
 
Anyca(エニカ)のC2Cビジネスを支えるシステムと運用 #denatechcon
Anyca(エニカ)のC2Cビジネスを支えるシステムと運用 #denatechconAnyca(エニカ)のC2Cビジネスを支えるシステムと運用 #denatechcon
Anyca(エニカ)のC2Cビジネスを支えるシステムと運用 #denatechcon
 
Anyca におけるUIフレームワークと スマホによるドア操作の仕組み
Anyca におけるUIフレームワークとスマホによるドア操作の仕組みAnyca におけるUIフレームワークとスマホによるドア操作の仕組み
Anyca におけるUIフレームワークと スマホによるドア操作の仕組み
 
DeNAインフラの今とこれから - 今編 -
DeNAインフラの今とこれから - 今編 -DeNAインフラの今とこれから - 今編 -
DeNAインフラの今とこれから - 今編 -
 
技術選択とアーキテクトの役割 (要約版)
技術選択とアーキテクトの役割 (要約版)技術選択とアーキテクトの役割 (要約版)
技術選択とアーキテクトの役割 (要約版)
 

Viewers also liked

ScalaからGoへ
ScalaからGoへScalaからGoへ
ScalaからGoへJames Neve
 
AWS X-Rayによるアプリケーションの分析とデバッグ
AWS X-Rayによるアプリケーションの分析とデバッグAWS X-Rayによるアプリケーションの分析とデバッグ
AWS X-Rayによるアプリケーションの分析とデバッグAmazon Web Services Japan
 
Operations: Production Readiness Review – How to stop bad things from Happening
Operations: Production Readiness Review – How to stop bad things from HappeningOperations: Production Readiness Review – How to stop bad things from Happening
Operations: Production Readiness Review – How to stop bad things from HappeningAmazon Web Services
 
Streaming Data Analytics with Amazon Redshift and Kinesis Firehose
Streaming Data Analytics with Amazon Redshift and Kinesis FirehoseStreaming Data Analytics with Amazon Redshift and Kinesis Firehose
Streaming Data Analytics with Amazon Redshift and Kinesis FirehoseAmazon Web Services
 
golang.tokyo #6 (in Japanese)
golang.tokyo #6 (in Japanese)golang.tokyo #6 (in Japanese)
golang.tokyo #6 (in Japanese)Yuichi Murata
 
MongoDBの可能性の話
MongoDBの可能性の話MongoDBの可能性の話
MongoDBの可能性の話Akihiro Kuwano
 
Spiderストレージエンジンの使い方と利用事例 他ストレージエンジンの紹介
Spiderストレージエンジンの使い方と利用事例 他ストレージエンジンの紹介Spiderストレージエンジンの使い方と利用事例 他ストレージエンジンの紹介
Spiderストレージエンジンの使い方と利用事例 他ストレージエンジンの紹介Kentoku
 
Apache Spark Streaming + Kafka 0.10 with Joan Viladrosariera
Apache Spark Streaming + Kafka 0.10 with Joan ViladrosarieraApache Spark Streaming + Kafka 0.10 with Joan Viladrosariera
Apache Spark Streaming + Kafka 0.10 with Joan ViladrosarieraSpark Summit
 
神に近づくx/net/context (Finding God with x/net/context)
神に近づくx/net/context (Finding God with x/net/context)神に近づくx/net/context (Finding God with x/net/context)
神に近づくx/net/context (Finding God with x/net/context)guregu
 
An introduction and future of Ruby coverage library
An introduction and future of Ruby coverage libraryAn introduction and future of Ruby coverage library
An introduction and future of Ruby coverage librarymametter
 
Fast and Reliable Swift APIs with gRPC
Fast and Reliable Swift APIs with gRPCFast and Reliable Swift APIs with gRPC
Fast and Reliable Swift APIs with gRPCTim Burks
 
Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話KEISUKE KONISHI
 
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法Takuya Ueda
 
So You Wanna Go Fast?
So You Wanna Go Fast?So You Wanna Go Fast?
So You Wanna Go Fast?Tyler Treat
 
Solving anything in VCL
Solving anything in VCLSolving anything in VCL
Solving anything in VCLFastly
 

Viewers also liked (20)

ScalaからGoへ
ScalaからGoへScalaからGoへ
ScalaからGoへ
 
AWS X-Rayによるアプリケーションの分析とデバッグ
AWS X-Rayによるアプリケーションの分析とデバッグAWS X-Rayによるアプリケーションの分析とデバッグ
AWS X-Rayによるアプリケーションの分析とデバッグ
 
Operations: Production Readiness Review – How to stop bad things from Happening
Operations: Production Readiness Review – How to stop bad things from HappeningOperations: Production Readiness Review – How to stop bad things from Happening
Operations: Production Readiness Review – How to stop bad things from Happening
 
SLOのすすめ
SLOのすすめSLOのすすめ
SLOのすすめ
 
Streaming Data Analytics with Amazon Redshift and Kinesis Firehose
Streaming Data Analytics with Amazon Redshift and Kinesis FirehoseStreaming Data Analytics with Amazon Redshift and Kinesis Firehose
Streaming Data Analytics with Amazon Redshift and Kinesis Firehose
 
golang.tokyo #6 (in Japanese)
golang.tokyo #6 (in Japanese)golang.tokyo #6 (in Japanese)
golang.tokyo #6 (in Japanese)
 
MongoDBの可能性の話
MongoDBの可能性の話MongoDBの可能性の話
MongoDBの可能性の話
 
Spiderストレージエンジンの使い方と利用事例 他ストレージエンジンの紹介
Spiderストレージエンジンの使い方と利用事例 他ストレージエンジンの紹介Spiderストレージエンジンの使い方と利用事例 他ストレージエンジンの紹介
Spiderストレージエンジンの使い方と利用事例 他ストレージエンジンの紹介
 
Blockchain on Go
Blockchain on GoBlockchain on Go
Blockchain on Go
 
What’s New in Amazon Aurora
What’s New in Amazon AuroraWhat’s New in Amazon Aurora
What’s New in Amazon Aurora
 
Apache Spark Streaming + Kafka 0.10 with Joan Viladrosariera
Apache Spark Streaming + Kafka 0.10 with Joan ViladrosarieraApache Spark Streaming + Kafka 0.10 with Joan Viladrosariera
Apache Spark Streaming + Kafka 0.10 with Joan Viladrosariera
 
神に近づくx/net/context (Finding God with x/net/context)
神に近づくx/net/context (Finding God with x/net/context)神に近づくx/net/context (Finding God with x/net/context)
神に近づくx/net/context (Finding God with x/net/context)
 
An introduction and future of Ruby coverage library
An introduction and future of Ruby coverage libraryAn introduction and future of Ruby coverage library
An introduction and future of Ruby coverage library
 
Microservices at Mercari
Microservices at MercariMicroservices at Mercari
Microservices at Mercari
 
Fast and Reliable Swift APIs with gRPC
Fast and Reliable Swift APIs with gRPCFast and Reliable Swift APIs with gRPC
Fast and Reliable Swift APIs with gRPC
 
Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話
 
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
 
So You Wanna Go Fast?
So You Wanna Go Fast?So You Wanna Go Fast?
So You Wanna Go Fast?
 
Solving anything in VCL
Solving anything in VCLSolving anything in VCL
Solving anything in VCL
 
Google Home and Google Assistant Workshop: Build your own serverless Action o...
Google Home and Google Assistant Workshop: Build your own serverless Action o...Google Home and Google Assistant Workshop: Build your own serverless Action o...
Google Home and Google Assistant Workshop: Build your own serverless Action o...
 

Similar to AndApp開発における全て #denatechcon

DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2gree_tech
 
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019満徳 関
 
エンジニアという職業について
エンジニアという職業についてエンジニアという職業について
エンジニアという職業についてHisatoshi Kikumoto
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshopDaisuke Sugai
 
MuleアプリケーションのCI/CD
MuleアプリケーションのCI/CDMuleアプリケーションのCI/CD
MuleアプリケーションのCI/CDMuleSoft Meetup Tokyo
 
Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介Makoto Haruyama
 
C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦
C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦
C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦Insight Technology, Inc.
 
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすDangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすShunsuke Maeda
 
Jenkins+Gitによる検証済みマージ(30分版)
Jenkins+Gitによる検証済みマージ(30分版)Jenkins+Gitによる検証済みマージ(30分版)
Jenkins+Gitによる検証済みマージ(30分版)Kohsuke Kawaguchi
 
バージョンアップ対応を軽減するサービス:マスティフ
バージョンアップ対応を軽減するサービス:マスティフバージョンアップ対応を軽減するサービス:マスティフ
バージョンアップ対応を軽減するサービス:マスティフToshiyuki Hirata
 
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話Yahoo!デベロッパーネットワーク
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップKoichiro Sumi
 
CakePHP × 国産! baserCMS3の深化と今後の拡がり
CakePHP × 国産! baserCMS3の深化と今後の拡がりCakePHP × 国産! baserCMS3の深化と今後の拡がり
CakePHP × 国産! baserCMS3の深化と今後の拡がりDaisuke Abe
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
 
楽天がCloud foundryを選んだ理由
楽天がCloud foundryを選んだ理由楽天がCloud foundryを選んだ理由
楽天がCloud foundryを選んだ理由Rakuten Group, Inc.
 
とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例agileware_jp
 
グループ制作注意
グループ制作注意グループ制作注意
グループ制作注意MakotoItoh
 

Similar to AndApp開発における全て #denatechcon (20)

DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2DataEngConf NYC’18 セッションサマリー #2
DataEngConf NYC’18 セッションサマリー #2
 
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
Visual Studio 2019 / Visual Studio Code + Live Shareではじめるモブ・プログラミング #vs2019
 
エンジニアという職業について
エンジニアという職業についてエンジニアという職業について
エンジニアという職業について
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
 
Google Product
Google ProductGoogle Product
Google Product
 
MuleアプリケーションのCI/CD
MuleアプリケーションのCI/CDMuleアプリケーションのCI/CD
MuleアプリケーションのCI/CD
 
Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介Rails on GKEで運用するWebアプリケーションの紹介
Rails on GKEで運用するWebアプリケーションの紹介
 
C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦
C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦
C27 基幹領域への適用におけるpostgre sqlの抱える課題 by 原嘉彦
 
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすDangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らす
 
Jenkins+Gitによる検証済みマージ(30分版)
Jenkins+Gitによる検証済みマージ(30分版)Jenkins+Gitによる検証済みマージ(30分版)
Jenkins+Gitによる検証済みマージ(30分版)
 
バージョンアップ対応を軽減するサービス:マスティフ
バージョンアップ対応を軽減するサービス:マスティフバージョンアップ対応を軽減するサービス:マスティフ
バージョンアップ対応を軽減するサービス:マスティフ
 
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
 
CakePHP × 国産! baserCMS3の深化と今後の拡がり
CakePHP × 国産! baserCMS3の深化と今後の拡がりCakePHP × 国産! baserCMS3の深化と今後の拡がり
CakePHP × 国産! baserCMS3の深化と今後の拡がり
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
OSC2013@FUKUOKA
OSC2013@FUKUOKAOSC2013@FUKUOKA
OSC2013@FUKUOKA
 
楽天がCloud foundryを選んだ理由
楽天がCloud foundryを選んだ理由楽天がCloud foundryを選んだ理由
楽天がCloud foundryを選んだ理由
 
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
 
とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例とあるメーカーのRedmine活用事例
とあるメーカーのRedmine活用事例
 
グループ制作注意
グループ制作注意グループ制作注意
グループ制作注意
 

More from DeNA

DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DRIVE CHARTの裏側  〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜DRIVE CHARTの裏側  〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜DeNA
 
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用DeNA
 
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...DeNA
 
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】DeNA
 
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】DeNA
 
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】DeNA
 
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】DeNA
 
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】DeNA
 
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】DeNA
 
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】DeNA
 
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】DeNA
 
DeNA の Slack 導入と活用の事例紹介
DeNA の Slack 導入と活用の事例紹介DeNA の Slack 導入と活用の事例紹介
DeNA の Slack 導入と活用の事例紹介DeNA
 
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]DeNA
 
オートモーティブ領域における 位置情報関連アルゴリズムあれこれ
オートモーティブ領域における 位置情報関連アルゴリズムあれこれオートモーティブ領域における 位置情報関連アルゴリズムあれこれ
オートモーティブ領域における 位置情報関連アルゴリズムあれこれDeNA
 
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]DeNA
 
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]DeNA
 
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]DeNA
 
MOV お客さま探索ナビの GCP ML開発フローについて
MOV お客さま探索ナビの GCP ML開発フローについてMOV お客さま探索ナビの GCP ML開発フローについて
MOV お客さま探索ナビの GCP ML開発フローについてDeNA
 
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]DeNA
 
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化DeNA
 

More from DeNA (20)

DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DRIVE CHARTの裏側  〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜DRIVE CHARTの裏側  〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
DRIVE CHARTの裏側 〜 AI ☓ IoT ☓ ビッグデータを 支えるアーキテクチャ 〜
 
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
IoTと業務システムをつなぐgRPC/RESTサービスの開発と運用
 
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...
Can We Make Maps from Videos? ~From AI Algorithm to Engineering for Continuou...
 
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
 
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
クラウド環境でのセキュリティ監査自動化【DeNA TechCon 2020 ライブ配信】
 
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
DeClang 誕生!Clang ベースのハッキング対策コンパイラ【DeNA TechCon 2020 ライブ配信】
 
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
仕様起因の手戻りを減らして開発効率アップを目指すチャレンジ 【DeNA TechCon 2020 ライブ配信】
 
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
DeNA データプラットフォームにおける 自由と統制のバランス【DeNA TechCon 2020 ライブ配信】
 
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
リアルタイムリモートデバッグ環境によるゲーム開発イテレーションの高速化【DeNA TechCon 2020 ライブ配信】
 
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
MOV の機械学習システムを支える MLOps 実践【DeNA TechCon 2020 ライブ配信】
 
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
コンピュータビジョン技術の実応用〜DRIVE CHARTにおける脇見・車間距離不足検知〜【DeNA TechCon 2020 ライブ配信】
 
DeNA の Slack 導入と活用の事例紹介
DeNA の Slack 導入と活用の事例紹介DeNA の Slack 導入と活用の事例紹介
DeNA の Slack 導入と活用の事例紹介
 
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
タクシーxAIを支えるKubernetesとAIデータパイプラインの信頼性の取り組みについて [SRE NEXT 2020]
 
オートモーティブ領域における 位置情報関連アルゴリズムあれこれ
オートモーティブ領域における 位置情報関連アルゴリズムあれこれオートモーティブ領域における 位置情報関連アルゴリズムあれこれ
オートモーティブ領域における 位置情報関連アルゴリズムあれこれ
 
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
後部座席タブレットにおけるMaaS時代を見据えた半歩先のUX設計」 [MOBILITY:dev]
 
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
ドライブレコーダ映像からの3次元空間認識 [MOBILITY:dev]
 
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
MOVで実践したサーバーAPI実装の超最適化について [MOBILITY:dev]
 
MOV お客さま探索ナビの GCP ML開発フローについて
MOV お客さま探索ナビの GCP ML開発フローについてMOV お客さま探索ナビの GCP ML開発フローについて
MOV お客さま探索ナビの GCP ML開発フローについて
 
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
課題ドリブン、フルスタックAI開発術 [MOBILITY:dev]
 
DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化DeNA の AWS アカウント管理とセキュリティ監査自動化
DeNA の AWS アカウント管理とセキュリティ監査自動化
 

Recently uploaded

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Recently uploaded (12)

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

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