概要
- DevOpsDays London での講演内容の要約
- コンテナ技術 誕生の背景と仮想マシン(VM)との比較
- Docker や Kubernetes の進化と現状
- DevOps文化 の変遷と課題
- 今後の 技術選択 やAIの影響についての考察
2025年秋のアップデート:DevOpsDays London講演要約
- DevOpsDays London で講演実施、参加者と運営への感謝
- 講演動画:https://www.youtube.com/watch?v=eMU2mZgo99c
- 実際の発表内容と異なるが、以下は講演のラフアウトライン
コンテナ技術が生まれた理由
- BroadcomによるVMware買収 に際し、FTCから「コンテナはVMの競合か?」と質問
- VM はサーバー台数増加時代の産物、手動管理・低利用率(15%未満)が課題
- Linux 環境では複数アプリ同居がやや容易、だが依然として非効率
- コンテナ は「アプリケーション数の爆発」に対処するため登場
- DotcloudがPaaS運営でDockerを開発、重要なのは「パッケージング」
- 企業ではクラウド移行の一環としてコンテナを採用、VMの「リフト&シフト」非効率回避
- MicrosoftはVM移行を提案、だがコンテナ+クラウドでモダナイズ推進
- WindowsからLinuxへの移行も促進
Dockerの変革とイノベーション
- Docker Hub による「共有可能なイメージレジストリ」が最大の革新
- VMイメージは大きく、再利用性が低い
- Cloud Initなどで若干改善も、コンテナイメージには及ばず
- Dockerは「イミュータブル(不変)デプロイ」を強制
- アプリ単位での再構築・再デプロイが容易、セキュリティ面の利点も
- Docker登場で Go言語 が市民権獲得、現代の主要言語がTLS標準搭載
Kubernetesとオーケストレーションの進化
- 初期のKubernetesは「スケジューリング」が主題、実際は「デプロイ自動化」が本質
- Docker Swarmはデプロイスクリプト非対応、KubernetesでGitOpsなどの手法普及
- データベース運用に関する議論
- コンテナの「削除の容易さ」ゆえ、DB運用はクラウド依存傾向強化
- ストレージ選択肢(NFS、ブロックストレージ等)の多様化
DevOps文化の変遷と課題
- Kubernetesの複雑化が DevOps文化 を変質させた
- かつては「開発と運用の融合」、今はKubernetes運用担当の「裏方」的役割へ
- 技術志向が文化志向を凌駕
- Dockerはローカル開発環境の標準化には至らず
- PythonやRubyの仮想環境、Nixによる再現性確保が主流
- Dockerは主にDBやサービスのテスト用途
- OSSコンポーネントによるアプリ構築が主流化
- 言語ごとのパッケージ管理が標準、ユニバーサルなビルド抽象化は不在
- イミュータブル性の有用性は限定的、依存関係の複雑さが課題
現在の状況
- 仮想化導入の動機は「リソース利用率15%」の改善
- 2024年Datadogレポートによると「コンテナコストの83%はアイドルリソース」
- 浪費の可視化は進んだが、規模の大きな自動化による浪費も増加
- モバイルアプリ用途が中心、Armサーバーの普及
- 効率的な運用の一方、長い非効率の「ロングテール」も継続
- AIの登場で、高コストなアプリは急速に効率化
- 推論コストの劇的低下
今後の展望
- 2015年の「Choose Boring Technology」論文
- 当時はDockerやKubernetesは「退屈でない」技術
- 現在は「Dockerはほぼ退屈」「Kubernetesも退屈化進行中」(ChatGPT談)
- 「退屈な技術を選ぶ」文化が定着、AIが変革予算を吸収
- クラウドネイティブ・スタートアップ時代の終焉
- LLMは「退屈な技術」に強み、さらなる変革には追加予算が必要
参考リンク
- 講演動画:https://www.youtube.com/watch?v=eMU2mZgo99c