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
4.8k
ソフトウェアの継続的アップデートをコンテナ化によって加速させる/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
事業部CTOの現在地(パネルディスカッション)/Current-location-of-Division-CTO
takumakume
0
50
ロリポップ! for Gamersを支えるインフラ/lolipop for gamers infrastructure
takumakume
0
540
ロリポップ! for Gamersの立ち上げ/lolipop for gamers launch
takumakume
0
2k
ホモグラフドメインを検出してみた/detect homograph domain
takumakume
0
460
KubernetesにおけるSBOMを利用した脆弱性管理/Vulnerability_Management_with_SBOM_in_Kubernetes
takumakume
1
2.1k
ホスティング事業におけるSREの取り組みとSREの面白さ/SRE Efforts in the Hosting Business and the Interest of SRE
takumakume
1
2.4k
GitOpsで実現するPull Request毎のプレビュー環境/Preview environment for each Pull Request by GitOps
takumakume
0
1.6k
Goでkubernetes operatorを実装してアプリのプレビュー環境を作る/go-kubernetes-operator
takumakume
0
170
クラウドネイティブな開発環境への移行/Move to the cloud native development environment
takumakume
1
600
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
510
110k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
BBQ
matthewcrist
85
9.4k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Statistics for Hackers
jakevdp
797
220k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Practical Orchestrator
shlominoach
186
10k
How GitHub (no longer) Works
holman
312
140k
4 Signs Your Business is Dying
shpigford
182
22k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.7k
Unsuck your backbone
ammeep
669
57k
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 までご連絡ください! カジュアル面談でもお待ちしております。