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.5k
DMMプラットフォーム ゼロから始めるKubernetes運用 課題と改善
"Cloud Operator Days Tokyo 2022" の登壇資料です。
pospome
July 31, 2022
Tweet
Share
More Decks by pospome
See All by pospome
DMMプラットフォームにおけるTiDBの導入から運用まで
pospome
8
3.9k
DMMプラットフォームがTiDB Cloudを採用した背景
pospome
10
5.7k
DDDはなぜ難しいのか / 良いコードの定義と設計能力の壁
pospome
42
17k
マイクロサービス環境におけるDB戦略 in DMMプラットフォーム
pospome
12
4.1k
組織全体で開発生産性に取り組むために 専門チームを作った話
pospome
2
1.9k
DMMプラットフォームにおける GKE を利用した プラットフォームエンジニアリングへの 取り組み
pospome
1
740
DMMプラットフォームにおけるコード品質を改善する取り組みの理想と現実
pospome
3
2.6k
(再アップロード)Microservices & APIs
pospome
0
150
(再アップロード)Datastore/Go のデータ設計と struct の振る舞いについて
pospome
0
160
Other Decks in Technology
See All in Technology
Developers Summit 2025 浅野卓也(13-B-7 LegalOn Technologies)
legalontechnologies
PRO
0
720
プロダクトエンジニア構想を立ち上げ、プロダクト志向な組織への成長を続けている話 / grow into a product-oriented organization
hiro_torii
1
200
目の前の仕事と向き合うことで成長できる - 仕事とスキルを広げる / Every little bit counts
soudai
24
7.1k
Amazon S3 Tablesと外部分析基盤連携について / Amazon S3 Tables and External Data Analytics Platform
nttcom
0
130
(機械学習システムでも) SLO から始める信頼性構築 - ゆる SRE#9 2025/02/21
daigo0927
0
110
Classmethod AI Talks(CATs) #16 司会進行スライド(2025.02.12) / classmethod-ai-talks-aka-cats_moderator-slides_vol16_2025-02-12
shinyaa31
0
110
スタートアップ1人目QAエンジニアが QAチームを立ち上げ、“個”からチーム、 そして“組織”に成長するまで / How to set up QA team at reiwatravel
mii3king
2
1.5k
表現を育てる
kiyou77
1
210
地方拠点で エンジニアリングマネージャーってできるの? 〜地方という制約を楽しむオーナーシップとコミュニティ作り〜
1coin
1
230
レビューを増やしつつ 高評価維持するテクニック
tsuzuki817
1
710
エンジニアの育成を支える爆速フィードバック文化
sansantech
PRO
3
1.1k
一度 Expo の採用を断念したけど、 再度 Expo の導入を検討している話
ichiki1023
1
170
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Why Our Code Smells
bkeepers
PRO
336
57k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Building a Scalable Design System with Sketch
lauravandoore
461
33k
Typedesign – Prime Four
hannesfritz
40
2.5k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
Agile that works and the tools we love
rasmusluckow
328
21k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.2k
How to Think Like a Performance Engineer
csswizardry
22
1.3k
Designing for Performance
lara
604
68k
How STYLIGHT went responsive
nonsquared
98
5.4k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
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での情報共有
まとめ ゼロから始める場合、人が少なかったり、知見がなかったり するが、人が揃うまで待つわけにはいかないので、スモー ルスタートで始めてみるのが良いと思う。
おわり ご清聴ありがとうございました