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.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
ロリポップ! for Gamersの立ち上げ/lolipop for gamers launch
takumakume
0
1.1k
ホモグラフドメインを検出してみた/detect homograph domain
takumakume
0
370
KubernetesにおけるSBOMを利用した脆弱性管理/Vulnerability_Management_with_SBOM_in_Kubernetes
takumakume
0
1.7k
ホスティング事業におけるSREの取り組みとSREの面白さ/SRE Efforts in the Hosting Business and the Interest of SRE
takumakume
1
1.4k
GitOpsで実現するPull Request毎のプレビュー環境/Preview environment for each Pull Request by GitOps
takumakume
0
1.3k
Goでkubernetes operatorを実装してアプリのプレビュー環境を作る/go-kubernetes-operator
takumakume
0
150
クラウドネイティブな開発環境への移行/Move to the cloud native development environment
takumakume
1
550
200万ドメインを超えるレンタルサーバのコンテンツキャッシュ機能の裏側/2_million_more_than_the_domain_the_back_of_the_rental_server_content_cache
takumakume
9
2.7k
DDoS攻撃との終わりなき戦い/endless_battle_with_ddos_attack
takumakume
5
13k
Featured
See All Featured
WebSockets: Embracing the real-time Web
robhawkes
59
7.3k
Ruby is Unlike a Banana
tanoku
96
10k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
359
18k
The Cost Of JavaScript in 2023
addyosmani
39
5.1k
Producing Creativity
orderedlist
PRO
340
39k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
662
120k
Writing Fast Ruby
sferik
623
60k
Scaling GitHub
holman
458
140k
5 minutes of I Can Smell Your CMS
philhawksworth
201
19k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
165
48k
Six Lessons from altMBA
skipperchong
26
3.3k
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 までご連絡ください! カジュアル面談でもお待ちしております。