Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
そこまで大規模じゃない EKS環境を(あまり)頑張らずに 最新化し続けたい / FamilyA...
Search
kohbis
January 25, 2024
Technology
2
1.5k
そこまで大規模じゃない EKS環境を(あまり)頑張らずに 最新化し続けたい / FamilyAlbum EKS Continuous Improvement
Kubernetes活用の手引き 私たちの基盤構築・運用事例 Lunch LT
https://findy.connpass.com/event/307447/
kohbis
January 25, 2024
Tweet
Share
More Decks by kohbis
See All by kohbis
悩ましきインシデント管理 みてねのケース / Incident management is a tough
kohbis
2
550
サービス成長と共に肥大化するモノレポ、長くなるCI時間 / As services grow, monorepos get bigger and CI time gets longer
kohbis
5
2.9k
1,800万人が利用する『家族アルバム みてね』におけるK8s基盤のアップグレード戦略と継続的改善 / FamilyAlbum's upgrade strategy and continuous improvement for K8s infrastructure
kohbis
5
3.6k
『家族アルバム みてね』の安定リリースを支えるEKS運用 / FamilyAlbum release-flow on EKS
kohbis
2
1.3k
『家族アルバム みてね』 AWSマルチリージョン構成における データベース運用 / FamilyAlbum Database in AWS multi-region
kohbis
5
2.6k
KEDAによるイベント駆動ジョブスケール / Event-driven job scale by KEDA
kohbis
2
1k
『家族アルバム みてね』のグローバル展開を支えるAWS活用 / AWS Summit Tokyo 2023 FamilyAlbum Multi-Region
kohbis
1
750
Other Decks in Technology
See All in Technology
GDGoC開発体験談 - Gemini生成AI活用ハッカソン / GASとFirebaseで挑むパン屋のフードロス解決 -
hotekagi
1
530
【ASW21-01】STAMPSTPAで導き出した課題に対する対策立案手法の提案
hianraku9498
0
310
sre本読んだ感想
pisakun
0
190
品質管理チームのEMとして大事にしていること / QA EM
nihonbuson
0
370
クラウドネイティブへの小さな一歩!既存VMからコンテナまで、KubeVirtが実現する『無理しないペースの移行』とは!?
tsukaman
0
110
プロセス改善とE2E自動テストによる、プロダクトの品質向上事例
tomasagi
1
1.4k
農業用ダム監視を目的とした衛星SAR 干渉解析の適用性について
osgeojp
0
120
Oracle Cloud Infrastructure:2024年11月度サービス・アップデート
oracle4engineer
PRO
0
160
asumikamというカンファレンスオーガナイザの凄さを語る / The Brilliance of Asumikam
tomzoh
1
260
12/3(火)のBedrockアプデ速報(re:Invent 2024 Daily re:Cap #2 with AWS Heroes)
minorun365
PRO
4
120
実践/先取り「入門 Kubernetes Validating/Mutating Admission Policy」 / CloudNative Days Winter 2024
pfn
PRO
1
150
ソフトウェアエンジニアとしてキャリアの螺旋を駆け上がる方法 - 経験と出会いが人生を変える / Career-Anchor-Drive
soudai
1
240
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Teambox: Starting and Learning
jrom
133
8.8k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
Practical Orchestrator
shlominoach
186
10k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
GraphQLとの向き合い方2022年版
quramy
44
13k
Transcript
そこまで大規模じゃない EKS環境を(あまり)頑張らずに 最新化し続けたい @kohbis Kubernetes活用の手引き 私たちの基盤構築・運用事例 Lunch LT 2024/01/25
MIXI, Inc. About Me • SIer (Infra/Backend) ➡ Startup (Backend/Frontend)
➡ いま • 最近マネージャーがくれたラズパイ2台をおうちクラスタに組み込んだ Kohei SUGIMOTO 株式会社MIXI 2022/04 ~『家族アルバム みてね』 SRE X/GitHub: @kohbis (sushimoto)
MIXI, Inc. 本日お話しすること • 「そこまで大規模じゃない」EKS環境をできるだけ頑張らずに最新化し続けるために 『家族アルバム みてね』がやっていること • このスライドにおける ◦
大規模 …IaaS基盤、10~以上のマイクロサービス ◦ 大規模じゃない … ひとつのサービス基盤、数個のマイクロサービス • 「最新化」対象 ◦ EKSクラスタバージョン ◦ Helmパッケージのバージョン
MIXI, Inc. 『家族アルバム みてね』とは スマホで撮ったお子さまの写真・動画を家族で共有し コミュニケーションして楽しむ家族アルバムサービス 「世界中の家族の”こころのインフラ”を作る」 • 現在7言語・175の国と地域でサービスを提供 •
2023年11月に利用者数が2,000万人を突破 ※1 ※1 iOS・Android™ アプリ登録者数、ブラウザ版登録者数の合計
MIXI, Inc. 『家族アルバム みてね』のKubernetes構成 • 運用しはじめて大体3年くらい • Amazon EKS v1.27
• Helm chartsによる構成管理 • Argo CDによるGitOps • Ingress-NGINX Controller, Cluster Autoscaler, Prometheus, KEDA, Grafana, Argo Workflows etc. ◦ 約30ほどのHelmパッケージを利用 多いときで18,000Pods、少ないときで2,000Pods(2023/12時点)
MIXI, Inc. EKSクラスタバージョンの アップデート
MIXI, Inc. EKSクラスタバージョンのアップデート https://speakerdeck.com/kohbis/familyalbums-upgrade-strategy-and-continuous-improvement-for-k8s-infrastructure
MIXI, Inc. EKSクラスタのBlue/Green戦略による無停止アップグレード • みてねはAWSマルチリージョン構成 • 複数リージョンにEKSクラスタが存在 各リージョンに新バージョンのクラスタ作成 ▼ ALBの加重ルーティングで徐々にトラフィック
移行 ▼ メトリクス監視に異常がなければ完全移行 加重ルーティングで 徐々に移行 Route53 レイテンシーベース ルーティング https://speakerdeck.com/kohbis/familyalbums-upgrade-strategy-and-continuous-improvement-for-k8s-infrastructure?slide=12
MIXI, Inc. Argo CDと『みてね』サービスのクラスタ分割 https://speakerdeck.com/kohbis/familyalbums-upgrade-strategy-and-continuous-improvement-for-k8s-infrastructure?slide=27
MIXI, Inc. Helmパッケージの アップデート
MIXI, Inc. Helmパッケージのアップデート 数十個ある&これから増えるであろうHelmパッケージの更新を追い続けるのは大変 放置すればするほど適用のための修正コストが高くなる Helmパッケージの更新を検知する まずはこれを(楽して)やりたい ▼ Release notes,
CHANGELOG.md, Artifact Hubで更新内容を確認 ▼ 開発環境に適用して問題ないことを確認 ▼ 本番環境に適用
MIXI, Inc. Renovate Botの活用 ※1 • 言語やパッケージの依存関係を自動解決 ◦ Package Managers
から選択(複数可)※2 • 設定はリポジトリルートのrenovate.jsonに記述 • ルールを柔軟にカスタムすることが可能 ◦ 例)リリースからxx日たったら安定版と見なしてPRを起票 依存パッケージやcharts内のDockerイメージタグを最新化したPRを起票 ちなみにGitHubのDependabotでは議論中 ※3 ※1 https://github.com/renovatebot/renovate ※2 https://docs.renovatebot.com/modules/manager/ ※3 https://github.com/dependabot/dependabot-core/issues/2237
MIXI, Inc. Renovatebotの活用 - Dependency Dashboard
MIXI, Inc. Deprecated/Removed APIの検知
MIXI, Inc. Deprecated/Removed APIの検知 K8sのAPIはKubernetes Deprecation Policyに沿って非推奨/削除される ※1 ▼ もしあればDeprecated
API Migration Guideに従って更新する ※2 (どのくらい対応が必要かはAPIによる) ▼ (開発環境で確認するはずだが)「デプロイしようとしてから気づく」は避けたい Helmパッケージで導入するchartsは大体解決されている 自分たちで書いたテンプレートに存在しないかを(楽して)検知したい ※1 https://kubernetes.io/docs/reference/using-api/deprecation-policy/ ※2 https://kubernetes.io/docs/reference/using-api/deprecation-guide/
MIXI, Inc. Plutoの活用 ※1 • 非推奨/削除APIを検知するCLIツール ◦ GitHub ActionsなどCIでPRごとや定期実行できる •
稼働中のクラスタ、ローカルのHelm chartsいずれにも対応 ▼検知なし (Exit Code 0) ▼検知あり (Exit Code 2: deprecated, 3: removed etc. ※2) ※1 https://github.com/FairwindsOps/pluto ※2 https://github.com/FairwindsOps/pluto/blob/master/docs/advanced.md#ci-pipelines
MIXI, Inc. Amazon EKS - Upgrade Insights ※1 • 2023年12月末にGA
• EKSクラスタを自動的にスキャンし、 K8sバージョンのアップグレードに影響する可能 性がある問題を検知 ▼ 取り組みの甲斐あって(?)みてねのクラスタでは検知なし! ※1 https://aws.amazon.com/jp/about-aws/whats-new/2023/12/amazon-eks-upgrade-insights/
MIXI, Inc. まとめ
MIXI, Inc. まとめ • EKSクラスタアップグレード ◦ 役割ごとにクラスタを分割して、毎回発生していた作業コストを削減 • Helmパッケージのアップデート ◦
Renovate Botの活用により、更新の検知を自動化 • Deprecated/Removed APIの検知 ◦ Plutoやマネージド機能(EKS Upgrade Insights)によって自動化 K8s基盤の運用はただでさえ大変。。。 便利なツールを組み合わせて少しずつでも楽にしていきたい!
20 ©MIXI 豊かなコミュニケーションを広げ、 世界を幸せな驚きで包む。 PURPOSE 創業以来大切にしてきた豊かなコミュニケーションで幸せな驚きに包まれ た世界を目指し、ただ「つながればいい」という効率的な機能の提供では なく、あたたかい心のつながりを生み出すようなサービスの開発・提供を 行っています。 3つの事業領域で「心もつなぐ」場と機会の創造
─ スポーツ、ライフスタイル、デジタルエンターテインメント ─ BUSINESS スポーツ領域ではチーム・選手・ユーザーのつながり、ライフスタイル領 域では人々の生活がより豊かになるような身近なコミュニケーション、デ ジタルエンターテインメント領域では親しい友人達と一緒に遊んだり、リ アルイベントで盛り上がれる場や機会の提供など、「心もつなぐコミュニ ケーション」を軸とした事業展開を行っています。 ユーザーサプライズファースト、発明・夢中・誠実 大胆な発想と情熱と何事にも真摯に向きあう文化 CULTURE/PEOPLE ユーザーの驚きを最優先に考えるという想いのこもった「ユーザーサプライ ズファースト」という言葉を胸に、一人ひとりが、ユーザーや仲間、自分に 対して真摯に向き合い、夢中になって、それぞれの専門領域や経験を活かし たこれまでにない新しい視点の発想でものごとに取り組む組織文化です。 多様な働き方を実現する 「マーブルワークスタイル」制度 WORKING STYLE 多様な人材が活躍できる環境づくりを目指し、働き方や休み方の制度も拡充 されています。リモートワークとオフィスワークを融合した「マーブルワー クスタイル」制度は、対面でのコミュニケーション機会も重要であると考 え、両方の働き方を融合したような制度です。 WE ARE HIRING! MIXIではコミュニケーションを一緒につくる仲間を募集中! MIXI 採用 MIXI GROUPについて
MIXI, Inc.