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
Spanner Autoscaler
Search
micnncim
November 13, 2019
Programming
1
500
Spanner Autoscaler
merpay インフラ Talk #5:
https://mercari.connpass.com/event/150728/
micnncim
November 13, 2019
Tweet
Share
More Decks by micnncim
See All by micnncim
Accelerate Go development with Bazel
micnncim
9
7.3k
Protocol Buffers Language Server
micnncim
1
3.2k
Build Docker Images with Bazel
micnncim
4
760
How Uber "Go"es Recap
micnncim
2
2.4k
We want AWESOME CLI tool & development
micnncim
9
5.2k
GoReleaser: Release and Distribute Go Application
micnncim
9
1.1k
Other Decks in Programming
See All in Programming
AWS re:Invent 2024個人的まとめ
satoshi256kbyte
0
100
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
1.4k
ESLintプラグインを使用してCDKのセオリーを適用する
yamanashi_ren01
2
240
PHPUnitしか使ってこなかった 一般PHPerがPestに乗り換えた実録
mashirou1234
0
420
BEエンジニアがFEの業務をできるようになるまでにやったこと
yoshida_ryushin
0
200
Fixstars高速化コンテスト2024準優勝解法
eijirou
0
190
ASP.NET Core の OpenAPIサポート
h455h1
0
120
선언형 UI에서의 상태관리
l2hyunwoo
0
270
Lookerは可視化だけじゃない。UIコンポーネントもあるんだ!
ymd65536
1
130
混沌とした例外処理とエラー監視に秩序をもたらす
morihirok
13
2.3k
Stackless и stackful? Корутины и асинхронность в Go
lamodatech
0
1.3k
カンファレンス動画鑑賞会のススメ / Osaka.swift #1
hironytic
0
170
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.3k
YesSQL, Process and Tooling at Scale
rocio
170
14k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
The Power of CSS Pseudo Elements
geoffreycrofte
74
5.4k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.6k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
The Cult of Friendly URLs
andyhume
78
6.1k
What's in a price? How to price your products and services
michaelherold
244
12k
Transcript
@micnncim Spanner Autoscaler merpay infra talk #5
@micnncim Expert Team Intern
Spanner オートスケールしない問題 Kubernetes Operator とは Spanner Autoscaler の紹介 01 02
03
Spanner オートスケールしない問題 4
トラフィックに応じたノード数を設定できない 突発的な高トラフィックに対応できない オートスケールしないと何が困るか 高トラフィック対策にノード数を余分に多く設定すると トラフィックが小さいときにコストが余分に発生する
https://medium.com/google-cloud-jp/cloud-spanner-のハイレベルアーキテクチャ解説-fee62c17f7ed Spanner ハイレベルアーキテクチャ
R/W を実行するコンピュートリソース ノードには直接ローカルストレージはアタッチされない Spanner における Node の役割 データ自体は分散ファイルシステムに保存される
Kubernetes Operator とは 8
Kubernetes では多数の Controller が動いている Controller は Deployment, Service など Resource
が 宣言された Desired State になるように動く = Reconciliation Loop Kubernetes Controller 101 Controller は自作してデプロイすることが出来る = Custom Controller Resource も独自に作ることが出来る = CRD (Custom Resource Definition) Custom Controller と CRD で Stateful なアプリケーションを自動化 = Operator
Kubernetes Controller 101
Kubernetes Operator
kubernetes/client-go, kubernetes/code-generator kubernetes-sigs/kubebuilder Custom Controller を開発するには? operator-framework/operator-sdk GoogleCloudPlatform/metacontroller
Spanner Autoscaler の紹介 13
Spanner のオートスケールを行う Kubernetes Operator Horizontal Pod Autoscaler に影響を受けている Spanner Autoscaler
kubebuilder を利用 本番 Microservices に導入予定 & OSS 化予定
宣言的に設定を記述したい Reconciliation Loop がオートスケールの用途に合う Why use Kubernetes Operator?
Spanner Autoscaler: CRD ❖ spec.scaleTargetRef.instanceId スケール対象の Instance ID ❖ spec.minNodes
スケール時の最小 Node 数 ❖ spec.maxNodes: スケール時の最大 Node 数 ❖ targetCPUUtilization.highPriority スケール後の目標となる 優先度の高いユーザータスクと 優先度の高いシステムタスクの 合計 CPU 使用率
ARCHITECURE
Reconciler: Resource に対して最適な Node 数を計算し Reconciliation Loop を実行 Syncer: 各
Resource を Google Cloud API で取得した Spanner Instance の状態と同期 Spanner Autoscaler: Inside
Spanner Autoscaler を使えば Spanner でもオートスケールできる! Kubernetes Custom Controller で 様々なリソース・アプリケーションの自動化が可能
まとめ