Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CNDT2020 High-Scale Architecture
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
makinoy
September 08, 2020
Technology
1.4k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CNDT2020 High-Scale Architecture
makinoy
September 08, 2020
More Decks by makinoy
See All by makinoy
生成AIという巨人の肩に乗る
makinoy
0
4.4k
Other Decks in Technology
See All in Technology
「ビジネスがわかるエンジニア」とは何か?
ryooob
0
200
iOS アプリの「これって不具合ですか?」を AI に調べてもらう
miichan
0
130
フィジカル版Github Onshapeの紹介
shiba_8ro
0
310
10年間のブログ発信を振り返って見えたWebアプリケーションエンジニアとしての軌跡
stefafafan
0
170
5分でわかるDuckDB Quack
chanyou0311
2
170
Claude Codeをどのように キャッチアップしているか
oikon48
13
8.7k
新しいUbuntu/GNOMEが使いたいからXからWaylandへ移行頑張ってるの巻 2026-06-20
nobutomurata
0
160
[チョークトーク資料]AWS DevOps Agent を使いこなす / AWS Dev Ops Agent Chalk Talk AWS Summit Japan 2026
kinunori
3
730
コミットの「なぜ」を読む
ota1022
0
110
【セミナー資料】Claude Code をセキュアに使うための考え方と設定の勘どころ / Claude Code Webinar 20260616
masahirokawahara
2
440
ぼっちではじめた登壇が「51名」「241件」の発信に化けた
subroh0508
1
290
起点・思考・出力で分解する 〜PM業務の自動化設計〜
kazu_kichi_67
0
210
Featured
See All Featured
Designing Experiences People Love
moore
143
24k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
300
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
870
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
390
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
エンジニアに許された特別な時間の終わり
watany
107
250k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
290
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
Transcript
1 急速な成⻑を加速させるアーキテクチャ オープンテクノロジー・マルチクラウドの活⽤ Yuki Makino / CTO, PLAID ɹɹʛɹɹ© 2020
PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ
2 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. 牧野 祐⼰ Yuki
Makino • 東京⼤学⼯学系研究科修⼠ • IBMソフトウェア開発研究所 • 分散インメモリDB研究開発 • 並列プログラミング⾔語研究開発 • テキスト分析研究開発 • CTO, PLAID • 分散データ処理
3 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. ハイスケーラビリティのための アーキテクチャーとテクノロジーについて ”ハイスケーラビリティ第⼀主義”である
PLAID の経験談
4 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ スケーラビリティー? 規模のスケーラビリティ 守りのスケーラビリティ
ビジネスのスケーラビリティ 攻めのスケーラビリティ
5 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ なぜ PLAID は
”ハイスケーラブル第⼀” なのか? ”データにより⼈の価値を最⼤化する” という壮⼤なミッションを実現するため 組織と⽂化
6 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ アムダールの法則 S(N) =
1 (1 − P) + P N 1εέʔϧ͢Δ෦ 1/ ͠ͳ͍෦ スケールしない部分の⼤きさの割合が スケーラブルかどうかに⼤きく影響する ߴԽ 1/ ߴԽ
7 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ 基本スタンス: スケールしない部分の排除 ⼀番⼤事なリソース:
⼈の頭 ⾃分たちでやる事/考えることをなるべく減らす 作るところが増えるほど考えることが増える -> テクノロジー / クラウド を積極的に活⽤ その上で、 外部の道具の特徴と進化スピードを 最⼤限に使ってプロダクトを伸ばす -> テクノロジー / クラウドによる加速 組織と⽂化
8 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ 使い分けを考える順 クラウドやOpen Technologyが中⼼
になるような考え⽅ 使い分けの意思決定フロー 1. まずクラウドで実現できないか? 2. OSS / Open Technologyで実 現できないか? 3. 重要な部分だけ⾃分たちで作り 必要なら還元
9 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. ൚༻ ಠࣗ 4FMG
0QFO $MPVE ͚ͩ͜͜ʹ 'PDVT ͳ͘͢ ϚϧνΫϥυ ߈ΊͷΫϥυ σʔλεέʔϧ)JHI ظͷج൫ ʹͳΔ ݟۃΊ͕ඞཁ ͕͜͜ελʔτ zΫϥυωΠςΟϒz
10 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. の取り組み
11 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc.
12 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. データ量 10+ PB
13 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ アーキテクチャの変遷 1. 初速
2. 3.
14 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ 加速 Phase.1 初速を出すこと優先
やらないこと 不要な技術的深⼊りしない “HowよりWhy” 最適化/分割で制約を増やさない テクノロジーで加速 集約性と柔軟性によりスピードUP
15 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. User Interface Business
Logic Data Storage +40/ +40/ ҙਤత.POPMJUI
16 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ 黎明期 ポイント 可能な限りシンプルに集約
柔軟性を優先 全てを JS とJSON に寄せる すべてシングルクラウド -> スピードUP ! 学び リポジトリ間のバージョン管理が 邪魔になりスピードDown 分割のさせ⽅が⼤事 ! !
17 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ ドメイン⽅向に緩やかに 分割 ポイント
アクセスパターンや 必要なスケーラビリティによって 緩やかにデータベースを分割
18 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ ɹɹʛɹɹ© 2020 PLAID Inc. User Interface Business
Logic Data Storage Data Storage Data Storage アクセスパターンで分離
19 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ 縦に⾒てロールを分けない フロント /
バックエンド コードと⼈を固定化しない 頻繁にドメインをスイッチ Why? ドメイン単位のスピードUP バックエンドをサービスに活かす 決まった⾃分の領域を持たず 全体プロダクトレベルの視点を持つ 組織と⽂化 User Interface Business Logic Data Storage Data Storage Data Storage Team Team Team 緩やかなドメインを縦にチームが⾒る
20 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ アーキテクチャの変遷 1. 初速を優先
2. マルチクラウド 3.
21 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ 加速 Phase.2 攻めのクラウドと
マルチクラウド やらないこと ハイスケールな部分の運⽤/管理をしない 回避できないクラウドの障害と戦わない テクノロジーで加速 多様なクラウドプロバイダの強さを取⼊れ られる状況を作る 安定性の向上
22 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ 攻めのサービス選択 ポイント 分割したデータベースの
負荷が⾼い場所を ハイスペックなサービスへ置換え この辺りでクラウドをまたぐ 構成管理をスタート
23 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ マルチクラウドへ ポイント コアサービスを中⼼に
どちらでも稼働できる形へ移⾏ Terraform, Packer, Spinnaker などのマルチクラウド対応のOSS を導⼊し構成管理、 デプロイ、 監視 に運⽤コストを下げる
24 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ さらに通信の整理 ポイント マルチクラウド間の
DBレプリケーション Managed OSSで パブリックなエンドポイントを使う ⾃由に動かせるようになり 安定性が上がる 課題 構成が複雑化しアプリケーションと の乖離が⼤きくなり属⼈化が進む
25 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ ハイスケールアーキテクチャ への2ステップ 1.
1桁先の守りの設計 柔軟性が⾼く枯れて安定した オープンテクノロジーを利⽤ e.g. MongoDB, Redis まずはできることを減らさないように 2. 2桁以上の攻めの設計 制約を⾜しハイスケールな クラウドサービス上に移す e.g. Bigtable 1. -> 2. で考えることを減らす ! 考え⽅
26 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ アーキテクチャの変遷 1. 初速を優先
2. マルチクラウド 3. k8s で分散
27 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ 加速 Phase.3 で集約から分散へ
やらないこと 運⽤の集中、 属⼈化 サービスのための複雑な運⽤構築 テクノロジーで加速 各サービスの開発の⾃由度を上げる
28 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ サービスの数が どんどん増える
29 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ エンジニアも増える ը૾͕ೖΓ·͢
30 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ k8s の導⼊ ポイント
リリースにより増えるサービスを 分散管理できるようになる より簡単にさらにサービスを 追加できるようになる 学び VM -> k8s 移⾏でサービス分離も 同時に進めたら時間かかった 全てを分散することはできない
31 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ 再びマルチクラウド化 ポイント Publicエンドポイントで構成がシ
ンプルになる サービス側でバックエンド クラウドを切り替えられる Managed OSSは マルチクラウドと相性がよい
32 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ 他も Container 化
(Ongoing) ポイント Container運⽤が全デフォルトへ ただし負荷が⾼すぎてk8s化は できない 7. LT $POUBJOFS 0O 7. 5JNF (今ならk8sが デフォルト)
33 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ Self-Contained Systems ポイント
分散させすぎず適度に集約する One Repositoryに複数のSystem 単体で完結するSystem SharedなCross Cut要素を残す 学び バージョン管理にはいまだに悩む Ref: https://speakerdeck.com/ komukomo/migrating-to-microservices 4ZTUFN 4ZTUFN 4ZTUFN 4IBSFE $SPTT$VUUJOH 'SPOU 4FSWJDF %BUB 4FSWJDF -PHJD 4FSWJDF 4FSWJDF REST API 3FQPTJUPSZ
34 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ Self-Contained Systems ポイント
分散させすぎず適度に集約する One Repositoryに複数のSystem 単体で完結するSystem SharedなCross Cut要素を残す 学び バージョン管理にはいまだに悩む Ref: https://speakerdeck.com/ komukomo/migrating-to-microservices
35 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ Q. マイクロサービスは”善”か? A.
善も悪もない、道具 マイクロサービスの解釈 : 分散化を”可能にする”技術 ”全てを分散化すべき”ではない パフォーマンス/組織や⽂化/知識 に合わせて集中と分散のバランス をとる 考え⽅
36 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ アーキテクチャを考える上 でのテクノロジーの扱い つねに”Why”を考える
道具や”正しさ”に 振り回されてないようにする 考え⽅
37 ɹɹʛɹɹ© 2020 PLAID Inc. 2020.09.06ɹɹʛɹɹCNDT 2020ɹɹʛɹ まとめ ハイスケーラビリティを実現するには? -
テクノロジーとクラウドを最⼤限に 活⽤すること - テクノロジーを⼿段として捉え、 組織 や⽂化を活かすこと - 変化させ続けること
None