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
ソフトウェアの継続的アップデートをコンテナ化によって加速させる/Accelerate cont...
Search
Takuma Kume
November 21, 2023
0
5k
ソフトウェアの継続的アップデートをコンテナ化によって加速させる/Accelerate continuous software updates with containerization
技術的負債に向き合う Online Conference LT (5min)
https://findy.connpass.com/event/297813/
Takuma Kume
November 21, 2023
Tweet
Share
More Decks by Takuma Kume
See All by Takuma Kume
【新卒研修】共通言語としてのSRE/SRE as a common language
takumakume
0
85
DDoSとの終わりなき戦い2025/endless_battle_with_ddos_attack_2025
takumakume
2
81
事業部CTOの現在地(パネルディスカッション)/Current-location-of-Division-CTO
takumakume
0
75
ロリポップ! for Gamersを支えるインフラ/lolipop for gamers infrastructure
takumakume
0
720
ロリポップ! for Gamersの立ち上げ/lolipop for gamers launch
takumakume
0
2.2k
ホモグラフドメインを検出してみた/detect homograph domain
takumakume
0
540
KubernetesにおけるSBOMを利用した脆弱性管理/Vulnerability_Management_with_SBOM_in_Kubernetes
takumakume
1
2.3k
ホスティング事業におけるSREの取り組みと面白さ/SRE Efforts in the Hosting Business and the Interest of SRE
takumakume
1
2.7k
GitOpsで実現するPull Request毎のプレビュー環境/Preview environment for each Pull Request by GitOps
takumakume
0
1.7k
Featured
See All Featured
Side Projects
sachag
452
42k
GraphQLとの向き合い方2022年版
quramy
46
14k
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.5k
RailsConf 2023
tenderlove
30
1.1k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
30k
4 Signs Your Business is Dying
shpigford
183
22k
How GitHub (no longer) Works
holman
314
140k
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
23
2.6k
Rails Girls Zürich Keynote
gr2m
94
13k
How to train your dragon (web standard)
notwaldorf
90
6k
Transcript
ソフトウェアの継続的アップデートを コンテナ化によって加速させる 久米拓馬 / GMO PEPABO inc. 2023.11.21 技術的負債に向き合う Online
Conference 1
2 自己紹介 ホスティング事業部 SREチーム シニアエンジニア 久米拓馬 @takumakume • 福岡在住 • ルアーフィッシング・珈琲焙煎 •
Webアプリケーションプラットフォームの開発・ 運用 • Kubernetes / Cloudnative
変更しやすいシステム 開発者体験が良い メンテナンスされる
変更しやすいシステムの手段 「コンテナ化」
ソフトウェアアップデートにおける課題 前提共有:最大22年続くサービスを複数運用している会社
None
• OS • パッケージ • 言語 • ライブラリ ソフトウェアアップデートやっていますか?
• 脆弱性が放置される • 新機能が使えない • 互換性がなくなる • データベースのバージョン • TLSのバージョン
• etc … • 割れ窓理論、何もしないは伝染する ソフトウェアをアップデートしなかったらどうなるか? ソフトウェアは何もしないと壊れる
• ソフトウェアアップデートの必要性は突然来る(厳密には薄々気づいている) • 必要になったときには... • ジャンプアップ、ビッグバンリリース • 依存関係のソフトウェアアップデートを同時に求められる • 作業タイミングの選択肢の幅が狭くなっている
継続的にソフトウェアをアップデートしなかったらどうなるか? 予想外の規模とタイミングで作業が発生しビジネスインパクトが大きい
• サービス提供開始から20年以上経過 • ソフトウェアアップデートが積極的に行われていない • Webアプリケーションの数は約40個、VM • 様々なインフラ構成 事業部のアプリケーションを取り巻く状況
複数のアーキテクチャのWebアプリケーション、オペレーションが難しい Private Cloud “Nayh” (Openstack) KVM LBaaS Reverse Proxy app
A app B app C Consul Service Discovery Keepalived app D Internet LB
• 開発からデプロイまでのリードタイムが長い • インフラ構成の認知負荷が高い • VMを作るのは時間がかかる • 変更による障害リスクが高い • ミュータブルなインフラのため再現性が低く不安定
• 手動オペレーションが必要 課題の抽出
変更しづらいシステム
開発者体験が悪い
放置される
ソフトウェアアップデートの初手 「コンテナ化」
開発からデプロイまでのリードタイムが長い • アプリのコードとDockerfileをPushしたらすべて自動でリリースされる 変更による障害リスクが高い • イミュータブルなインフラのため再現性が高く安定する • Kubernetes + GitOps
で手動オペレーションの撲滅 ソフトウェアアップデートの初手「コンテナ化」 コンテナ化による課題解決
変更しやすいシステムを 支える技術
• 開発者はコードを書いて、Pull Requestをマージ するだけ • Argo CD • Argo CD
Image Updater ソフトウェアアップデートを支える技術 徹底したGitOps Kubernetes Cluster Git Kubernetes Manifests App Code Push Container Image Build Developer
ソフトウェアアップデートを支える技術 Staging環境をPull Request毎に自動生成 • Staging環境待ちが発生しない • Argo CD Application Set
など
ソフトウェアアップデートを支える技術 ソフトウェアの自動アップデート • renovate
ソフトウェアアップデートを支える技術 プログレッシブデリバリー • リリース後のメトリクスを元に自動ロール バック • 予想外のインシデントの影響を最小限に抑 える • Argo
Rollouts
ソフトウェアアップデートを支える技術 脆弱性の対応 • KEV (Known Exploited Vulnerabilities) に該当する悪用が確認された脆弱性に絞って通 知し、必ず対応するようにしている https://speakerdeck.com/takumakume/vulnerability-management-with-sbom-in-kubernetes
変更しやすいシステム 開発者体験が良い メンテナンスされる
25 Thank You! Thank You! GMOペパボに興味がある方は @takumakume までご連絡ください! カジュアル面談でもお待ちしております。