DEVOPS TRACK
DevOps/インフラ
GitHub Actions・Docker・Kubernetes・Terraform などのツールの比較から、CI/CD・コンテナ・IaC・オブザーバビリティの考え方まで。まず TL;DR で。
Toolchain Index
ツールから知る
CI/CD・コンテナ・IaC・監視の定番ツール。役割ごとに比較できます。
Concept Map
考え方・概念
CI/CD・IaC・オブザーバビリティなど、ツールの背後にある考え方。まず TL;DR で。
CI/CD(継続的インテグレーション/デリバリー)
コードの変更を頻繁に統合して自動テストするのが CI、そこから自動でリリースまで運ぶのが CD。「手作業のデプロイ事故」と「リリースの遅さ」を仕組みで解決する開発の基盤です。
GitOps
「あるべき状態」を Git に宣言し、エージェントが自動で実環境を一致させる運用モデル。Git が唯一の正、デプロイは Pull 型、ズレ(ドリフト)は検知して直す。
IaC(Infrastructure as Code)
サーバーやネットワークを画面の手作業ではなく“コード”で定義・管理する考え方。Gitで履歴を残し、同じ環境を何度でも再現できる。
SRE と SLO / SLI
信頼性を「気合い」ではなく「数字」で運用する考え方。SLI(測る)→SLO(目標)→エラーバジェット(落ちてよい量)で、開発速度と安定性のバランスを決める。
Twelve-Factor App
クラウド上で動かしやすいアプリを作るための12の設計原則です。設定は環境変数へ、プロセスはステートレスに、ログはストリームに、といった指針をまとめています。
アーティファクトレジストリ
ビルドで生まれた成果物(コンテナイメージやライブラリ)を保管・配布する専用倉庫です。バージョン管理と脆弱性スキャンを備え、CI/CD の出力とデプロイの入力をつなぐ要になります。
インシデント対応とポストモーテム
障害を検知から復旧まで段取りよくさばく対応の流れと、終わった後に「人を責めず仕組みを直す」振り返り(ポストモーテム)で再発を防ぐ文化をまとめます。
オブザーバビリティ(メトリクス・ログ・トレース)
システムの「中で何が起きているか」を、外から出る信号だけで推測できる状態にすること。メトリクス・ログ・トレースの3本柱で“未知の不具合”まで追えるようにする。
カオスエンジニアリング
本番に近い環境でわざと障害を起こし、システムが耐えられるかを実験で確かめて改善する実践です。「落ちないこと」ではなく「落ちても大丈夫」を検証します。
キャパシティプランニング
将来の負荷を予測し、それを捌くのに必要な資源を前もって見積もり・確保する営みです。スケール戦略とコストのバランスを取り、足りない事故も余りすぎる無駄も避けます。
コンテナと仮想マシンの違い
1台のサーバーを“分けて使う”2つの方式。仮想マシンはOSごと仮想化して強く隔離し、コンテナはOSカーネルを共有して軽く速く動かす。
サービスメッシュ
マイクロサービス間の通信(再試行・可視化・暗号化・トラフィック制御)を、アプリの外側のサイドカー層に肩代わりさせる仕組みです。代表例に Istio や Linkerd があります。
デプロイ戦略(ブルーグリーン・カナリア・ローリング)
新バージョンを“止めずに・壊さず”出すための切り替え方。少しずつ入れ替える、丸ごと2環境を切り替える、一部ユーザーで先に試す。どこまで安全に倒すかのトレードオフで選ぶ。
フィーチャーフラグ
コードに「機能のオン/オフを切り替えるスイッチ」を埋め込み、デプロイとは切り離して機能を出し入れする仕組みです。段階的リリースや A/B テスト、即時ロールバックに使います。
ログ集約
各サーバやコンテナに散らばるログを一箇所に集めて、横断的に検索・分析できるようにする仕組みです。構造化ログを土台に、ELK や Loki などの基盤で障害調査を素早く行います。
依存性スキャンと SCA
アプリが使う外部ライブラリの既知脆弱性を自動で検出する手法です。SCA や SBOM で「何を使っているか」を把握し、CI に組み込んで危険な依存を早期に止めます。
構成管理
サーバの設定や状態を手作業ではなくコードで宣言し、何度実行しても同じ結果になる形で再現する手法です。Ansible / Chef / Puppet が代表で、IaC の一部を担います。
不変インフラ(Immutable Infrastructure)
動いているサーバを直さず、新しく作り直して丸ごと入れ替える運用方式。手作業による“ズレ”をなくし、ロールバックも入れ替えるだけで済む。
負荷テスト
想定する利用量にシステムが耐えられるかを、擬似的な負荷をかけて検証するテストです。負荷・ストレス・スパイク・耐久など種類を使い分け、ボトルネックを事前に見つけます。
分散トレーシング
マイクロサービスをまたぐ1リクエストの流れを、区間ごとに記録して可視化する手法です。トレースとスパンで「どこで遅い・失敗したか」を特定し、OpenTelemetry で標準的に計測します。