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
DMMプラットフォーム ゼロから始めるKubernetes運用 課題と改善
Search
pospome
July 31, 2022
Technology
0
3.2k
DMMプラットフォーム ゼロから始めるKubernetes運用 課題と改善
"Cloud Operator Days Tokyo 2022" の登壇資料です。
pospome
July 31, 2022
Tweet
Share
More Decks by pospome
See All by pospome
DMMプラットフォームにおけるTiDBの導入から運用まで
pospome
7
3k
DMMプラットフォームがTiDB Cloudを採用した背景
pospome
10
5.1k
DDDはなぜ難しいのか / 良いコードの定義と設計能力の壁
pospome
33
13k
マイクロサービス環境におけるDB戦略 in DMMプラットフォーム
pospome
12
3.7k
組織全体で開発生産性に取り組むために 専門チームを作った話
pospome
2
1.7k
DMMプラットフォームにおける GKE を利用した プラットフォームエンジニアリングへの 取り組み
pospome
1
570
DMMプラットフォームにおけるコード品質を改善する取り組みの理想と現実
pospome
3
2.4k
(再アップロード)Microservices & APIs
pospome
0
95
(再アップロード)Datastore/Go のデータ設計と struct の振る舞いについて
pospome
0
100
Other Decks in Technology
See All in Technology
Git 研修 Advanced【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
200
目標設定は好きですか? アジャイルとともに目標と向き合い続ける方法 / Do you like target Management?
kakehashi
10
3k
クラウド利用者の「責任」をどう果たす?AWSセキュリティ対策のススメ #AWSSummit
hiashisan
0
280
初中級者用如何使用backlog -VALE TUDOEDITION-
in0u
0
140
Datadog Cloud SIEMを使ってAWS環境の脅威を可視化した話/lifeistech-datadog-cloud-siem
gidajun
0
480
公共領域から学ぶ クラウド移行についてエンジニアが意識していること
kawakawa2222
0
140
[I/O Extended Android 2024] What`s new in Android 2024
kyeongwan
0
220
GoとアクターモデルでES+CQRSを実践! / proto_actor_es_cqrs
ytake
1
160
AWSサービスメニュー開発をしていてAWSを好きだ!と感じた瞬間
toru_kubota
0
130
簡単に始めるSnowflakeの機械学習
nayuts
1
190
Luupの開発組織におけるインシデントマネジメントの変遷 ver.RoadtoSRENEXT2024
grimoh
1
270
What if...? 처음부터 다시 LLM 어플리케이션을 개발한다면
huffon
0
1k
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
506
110k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
277
13k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
90
47k
Six Lessons from altMBA
skipperchong
24
3.2k
Designing Experiences People Love
moore
136
23k
Raft: Consensus for Rubyists
vanstee
134
6.5k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
105
6.8k
Statistics for Hackers
jakevdp
792
220k
Embracing the Ebb and Flow
colly
81
4.3k
The Cult of Friendly URLs
andyhume
75
5.9k
Debugging Ruby Performance
tmm1
71
11k
The Pragmatic Product Professional
lauravandoore
29
6.1k
Transcript
DMMプラットフォーム ゼロから始めるk8s運用 課題と改善
スピーカー 名前:pospome(ぽすぽめ) 所属:DMM Twitter:https://twitter.com/pospome 職種:サーバサイド & SRE見習い
ゼロから始めるk8s運用 課題と改善 k8sを運用して直面した課題 1. 引き継いだGKEクラスター 2. SREチームのエンジニアが足りない 3. SREチームにk8sの知見が足りない 4. k8s利用者の学習コストが高い
DMMプラットフォームの概要 扱う領域:会員、決済、不正対策、認証認可など エンジニア数:100名以上 開発チーム:16チーム マイクロサービス数:約40サービス ピーク時のリクエスト数:14,000RPS
マイクロサービスアーキテクトグループ SREチーム k8sクラスターを運用している。 DMMプラットフォームのインフラ周りのエコシステムを構築 し、組織全体の開発効率とセキュリティレベルを向上させる ミッションを持つチームである。
DMMプラットフォーム ざっくりシステムアーキテクチャ GKEクラスター API Gateway (golang) Client Microservices オンプレ Microservices
GKEクラスターについて • DMMプラットフォームにて共通利用する。 • オンプレ上のアプリケーションの移行先である。
ゼロから始めるk8s運用 課題と改善 1. 引き継いだGKEクラスター 2. SREチームのエンジニアが足りない 3. SREチームにk8sの知見が足りない 4. k8s利用者の学習コストが高い
ゼロから始めるk8s運用 課題と改善 1. 引き継いだGKEクラスター 2. SREチームのエンジニアが足りない 3. SREチームにk8sの知見が足りない 4. k8s利用者の学習コストが高い
課題:引き継いだGKEクラスター 運用に必要な仕組みが整っていなかった。 • Alert/Monitoring • クラスターアップグレード • その他いろいろ
安定運用できる仕組みを整える 主に以下を実施した。 1. Datadog による Metrics, Monitor, SLO の整備 2.
クラスターのアップグレードルールの定義 3. GKEやアプリケーションの各種設定の導入 4. 運用定例の実施
組織としてk8sをどのように活かすか 専任のチームがないと運用するのは難しい。 専任のチームを作り、マルチテナント & エコシステム活用に よって組織全体の開発効率を向上させる戦略を取る必要 がある。 Cloud Run, ECSの下位互換にならないように・・・。
ゼロから始めるk8s運用 課題と改善 1. 引き継いだGKEクラスター 2. SREチームのエンジニアが足りない 3. SREチームにk8sの知見が足りない 4. k8s利用者の学習コストが高い
課題:SREチームのエンジニアが足りない 当時の立ち上げたばかりのSREチームはエンジニアが1名 + pospome の2名体制だった。 シンプルにエンジニアが足りない。
SREチームが開発で意識していること • 一元管理 • 自動化 • スケールする仕組みづくり
“スケールする仕組みづくり”は最も重要である GKEの利用者や稼働するアプリケーション数に比例して SREチームのエンジニア数を増やさなくて良いようにする。
仕組み:k8sマニフェストをモノレポで管理する アプリケーションごとに ディレクトリを用意し、 コードオーナーを設定する。 利用者が自分で管理し、 更新することができる。
仕組み:マニフェストファイルの新規作成 GitHub Actions WorkFlow から 新規アプリケーションの マニフェストファイルを作成できる。 SREの承認なしで利用者が作成できる。
仕組み:マニフェストファイルに対するCI 適切なマニフェストファイルであることをCIでチェックしてい る。 最低限のガードレールは必要になる。 e.g. ポッドの CPU, Memory の request/limit
の指定がある かどうか。
仕組み:CDパイプライン CDパイプラインとしてSpinnakerを採用している。 利用者が自分でデプロイできる。
仕組み:RBACによる権限管理 1アプリケーション = 1Namespace の構成にしている。 Namespace単位のRBACは利用者自身で管理してもらう。 チームの都合に合わせて権限管理できる。
SREチームが開発で意識していること 仕組み 一元管理 自動化 スケールする マニフェストファイル 管理 o - o
マニフェストファイル CI - o o マニフェストファイル 作成 - o o CDパイプライン o - o RBAC - - o
スケールする仕組みづくりの実現方法 利用者にオーナーシップを持たせることで、利用者自身で 安全に作業が完結しするような仕組みを目指す。
スケールする仕組みづくりの実現方法 マニフェストファイル、Namespace、RBACなどあらゆるリ ソースをアプリケーション単位で管理している。 SREチームが開発した仕組みが組織体制の変更による影 響を受けないようにしている。
利用者のオーナーシップ vs SREによる管理 どこまでオーナーシップを持たせるのかが重要である。 オーナーシップと安全性を天秤にかける。
ゼロから始めるk8s運用 課題と改善 1. 引き継いだGKEクラスター 2. SREチームのエンジニアが足りない 3. SREチームにk8sの知見が足りない 4. k8s利用者の学習コストが高い
課題:SREチームにk8sの知見が足りない GKEの構築・運用経験に乏しく、知識と経験が足りなかっ た。
課題:SREチームにk8sの知見が足りない 事故りながら知見を得た。 • 特定のノードのLoad Averageが極端に高い → Deschedulerの導入 • Egress がドロップする
→Cloud NATの設定変更
課題:SREチームにk8sの知見が足りない 問題を最小限に抑える必要がある。 • 監視(Datadog Monitor)による異変の検知 • 運用定例によるメトリクス確認 • サンプルアプリケーションの開発・運用
課題:SREチームにk8sの知見が足りない オンプレからGKEへの移行ということもあり、ゆっくりとアプ リケーションが増えていったので、仕組みづくりや知見獲得 に時間をかけることができた。
ゼロから始めるk8s運用 課題と改善 1. 引き継いだGKEクラスター 2. SREチームのエンジニアが足りない 3. SREチームにk8sの知見が足りない 4. k8s利用者の学習コストが高い
課題:k8s利用者の学習コストが高い 開発チームにはk8sやCDパイプラインなどのエコシステム を理解してもらう必要がある。 SREのサポートなしで開発チームが自立してエコシステムを 理解できるのが理想である(スケールする仕組み)。
課題:k8s利用者の学習コストが高い 利用者の学習コストを下げる仕組み。 • 利用者ドキュメント • サンプルアプリケーションの提供 • テックリードミーティングやSlackでの情報共有
まとめ ゼロから始める場合、人が少なかったり、知見がなかったり するが、人が揃うまで待つわけにはいかないので、スモー ルスタートで始めてみるのが良いと思う。
おわり ご清聴ありがとうございました