Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
DeNA.go #01 次世代配車アプリ「MOV」 Go事例紹介
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
hami
May 24, 2019
Technology
9.7k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DeNA.go #01 次世代配車アプリ「MOV」 Go事例紹介
DeNA.go #01 での発表資料です
hami
May 24, 2019
More Decks by hami
See All by hami
High memory usage server in Go
subc
0
2.6k
Other Decks in Technology
See All in Technology
コスト最適化の「めんどくさい」を AWS FinOps Agent でチョット楽にする
classmethod_kaz
0
300
AIに丸投げしないトイル削減 / Eliminating Toil Without Leaving It All to AI
kohbis
4
1.1k
『止めない』を設計する — 制約の中で、事業の根幹を支える判断
hiroyaterui
0
260
AI時代だからこそ、スケールしないことをやろう
yutashigemura
1
130
synctest時代のhttptest Go 1.27で変わるHTTPサーバテストの裏側 / go conference2026 synctest and httptest
budougumi0617
1
2.6k
AI時代に顧客へ最速で価値を 届けるための試行錯誤 〜「AI × マネジメント」領域におけるmentoのケース〜
posterkeisuke
0
110
Webとヘルスデータ
yukukotani
1
370
TinyGo 開発サイクルを高速化する:Go で作るエミュレータ入門
zozotech
PRO
1
600
Claude Code本って、 読む必要あるの?
oikon48
2
380
リージョンの壁を越える、 ちょっと変わったAWSサービスの話
falken
PRO
1
300
HRC_Frontend_Conference_Fukuoka_2026.pdf
ts020
0
400
生成AIのテナント制御とシャドーMCP対策 | AIを"止めずに"、情報を守る
yukun
0
140
Featured
See All Featured
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
570
Optimising Largest Contentful Paint
csswizardry
37
3.9k
Crafting Experiences
bethany
1
310
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Producing Creativity
orderedlist
PRO
348
41k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
Rails Girls Zürich Keynote
gr2m
96
14k
Building AI with AI
inesmontani
PRO
1
1.2k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
GraphQLとの向き合い方2022年版
quramy
50
15k
Transcript
May 24, 2019 shuhei.ikeda Automotive BU. Smart Taxi Gr. DeNA
Co., Ltd. DeNA.go #01 次世代配車アプリ「MOV」 Go事例紹介
* Copyright (C) 2019 DeNA Co.,Ltd. All Rights Reserved. •Python
4年 •Ruby 2年 •C# / Erlang / Go1年 MOV リリース1ヶ月後の2018年5月ごろに参加 いまServerSideのTeamLeader 自己紹介 *
* Copyright (C) 2019 DeNA Co.,Ltd. All Rights Reserved. •2018年
4月 神奈川県 地域限定でリリース •2018年 6月 神奈川県 対象エリア拡大 •2018年 12月 東京都 リリース MOV *
* Copyright (C) 2019 DeNA Co.,Ltd. All Rights Reserved.
Ruby から Go移行 *
* Copyright (C) 2019 DeNA Co.,Ltd. All Rights Reserved. •MOV
server(2019/01 〜) - Go実装 - WebAPI テストあり - 動作確認はChatOpsでE2Eテスト •MOV server(〜 2018/4) - Ruby実装 - WebAPI テストは一部のみ実装済み - 動作確認はPostman MOV SERVERを1年前と比較 *
* Copyright (C) 2019 DeNA Co.,Ltd. All Rights Reserved. *
システム構成 before after
* Copyright (C) 2019 DeNA Co.,Ltd. All Rights Reserved.
Why Go? *
* Copyright (C) 2019 DeNA Co.,Ltd. All Rights Reserved. Rubyは開発者の生産性が高いとても良い言語ですが..
圧倒的なサーバスピンアップ速度 GAE/SE Goの圧倒的なサーバスピンアップ速度 5分でアクセス数が10倍になるようなpush通知やTV放送といった爆発的なアクセス増加で も事前準備なしでアクセスを捌きるにはGAE/SE Goが最適だった。 -> Go移行で達成できた メモリ効率の良さ prefork型Web serverでは達成できないメモリ効率の良さ -> goroutineでmany cpu server のリソースを使い切れる Why Go? *
* Copyright (C) 2019 DeNA Co.,Ltd. All Rights Reserved. どうやってRuby
から Go に移行したかはtech blogに記載 MOV タクシー配車アプリ RubyからGolangへ刷新 マイクロサービス化 https://engineer.dena.jp/2019/01/mov-rubygolang.html * How
* Copyright (C) 2019 DeNA Co.,Ltd. All Rights Reserved.
Go 事例紹介 *
* Copyright (C) 2019 DeNA Co.,Ltd. All Rights Reserved. Vue.js
+ Express(GAE/SE Node.js) + GAE/SE Go Expressは環境切り替え、IP制限、JWT認証のため利用 * 社内向け管理画面
* Copyright (C) 2019 DeNA Co.,Ltd. All Rights Reserved. 試行錯誤した結果
UnitTestとhandlerのシナリオテストを書く方式に収束した。 GAE のテスト高速化にはgithub.com/favclip/testerator を利用。 * Test
* Copyright (C) 2019 DeNA Co.,Ltd. All Rights Reserved. API
Documentの生成 github.com/swaggo/swag を利用 structからsample JSON含んだドキュメントを自動生成でき便利 * 自動生成
* Copyright (C) 2019 DeNA Co.,Ltd. All Rights Reserved. Slack
Bot コマンドを共有しなくてもSlackのchat履歴から各エンジニアが学んでいくのが良い SlackのReal-Time Messaging APIを利用したbotを構築 ▼ Slackから配車結合テストを実行した例 成功時 失敗時 CHAT OPS *
* Copyright (C) 2019 DeNA Co.,Ltd. All Rights Reserved.
負荷・障害に強いシステム実現に向けて *
* Copyright (C) 2019 DeNA Co.,Ltd. All Rights Reserved.
exponential backoff DB接続失敗時のリトライ間隔時間を失敗ごとに徐々に増やして行く。 DB高負荷起因でAppサーバがスケールアウトしDBがコネクション数起因でDBが落ちるこ とを防ぐ。 オートスケールするサーバでRDBを利用するなら入れておいて損はないと思います。 負荷・障害に強いシステム実現に向けて1 *
* Copyright (C) 2019 DeNA Co.,Ltd. All Rights Reserved. 負荷検証の敷居を低く
AWS EC2 + Locustで構築。1営業日あれば負荷が掛けれるようscript化 少しでもリスクあると思ったら負荷検証できるよう敷居をとにかく低くしておく 負荷・障害に強いシステム実現に向けて2 *
* Copyright (C) 2019 DeNA Co.,Ltd. All Rights Reserved.
fallback 実装 サービス落とすより機能下げ縮退運転する 投入ポイントの見極めが仕様次第で難しいですが刺さると緊急時の銀の弾丸に 緊急シナリオごとにbizと縮退内容を握っておくとよりよい。 - ETA(予想到着時間)システム高負荷で応答ないとき2点間直線距離で近似計算 - 新システム投入初期段階はエラー時旧システムにfallback - 高負荷時に表示する車両台数を減らす 負荷・障害に強いシステム実現に向けて3 *
* Copyright (C) 2019 DeNA Co.,Ltd. All Rights Reserved.
100倍速めざしてやっていくぞ *
* Copyright (C) 2019 DeNA Co.,Ltd. All Rights Reserved. bot,
WebAPI, gRPCサーバでもシュッと書けてしまうGoの素晴らしさは既に各所で十分語られて いるため省略して.. 車両動態 のポーリングが重いので、gRPC with streaming APIで1サーバで捌ける同 時接続ユーザ数100倍目指してやっていくぞ。 * ポーリングWebAPI の gRPC with streaming API化
* Copyright (C) 2019 DeNA Co.,Ltd. All Rights Reserved. *
現在
* Copyright (C) 2019 DeNA Co.,Ltd. All Rights Reserved. *
将来
* Copyright (C) 2019 DeNA Co.,Ltd. All Rights Reserved.
PR *
* Copyright (C) 2019 DeNA Co.,Ltd. All Rights Reserved. High
memory usage server in Golang メモリに乗り切らない膨大なマスタデータをGolang Serverで高速に効率よく扱うにはどうすれば 良いでしょうか。diskストレージからメモリへのデータ展開はprotobufを利用すると直接mapに変 換でき高速に処理できます。 更新されたdiskストレージ上のマスタデータをロック時間最小でメモリ展開するにはRead/Write ロックを組み合わせHot loadingする手法が有効です。 以上を地理空間データを扱った知見を抽象化して紹介します。 https://fukuoka.gocon.jp/ja/speakers/ikeda.sub/ * Go Conference'19 Summer in Fukuoka 登壇します
* Copyright (C) 2019 DeNA Co.,Ltd. All Rights Reserved.
「DeNA オートモーティブ」「DeNA AI」で検索 • https://dena-automotive.com/ • https://dena.ai/ * We're Hiring !