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
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.5k
Other Decks in Technology
See All in Technology
契約書画像からの情報抽出に特化した視覚接地モデルを育てる話
sansantech
PRO
1
180
AIは「聞けば答える」から「任せると自分で進める」へ - JACTIMペナン地域部会・ペナン三水会講演
knishioka
0
110
AI 時代の Azure エンジニアリング ~ 私たちは何を磨き、何を任せるのか ~
chack411
1
610
PagerDuty Tech Hub-鳴らすけれど、人は動かない
ezaki
0
120
Classmethod Company Deck
satoshi7
0
160
転んだ話が背中を預ける理由になる / A_story_about_falling_down_gives_you_a_reason_to_watch_each_other_s_backs.pdf
pauli
3
360
USB PDを使ってスマホを労わりたい
raspython3
0
160
スキマバイトという雇用形態は存在しないので、雇用期間1日のアルバイト契約を事業者とワーカーが結ぶ手続きを支えるのがタイミーなんです
akitoshiga
0
150
DevelopersIO 2026 知識の地図を描く ─ オントロジーとは何か?
ishikawa_satoru
1
1.5k
自主式軟體工廠
philipz
0
260
今さら理解するウェブフォントver.2026
takanorip
3
690
日本語に強いオープンな大規模言語モデル「LLM-jp」
odashi
3
820
Featured
See All Featured
Building Adaptive Systems
keathley
44
3.2k
Fireside Chat
paigeccino
43
4.1k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
410
The untapped power of vector embeddings
frankvandijk
2
1.9k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
560
Designing for Timeless Needs
cassininazir
1
520
Design in an AI World
tapps
1
350
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