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
CNDT2020 High-Scale Architecture
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
20260912_スクフェス三河
kgnkhkr
0
380
Screen Lens - 今見てる画面を翻訳する
komagata
0
300
30座EKS, 180次升級淬煉的EKS Upgrade Skill 的歷程
eric8230
0
160
The Agent Builder Loop from Daily Work to OSS
minorun365
PRO
3
200
ソフトウェアDNAとクラウドエージェントのススメ
cloudace
0
100
Reactの設計論
uhyo
24
13k
Deploying a Full-Stack Bun-Native Framework on Cloudflare Workers
7nohe
0
170
Omarchy Quattro の日本語設定周り
simosako
2
180
Minecraft JavaのMODをSwiftで作る
1mash0
0
160
【技術的負債conf】事業成長に伴う技術的負債の説明責任とAIによるモニタリング、認知的負債について
i35_267
2
1.6k
山手線を徒歩で一周してわかった、 位置情報アプリは「足」が最強のデバッガー
hinakko
0
160
LLMに渡さなかった仕事
nanaism
0
170
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
340
58k
The Cult of Friendly URLs
andyhume
79
7k
How STYLIGHT went responsive
nonsquared
100
6.3k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Discover your Explorer Soul
emna__ayadi
2
1.3k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
350
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
540
Making the Leap to Tech Lead
cromwellryan
135
10k
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