ホーム/ DevOps/インフラ

DevOps・インフラ

DevOps/インフラ

GitHub Actions・Docker・Kubernetes・Terraform などのツールの比較から、CI/CD・コンテナ・IaC・オブザーバビリティの考え方まで。まず TL;DR で。

コレクション 01

CI/CD(3)

項目JenkinsGitLab CI/CDGitHub Actions
種別CI/CD(セルフホスト)CI/CD(GitLab 統合)CI/CD(GitHub 統合)
提供元コミュニティ(元 Hudson)GitLabGitHub
ライセンスオープンソース(MIT)オープンソース+商用GitHub に付随(無料枠+従量)
一番の強みプラグインで自由自在ソース〜CI/CD〜運用が一体GitHub と密結合で設定が手軽
主な用途オンプレ/独自要件の CI/CDGitLab 中心の DevOpsテスト/ビルド/デプロイの自動化

コレクション 02

コンテナ(2)

項目DockerKubernetes
種別コンテナコンテナオーケストレーション
提供元Docker, Inc.Google → CNCF
ライセンスオープンソース+商用オープンソース(Apache 2.0)
一番の強み環境差をなくす(再現性)自動スケール / 自己修復
主な用途開発環境の統一大規模なコンテナ運用

コレクション 03

IaC・構成管理(2)

項目AnsibleTerraform
種別構成管理(エージェントレス)IaC(プロビジョニング)
提供元Red HatHashiCorp
ライセンスオープンソース(GPL)BSL(旧 MPL)
一番の強みエージェントレス(SSH だけ)宣言的・マルチクラウド対応
主な用途サーバ構成管理クラウドインフラの構築

コレクション 04

監視・オブザーバビリティ(2)

項目PrometheusGrafana
種別メトリクス監視可視化ダッシュボード
提供元SoundCloud → CNCFGrafana Labs
ライセンスオープンソース(Apache 2.0)オープンソース(AGPL)
一番の強みプル型で収集がシンプル多数のデータソースを統合可視化
主な用途メトリクス監視/アラート監視ダッシュボード

操作して学ぶ

サーキットブレーカ可視化 — Closed/Open/Half-Openを動かす

依存先を健全/障害で選んでリクエストを送信。失敗率のしきい値遮断と、実際に待ってからの復旧判定を体感。

Gossipプロトコル可視化 — push/pull/push-pullを同時比較

1台から広がる更新をN台へ拡散。ノード数を2倍にしてもラウンド数はわずかしか増えないO(log N)収束を実際に確認できる。

分散ロック可視化 — Redlockのクォーラムとフェンシング

N台のロックサーバーでクォーラム取得を試行。GCポーズがTTLを超えた時、フェンシングトークンの有無でデータ破壊が起きるかを比較。

解説記事

考え方・概念

CI/CD・IaC・オブザーバビリティなど、ツールの背後にある考え方。まず TL;DR で。

3つの要点応用

Admission Controlとポリシー実行(Webhook/CEL)

危険な設定をクラスタに入る前に止めたい。API サーバーの admission webhook と CEL・OPA/Gatekeeper・Kyverno が、どの順序でリクエストを検証・改変するかを原理から解説。

3つの要点応用

AIOpsと異常検知

固定閾値のアラート疲れから解放。季節性を学習するML異常検知と自動根本原因分析の仕組み、静的しきい値との違いと限界を原理から解説。

3つの要点応用

CDCとログベース連携の内部

バッチのポーリングをやめ、DBの変更を低遅延で正確に下流へ流したい人へ。トランザクションログ(WAL/binlog)を読んで変更イベント化するCDCの仕組みと、順序保証・初期スナップショットとの接続・スキーマ変更追従の原理がわかります。

3つの要点基礎

CI/CD(継続的インテグレーション/デリバリ)

コードの変更を頻繁に統合して自動テストするのが CI、そこから自動でリリースまで運ぶのが CD。「手作業のデプロイ事故」と「リリースの遅さ」を仕組みで解決する開発の基盤です。

3つの要点応用

CNIとPodネットワークモデルの原理

なぜKubernetesではPodが互いにIPで直接届くのか。NATなしのフラット到達性を支えるCNIの責務、VXLANオーバーレイとBGPルーティングの違い、IPAMの仕組みを原理から解きほぐす。

3つの要点応用

Crossplaneによるコントロールプレーン型IaC

クラウド資材の払い出しをkubectl一つに統一し、申請待ちのチケット運用から抜け出せる。CRD化とCompositionでセルフサービス基盤を作る仕組みを解説。

3つの要点応用

DevOps・SREツールチェーンの系統と派生

CI/CD・IaC・GitOps・可観測性・オーケストレーションが「なぜ今の形か」を一望できます。push→pull、命令型→宣言型、監視→可観測性という三つの思想の派生を年代と分岐で整理し、ツール選定の軸が掴めます。

3つの要点応用

eBPF によるゼロインストルメンテーション可観測性

アプリを1行も改変せず、L7メトリクスやCPUプロファイルを採取できる理由を原理から理解。カーネル内VMでフックを安全に実行するeBPFの仕組みと、TLS暗号化やコンテキスト欠落といった本質的な限界まで押さえられます。

3つの要点応用

eBPFによるランタイムセキュリティ(Falco・Tetragon)

侵入されても本番環境で「今まさに起きている不審な挙動」をカーネルレベルで検知できる理由を原理から解説。シスコール監視とルールマッチングでコンテナ脱出やプロセスインジェクションを見抜く仕組みがわかります。

3つの要点応用

etcdとMVCC・watchの内部

なぜetcdの容量が推奨8GiBで頭打ちになり、watchは取りこぼさないのか。リビジョンによるMVCCとwatchストリーム、compactionの原理を押さえれば、Kubernetesの真実の源としての制約と運用勘所が腑に落ちる。

3つの要点応用

FinOps(クラウドコスト最適化)

青天井になりがちなクラウド請求を、エンジニアリングと財務の共通言語に変えます。可視化・配賦・最適化の反復で、信頼性を犠牲にせず支出を絞り込めます。

3つの要点応用

FLP不可能性定理(非同期合意の限界)

なぜPaxosやRaftが「故障検出器」や「タイムアウト」を必要とするのか、その理論的な答えがここにあります。完全非同期では合意が原理的に不可能だという定理を、実装者の視点で読み解きます。

3つの要点中級

GitOps

あるべき状態を Git に書けば実環境が自動で追従。Git を唯一の正とし、Pull 型デプロイとドリフト検知で運用を自動化する GitOps の考え方を解説。

3つの要点応用

GitOpsの調整モデルとドリフト是正

Gitと実クラスタのズレを自動で埋めるGitOpsの調整ループを原理から。望ましい状態と観測状態の差分計算、ドリフト検知、自己修復とロールバックの仕組みまで掴めます。

3つの要点中級

IaC(Infrastructure as Code)

同じ環境を何度でも再現でき、変更履歴も Git に残る。サーバーやネットワークを画面の手作業ではなくコードで定義・管理する IaC の考え方を解説。

3つの要点応用

kube-proxyとServiceの仮想IP実装(iptables/IPVS/eBPF)

ClusterIPに応答するホストが1台も存在しないのにPod間通信が成立する理由を原理から理解。iptables/IPVS/eBPFがどうDNATで宛先を差し替え、conntrackが戻りパケットを正しく復路へ戻すのかまで押さえられます。

3つの要点応用

Kubernetesスケジューラの内部(Filter/Score二段階)

PodがどのNodeに載るかは運任せではなく、二段階の決定論で決まる。FilterとScoreの仕組み、preemption、アフィニティとTaint・Tolerationの効き方を原理から押さえ、配置の挙動を予測・制御できるようになります。

3つの要点応用

L7ロードバランサの内部とアルゴリズム

どのサーバーに振るかで尾の遅延が決まる——round-robin から power-of-two-choices まで、負荷分散アルゴリズムの長所と落とし穴、ヘルスチェックとコネクションドレインの原理を押さえて偏りなく捌けます。

3つの要点応用

LLMを使ったインシデント対応支援

調査開始からの数分を削り、一次対応者の認知負荷を下げる。ログ・メトリクス・トレースの要約と仮説生成をLLMに任せつつ、ハルシネーションを前提にした検証設計まで原理から解説。

3つの要点応用

OCIランタイムとコンテナ起動シーケンス(runc/containerd)

docker run の裏で何が起きているかを原理から把握。containerd・shim・runc の責務分担と clone() からアプリ起動までの経路を追い、起動失敗やデーモン再起動の挙動を根拠を持って説明できるようになります。

3つの要点応用

OPAとRego言語によるポリシー実装

許可・拒否の判断ロジックをアプリのif文から切り離したい。OPAの評価モデルとRegoの集合演算を原理から押さえれば、K8sもAPI認可も同じエンジンで再利用できる。

3つの要点応用

OpenTelemetry のデータモデルとパイプライン

計装をベンダーロックインから解放する仕組みを原理から理解。SDKからCollectorへ流れるシグナルの共通リソースモデルと、receiver/processor/exporterの3段パイプラインを構成図のように追えます。

3つの要点応用

Operatorパターンとカスタムリソースの設計

DBやキューの運用知識をコードに閉じ込め、宣言だけで自動運用できる。CRDでAPIを拡張しカスタムコントローラで冪等に収束させるOperatorの原理を解説。

3つの要点応用

OverlayFSとコンテナイメージのレイヤー構造

イメージが速く小さく配れる理由を原理から理解できる。OverlayFSのlower/upper/merged構造とコピーオンライト、レイヤーキャッシュ、ビルド再現性のつまずきまで解説。

3つの要点応用

RPO/RTOと災害復旧の設計判断

災害復旧の方式選びを目標値から逆算できるように。許容データ損失(RPO)と復旧時間(RTO)から、バックアップ・レプリケーション・スタンバイの方式と費用対効果を原理で導けます。

3つの要点中級

SRE と SLO / SLI

信頼性を気合いではなく数字で運用。SLI で測り SLO で目標を立て、エラーバジェットで開発速度と安定性のバランスを決める SRE の考え方を解説。

3つの要点応用

Terraform状態管理とドリフト・ロックの原理

apply が壊す・固まる理由を state の仕組みから解消。宣言と実体を結ぶ state ファイル、plan の差分計算とリフレッシュ、並行実行を止める状態ロック、手動変更によるドリフトの検知と是正を原理から理解できます。

3つの要点中級

Twelve-Factor App

クラウドで動かしやすいアプリを設計するための指針。設定は環境変数へ、プロセスはステートレスに、ログはストリームにといった Twelve-Factor App の12原則をまとめて解説。

3つの要点応用

USE法とRED法:メトリクスの体系

監視ダッシュボードに指標が並ぶのにボトルネックが特定できないのは、選び方に体系がないからです。リソースを測るUSE法、サービスを測るRED法、Four Golden Signalsの関係を原理から整理します。

3つの要点応用

WASMエッジワークロード

コンテナより速く起動しVMより硬く隔離する第三の実行単位で、エッジの遅延とマルチテナントのリスクを同時に縮める。

3つの要点基礎

アーティファクトレジストリ

ビルド成果物(コンテナイメージやライブラリ)を安全に保管・配布。バージョン管理と脆弱性スキャンで、CI/CD の出力とデプロイの入力を確実につなぐ要になります。

3つの要点応用

アウトボックスパターンとデュアルライト問題

DB更新とイベント送信がズレて「保存したのに通知が飛ばない/飛んだのに保存されていない」を防ぐために。デュアルライト問題の正体と、同一トランザクション内のアウトボックステーブル+CDCで整合性を取る原理がわかります。

3つの要点応用

アドミッションコントロールと適応的負荷制限

過負荷で全体共倒れを防ぐには、賢く要求を捨てる設計が要ります。優先度・公平性に基づく load shedding、CoDel 風の遅延ベース判定、リトル則由来の適応的同時実行制限を原理から解説します。

3つの要点応用

アムダール則・ガスタフソン則とスケーラビリティの限界

コアを倍にしても速度が倍にならない理由を数理で解明。逐次部分が加速を縛るアムダール則、規模拡大で逃げるガスタフソン則、収益逓減を予測するUSLまで、スケール設計の勘所を掴みます。

3つの要点応用

アラート理論:シグナル/ノイズとアラート疲労

鳴りすぎるアラートで疲弊するのを卒業。症状ベース設計と適合率/再現率のトレードオフを意思決定理論で捉え、SLOバーンレートでノイズを原理から削る考え方を解説。

3つの要点応用

アンチエントロピーとGossipプロトコル

数千ノードでも中央調整なしに状態を揃え障害を検知できる仕組みが腑に落ちる。epidemic拡散の収束がなぜlog Nラウンドかを数理から導き、Merkle木とSWIMの原理まで解説。

3つの要点応用

アンビエントメッシュ(サイドカーレスサービスメッシュ)

ポッド数×Envoyでメモリと再起動コストが膨らむサイドカー方式に代え、L4はノード共有のztunnel、L7が要る通信だけwaypointへ——負荷とコストを引き離す設計を原理から読み解きます。

3つの要点応用

イベントソーシングとCQRSの原理

監査ログと履歴を後付けで失わないために。状態ではなく「起きた事実」の列を真実の源にし、再生で状態を再構築するイベントソーシングと、読み書きを分けるCQRSの設計判断がわかります。

3つの要点応用

インクリメンタルビルドとコンテンツアドレス指定

ビルドが毎回フルで走り遅いのは、入力ハッシュをキーにした成果物キャッシュと依存グラフで解けます。ハーメティック性・リモートキャッシュ・ヒット率の原理を、Bazel系の仕組みから正確に押さえます。

3つの要点応用

インシデント指揮系統(ICS)と役割分担

大規模障害でも混乱せず最短で収束させる。指揮役・連絡役・作業役を分離し、認知負荷を下げて意思決定を集中させる障害対応の指揮構造を原理から解説。

3つの要点中級

インシデント対応とポストモーテム

障害を素早くさばき、再発まで防ぐ。検知から復旧までの対応の流れと、人を責めず仕組みを直すポストモーテムで学びを残す文化をまとめて解説。

3つの要点応用

エグザンプラとメトリクス→トレース相関

p99が悪化したダッシュボードから、原因になった具体的な1リクエストのトレースへ即座に飛びたい人へ。ヒストグラムのバケットに代表トレースIDを添えるエグザンプラの仕組みと、集約された異常指標から個別トレースへ辿る相関の原理を解説します。

3つの要点応用

エッジコンピューティングのオーケストレーション

回線切断や低スペック機器が前提のエッジで、なぜ中央集権的なK8sオーケストレーションがそのまま通用しないのかを原理から整理し、自律ループ設計の勘所を掴めます。

3つの要点応用

エラーバジェットの数理とバーンレート

アラートが鳴りすぎる、遅すぎるを卒業。SLOからエラーバジェットを導き、バーンレートで「いつ・どれだけ急いで」鳴らすかを数式から設計できます。

3つの要点中級

オブザーバビリティ(メトリクス・ログ・トレース)

未知の不具合まで外から追える状態をつくる。システムの中で何が起きているかを、メトリクス・ログ・トレースの3本柱で推測できるようにするオブザーバビリティを解説。

3つの要点応用

オンコールの設計と持続可能な運用

夜中の呼び出しで疲弊するチームを卒業。ページング頻度の上限とMTTA目標、ローテーション、エスカレーションを数字で設計し、燃え尽きないオンコールを作れます。

3つの要点応用

カーディナリティ予算とラベル設計の規律

監視コストの暴走を設計で防ぐ。時系列数を直積から見積もり、許容上限を予算化し、ラベル選定・集約・リラベリングで配分する規律を原理から学べます。

3つの要点応用

カーボンアウェアコンピューティング

同じワークロードでも実行のタイミングと場所を変えるだけでCO2排出を減らせます。電力網の炭素強度を読み、時間軸・地理軸にワークロードをずらす設計原理を解説。

3つの要点応用

カオスエンジニアリング

「落ちないこと」ではなく「落ちても大丈夫」を確かめる実践。本番に近い環境でわざと障害を起こし、システムが耐えられるかを実験で検証して弱点を改善します。

3つの要点応用

カスケード障害とメタステイブル障害の力学

なぜ過負荷が去っても障害が続くのか。小さな擾乱が正のフィードバックで自己持続する力学を解き、トリガとサステイナの分離で自力回復させる原理を掴めます。

3つの要点応用

キャッシュ無効化とスタンピード対策

人気キャッシュの一斉失効はDBを一瞬で焼き切る。スタンピードが起こる原理と、single-flight・確率的早期失効・stale-while-revalidateの3つの緩和策を押さえれば、失効の瞬間を恐れず設計できるようになります。

3つの要点中級

キャパシティプランニング

足りない事故も余りすぎる無駄も避けるための備え。将来の負荷を予測して必要な資源を前もって見積もり・確保し、スケール戦略とコストのバランスを取ります。

3つの要点応用

キャパシティモデリングと負荷予測

勘の見積もりを卒業し、需要予測と利用率目標から必要台数を数式で導けます。季節性・成長率・p99余裕を織り込み、待ち行列理論で飽和点を統計的に見極めます。

3つの要点応用

クラスタオートスケーラとビンパッキング

ノードを増やしすぎず減らしすぎない判断を原理から。PendingポッドのリソースリクエストからノードグループとAZを選ぶ仕組み、ビンパッキングによる集約とコスト最適化、PDBやローカルストレージを守る安全なスケールダウンまで掴めます。

3つの要点応用

グレースフルシャットダウンとコネクションドレイン

Podを止めるたびに5xxやコネクションリセットが出るのは、終了の順序が間違っているからです。SIGTERMから接続排出・新規拒否・LB伝播までの正しい順番を押さえれば、無停止で更新できます。

3つの要点中級

コンテナと仮想マシンの違い

1台のサーバーを“分けて使う”2つの方式。仮想マシンはOSごと仮想化して強く隔離し、コンテナはOSカーネルを共有して軽く速く動かす。

3つの要点応用

コンテナの正体:namespace と cgroup の原理

コンテナが軽量VMではない理由が腑に落ちる。namespaceが「見え方」を隔離し、cgroupが「使える量」を制限する——ホストと同じカーネル上で動くただのプロセスだと原理から理解できる。

3つの要点応用

サーキットブレーカとバルクヘッドの状態機構

落ちた依存先を叩き続けて自分まで道連れにする——その連鎖を断つのがサーキットブレーカとバルクヘッドです。状態遷移としきい値、隔離と負荷制限の原理を押さえれば、カスケード障害を設計で止められます。

3つの要点応用

サービスメッシュ

再試行・可視化・暗号化・トラフィック制御をアプリの外側に肩代わり。サービス間通信の共通処理をサイドカー層に任せるサービスメッシュを、Istio や Linkerd を例に解説。

3つの要点応用

サービスメッシュとサイドカーの内部(mTLS/L7制御)

アプリのコードを一行も変えずに、暗号化・再試行・タイムアウトを全通信へ一括適用したい——それを支えるのがサイドカープロキシです。傍受・mTLS自動化・L7制御の仕組みをデータパスから押さえれば、メッシュの挙動を設計で読み解けます。

3つの要点応用

シークレット管理と動的クレデンシャル

漏れても被害を最小化するシークレット運用を原理から。静的・長命な鍵の危うさを理解し、Vault等で都度発行する短命クレデンシャル、リースと自動ローテーション、シール/アンシールの仕組みまで掴めます。

3つの要点応用

シャッフルシャーディングの確率論

1テナントの暴走で全顧客が道連れになる事故を、ワーカを重複割当するだけで桁違いに減らせる。なぜ効くのかを重複組合せ数の確率計算から導き、AWSが多用する隔離設計の勘所まで解説。

3つの要点応用

スキーマ進化とローリングデプロイの互換性

デプロイ中のスキーマ不整合でエラーを出さないために。新旧コードが同時に動く瞬間を前提に、expand/contractで破壊的変更を安全な多段に分解する原理と、前方・後方互換の作法がわかります。

3つの要点応用

セル型アーキテクチャと障害分離

一つの障害が全顧客を巻き込む構造から抜け出せます。完全なスタックの複製であるセルに顧客を分割し、爆風半径を1セル分へ封じ込める原理・ルーティング・独立デプロイの設計を掴めます。

3つの要点応用

タイムアウト設計とデッドライン伝播

各段に固定タイムアウトを置くと合計が積み上がり、一番外側が先に諦めて全段が無駄になります。残時間を引き継ぐデッドライン伝播なら、チェーン全体で「いつまで」を共有し、無駄な計算とリソースの拘束を断てます。

3つの要点応用

テールサンプリングの統計と希少異常の捕捉

エラーや高遅延の希少トレースを取りこぼさず保存料を抑えたい人へ。トレース完了後に重要度で残すテールサンプリングのバッファリングコストと完全性、ヘッドサンプリングとの違い、バイアス付き抽出の統計を原理から解説します。

3つの要点応用

デッドレターと毒メッセージの処理設計

処理に必ず失敗するメッセージが無限リトライでキューを詰まらせる前に隔離する設計を原理から。DLQ退避・redrive・リトライ上限と指数バックオフの組み立て方が掴めます。

3つの要点応用

デプロイとリリースの分離(feature-flagとの境界)

コードを本番に置くこと(deploy)と機能をユーザーに見せること(release)を切り離せば、深夜リリースも巻き戻し待ちも消える。ダークローンチとkill switchの原理を押さえます。

3つの要点中級

デプロイ戦略(ブルーグリーン・カナリア・ローリング)

新バージョンを“止めずに・壊さず”出すための切り替え方。少しずつ入れ替える、丸ごと2環境を切り替える、一部ユーザーで先に試す。どこまで安全に倒すかのトレードオフで選ぶ。

3つの要点応用

トイル削減と運用負荷の定量化

残業が減らない原因は「トイル」かもしれません。手作業で線形に増える運用負荷を定義・測定し、自動化のROIと損益分岐、運用負荷を50%以下に保つSREの工学的原則を押さえます。

3つの要点応用

トレースのスパンモデルと因果再構成

トレースが追えなくなる原因の多くは因果の取りこぼし。child-ofとfollows-fromの違い、非同期・ファンアウト・キューでスパンがちぎれる理屈、クリティカルパス抽出の原理まで整理できます。

3つの要点応用

パーセンタイル統計とレイテンシ分布の罠

平均レイテンシで監視すると遅いユーザーを見落とす。なぜ平均が嘘をつくのか、p99はなぜ加算も平均もできないのか、HdrHistogramやt-digestがどう正しく集計するのかを原理から押さえます。

3つの要点応用

バックアップ整合性とポイントインタイムリカバリ

復元できないバックアップという最悪の事態を避けられます。クラッシュ整合とアプリ整合の違い、quiesceとログ適用による任意時点復元(PITR)、3-2-1とリストア検証を原理から掴めます。

3つの要点応用

ビザンチン障害耐性(BFT)と 3f+1 の理由

なぜBFTは過半数では足りず n≥3f+1 ノードを要求するのか。定足数の交差から不等式を導き、PBFTの3フェーズとブロックチェーン合意への系譜まで原理で腑に落ちます。

3つの要点応用

ヒストグラムと分位点推定の内部(Prometheus vs Native)

Prometheusのhistogram_quantileが返すp99はなぜ当てにならないのか。固定バケット補間の誤差源と、ネイティブヒストグラムやDDSketchが相対誤差を保証する原理を押さえ、信頼できる分位点監視を設計できます。

3つの要点中級

フィーチャーフラグ

デプロイせずに機能をオン/オフ。コードに切り替えスイッチを埋め込み、段階的リリースや A/B テスト、即時ロールバックを安全に実現するフィーチャーフラグの仕組みを解説。

3つの要点応用

フォールトインジェクションとゲームデイの原理

本番で初めて障害に気づく状況から抜け出せます。定常状態仮説・最小爆風半径・自動停止というカオスエンジニアリングの実験設計と、ゲームデイの学習ループを原理から掴めます。

3つの要点応用

プラットフォームエンジニアリングと内部開発者プラットフォーム

開発者が待たされずデプロイできるセルフサービス基盤の作り方。ゴールデンパスとIDPで認知負荷を下げ、プラットフォームチームの役割分担が明確になります。

3つの要点応用

フリート規模のローリング(波・サージ・隔離)

数千台への変更が一斉事故にならない出し方が身につきます。波・セル・爆風半径で展開を区切り、サージ容量と相関障害を避け、自動ヘルスゲートで止める原理を掴めます。

3つの要点応用

プログレッシブデリバリと自動ロールバック

新版を一部に流して指標を測り、悪化したら人手を待たず自動で巻き戻す。判定窓・統計的有意性・ベイクタイムの原理を押さえ、夜間でも壊さないリリースを設計する。

3つの要点応用

べき等性とexactly-once配信の幻想

重複メッセージで二重課金や残高ずれを起こさないために。at-least-once配信の上に、べき等キーと重複排除窓で「実効的exactly-once」を組む原理と、真のexactly-onceが原理的に不可能な理由がわかります。

3つの要点応用

ヘッジドリクエストとテイル耐性

一部のリクエストだけが遅れるテイルレイテンシを、二重発行でほぼ消す技法を解説。ヘッジリクエストとタイドリクエストの原理・効くしきい値・余分な負荷コストまで踏み込みます。

3つの要点応用

ヘルスチェックの設計(liveness/readiness/startup)

プローブを一つにまとめると、再起動ループや連鎖障害で本番が落ちます。生存・受付可否・起動完了を3種に分け、依存先をどこまで見るかを正しく設計すれば、無駄な再起動と巻き込み事故を防げます。

3つの要点応用

ポリシーアズコードと継続的コンプライアンス

「禁止構成は人のレビュー頼み」から卒業。インフラ・デプロイの制約をコードで宣言し、CI と admission で機械的に強制、ドリフト検知と監査証跡まで自動化する原理を解説。

3つの要点中級

マイクロサービス

独立してデプロイ・スケールでき、開発速度を上げられる。大きなモノリスを小さなサービス群に分割するマイクロサービスの利点と、分散システム特有の難しさを解説。

3つの要点応用

マルチクラスタ・フェデレーション

1クラスタの限界を超え、複数Kubernetesクラスタを1つの運用単位として束ねる。配置戦略・コントロールプレーン集約・フェイルオーバーの原理を押さえれば、リージョン跨ぎ運用の事故を防げる。

3つの要点応用

マルチリージョン構成とフェイルオーバ設計

リージョン障害でもサービスを止めない設計を原理から。active-activeとactive-passiveの選び方、RPO/RTOとレプリケーション遅延の関係、DNS切替とスプリットブレイン回避まで掴めます。

3つの要点応用

メッセージキューの配信保証とバックプレッシャ

メッセージが消える・二重に届く・順番が狂う事故を設計で防ぐために。ack/nackと可視性タイムアウトの仕組み、順序保証の限界、デッドレター、コンシューマラグから読むバックプレッシャまで、ブローカ内部から原理を解説します。

3つの要点応用

メトリクスの基数爆発とその抑制

監視基盤が突然重くなる原因を断つ。ラベルの直積で時系列が指数的に膨らむ基数爆発の機構と、集約・サンプリング・exemplarによる抑制原理をTSDBの内部構造から理解できます。

3つの要点応用

リース・TTL・グレースフルな期限切れ

リースを時間制限付き権限と捉え直すと、分散ロックやリーダーシップが安全になる。クロックスキューへの安全マージン、更新失敗時のフェイルセーフ、グレースフルな期限切れの設計原理が掴めます。

3つの要点応用

リーダー選出とスプリットブレイン回避

二重リーダーによるデータ破壊を、リースとフェンシングトークンで原理から封じる方法がわかる。なぜ単なるロックでは足りず、クォーラムやSTONITHが要るのかを解説。

3つの要点応用

リクエストライフサイクル全体図(LB→メッシュ→Pod)

外部リクエストがDNSからPodへ届くまでを1枚で俯瞰できます。各層が何を終端し何を委譲するのかを段階順に整理し、TLS終端・ルーティング・認証・リトライの責務境界を切り分けて障害切り分けに使えます。

3つの要点応用

ローリング更新の数理と可用性制約

更新中に何台まで落ちるかを勘で決めるのを卒業。maxSurge と maxUnavailable から最小可用台数とロールアウト時間を計算で出せるようになり、サージ容量とコストのトレードオフを根拠を持って設計できます。

3つの要点中級

ログ集約

散らばったログを一箇所で横断検索し、障害調査を素早く。各サーバーやコンテナのログを集約し、構造化ログと ELK や Loki で分析できるようにするログ集約を解説。

3つの要点応用

ワークロードアイデンティティとmTLSによる認証

サービス間にパスワードや長命キーを置かずに済む仕組みを原理から。SPIFFEのSVIDと短命X.509証明書、自動ローテーション、信頼ドメインでmTLS相互認証を成立させる流れが掴めます。

3つの要点応用

依存グラフによるプロビジョニング順序決定

なぜ apply の順番をツール任せにできるのかを原理から理解。参照と depends_on から依存グラフ(DAG)を組み、並列適用順を決める仕組み、循環依存の検出、部分失敗時にロールバックされない理由と収束のさせ方まで解説します。

3つの要点応用

依存解決とバージョン制約充足(SATソルバ)

依存解決が遅い・壊れる理由を原理から理解できます。バージョン制約充足がSAT問題でありNP困難であること、ダイヤモンド依存・ロックファイル・最新/最近接の選択戦略を、主要パッケージマネージャの実装に即して押さえます。

3つの要点中級

依存性スキャンと SCA

使っている外部ライブラリの既知脆弱性を自動で見つけて止める仕組み。SCA や SBOM で「何を使っているか」を把握し、CI に組み込めば危険な依存を早期に遮断できます。

3つの要点応用

一貫性ハッシュとリングによる負荷分散

ノードを足し引きしてもキャッシュが総崩れしない仕組みが腑に落ちる。剰余ハッシュの弱点を起点に、リング・仮想ノード・bounded-load・rendezvousの違いと使い分けを分散LB文脈で解説。

3つの要点応用

因果順序とhappened-before関係の図解

分散イベントの「先後」を時空間図で一目で読み解けるようになる。横線と斜めの矢印からhappened-before・並行・ベクタークロックの増分を機械的に判定する手順を、原理から身につけられます。

3つの要点応用

可観測性の三本柱とその限界(メトリクス/ログ/トレース)

障害調査で柱をまたぐたびに行き詰まる原因を断つ。メトリクス・ログ・トレースの情報理論的トレードオフと相関付けの難しさ、wide eventによる統合という設計潮流を原理から理解できます。

3つの要点応用

形式手法とモデル検査(TLA+)による設計検証

テストで踏めない並行バグを設計段階で潰せる。状態空間を網羅探索するモデル検査と、TLA+/PlusCalで安全性と活性を仕様化する手法を原理から掴める。

3つの要点応用

継続的プロファイリングとフレームグラフの原理

CPUを食う関数が本番で特定できず勘で最適化していませんか。サンプリングがなぜ統計的に正しいか、フレームグラフの読み方、常時プロファイリングのオーバーヘッド管理までを原理から押さえます。

3つの要点中級

構成管理

サーバーの設定を手作業から解放し、何度実行しても同じ状態を再現。コードで宣言して環境差や設定ミスを防ぎます。Ansible / Chef / Puppet が代表で、IaC の一部を担います。

3つの要点応用

構造化ログと高基数ワイドイベント

想定外の障害も後から好きな切り口で掘れる。1リクエスト1ワイドイベントに高基数フィールドを載せ、行指向ログから観測の主役を構造化イベントへ移す設計を原理から解説。

3つの要点応用

合意アルゴリズムの系統と派生

PaxosとRaftの違いに迷ったらここを起点に。CFT/BFT・同期前提・リーダー有無という分類軸で系統を整理すれば、どのアルゴリズムをどこに使うべきかが筋道立てて判断できる。

3つの要点応用

再試行・指数バックオフ・ジッタの設計理論

素朴な再試行はなぜ障害を増幅させるのか。指数バックオフとジッタ、再試行予算という3つの原理を押さえれば、落ちかけたシステムを自分の手でとどめを刺さず守れるようになります。

3つの要点応用

再試行予算とトークンバケットによる増幅抑制

落ちかけた依存先に再送が殺到して傷口を広げる——その増幅を数理で押さえます。レイヤごとの積で膨らむ機構と、トークンバケット予算で増幅率を有界化する設計が手に入ります。

3つの要点応用

時刻同期とクロックドリフト(NTP/PTP/TrueTime)

サーバー間の時刻ずれが原因のログ逆転や順序バグを根本から理解。NTPの限界、PTPの高精度同期、TrueTimeが不確実性区間で外部整合性を実現する原理を時間理論から押さえられます。

3つの要点応用

障害モード分類マップ(フェイルストップ〜ビザンチン)

故障を「クラッシュ・オミッション・タイミング・ビザンチン」と検知可能性で整理でき、どこまで対処すべきかの線引きがつかめる。グレー障害や部分故障がなぜ厄介かも腑に落ちる。

3つの要点応用

障害検出器とハートビートの理論(φ Accrual)

固定タイムアウトが誤検知と復旧遅延の板挟みになる理由が腑に落ちる。完全/不完全な障害検出器の分類から、到着間隔の分布で疑念度を連続値で出すφ Accrualの原理までを正確に解説。

3つの要点応用

信頼性理論:MTBF・MTTR・可用性の数理

ナインの計算がなぜそうなるかを腹落ちさせる回。MTBF と MTTR から可用性を導き、直列・並列の合成と冗長化の限界逓減まで、SLO設計の土台を確率で掴みます。

3つの要点応用

水平スケーリングの制御理論(HPA/オートスケール)

オートスケールが暴れる・遅れる理由を制御理論で腑分け。HPAの比例制御、振動を抑えるヒステリシス、reactiveとpredictiveの違いを原理から理解し、安定したスケール設定を組めます。

3つの要点応用

成果物の来歴とソフトウェア部品表(SBOM/SLSA)

ビルドの改竄やサプライチェーン攻撃を、来歴の署名記録で機械的に検証して防げます。SLSAのレベル定義、SBOMによる依存可視化、in-totoの多層防御を原理から整理します。

3つの要点応用

成果物署名と検証(Sigstore/keyless)

鍵の管理なしでコンテナイメージの正体と来歴を証明できます。OIDCに紐づく短命証明書、透明性ログ、デプロイ時の検証ゲートまで、keyless署名の仕組みを原理から掴めます。

3つの要点応用

整合性モデルの階層(線形化可能性〜結果整合性)

強い整合性ほど直感的に書けるが遅く落ちやすい、という構図が腑に落ちる。線形化可能性から結果整合性まで強さの順に並べ、各モデルが許す挙動を原理から整理。

3つの要点応用

宣言的調整ループとコントローラパターン

宣言的システムが「望ましい状態」へ自律収束する仕組みが原理からわかる。なぜ命令型でなく差分を埋め続ける設計が壊れにくいのか、informerとwork queueの効率化まで解説。

3つの要点応用

線形化可能性検査とJepsenによる整合性検証

分散システムが本当に線形化可能かを実測で暴ける。並行履歴の探索検証とJepsenの障害注入で、設計上の保証と実装の挙動のズレを原理から見抜く力が身につく。

3つの要点応用

待ち行列理論とテイルレイテンシ

なぜ高負荷でp99だけが跳ね上がるのか、その正体を待ち行列理論で見抜く。利用率と応答時間の非線形な関係を数理から理解し、テイルレイテンシ対策の勘所を掴みます。

3つの要点応用

非難なきポストモーテムとSafety-II

障害から本当に学べる組織になる。後知恵バイアスと帰属の誤りをどう排除するか、ローカル合理性の考え方、そしてSafety-IからSafety-IIへの視点転換と学習文化の原理を解説します。

3つの要点中級

不変インフラ(Immutable Infrastructure)

手作業によるズレをなくし、ロールバックは入れ替えるだけ。動いているサーバーを直さず新しく作り直して丸ごと差し替える不変インフラの運用方式を解説。

3つの要点応用

普遍スケーラビリティ則(USL)と競合・一貫性コスト

ノードを足すほど速くなる、は途中で嘘になります。競合コストと一貫性コストの2項からなるUSLで、スループットが頂点を持って減少に転じる地点を予測し、容量計画を数理で裏づけます。

3つの要点中級

負荷テスト

本番で落ちる前にボトルネックを発見。擬似的な負荷をかけて想定利用量への耐性を検証し、負荷・ストレス・スパイク・耐久と種類を使い分ける負荷テストを解説。

3つの要点応用

分散キャッシュ整合性(write-through/back/around)

キャッシュとDBの二重書きで生じる不整合の原因を断てます。write-through/back/aroundの耐久性差、TTLと明示無効化、CDN・アプリ・DBの多層整合性を原理から理解し、古い値の漂着を設計で防げます。

3つの要点応用

分散システムのテスト:決定論的シミュレーション

再現できないバグに悩む分散システムのテストを原理から。時刻・乱数・スケジュール・I/Oを単一スレッドの支配下に置き、シード固定で障害シナリオを完全再現する決定論的シミュレーションの仕組みを掴めます。

3つの要点中級

分散トレーシング

どこで遅い・失敗したかを一目で特定。マイクロサービスをまたぐ1リクエストの流れをトレースとスパンで区間ごとに可視化し、OpenTelemetry で標準的に計測する分散トレーシングを解説。

3つの要点応用

分散トレーシングの内部:コンテキスト伝播とサンプリング

trace_idがサービス境界をどう越えるか、なぜ1%抽出でも稀な異常を取り逃さないのか。分散トレーシングの内部動作を原理から理解し、サンプリング設計の判断軸が手に入ります。

3つの要点応用

分散レートリミットとグローバル制限の難しさ

複数ノードで単一の上限を守りたいのに超過する——集中カウンタの遅延、ローカル割当+同期、近似アルゴリズムの原理を押さえ、正確さとレイテンシのどこで妥協するかを設計できます。

3つの要点応用

分散ログ(Kafka系)のパーティションと順序保証

Kafkaで「どこまで順序が保たれ、どこからは保たれないか」を正しく見切るために。追記専用ログ、パーティション内全順序、コンシューマグループのリバランス、ISRレプリケーションによる耐久性を原理から解きほぐします。

3つの要点応用

分散ロックの正しさとフェンシング

分散ロックが守ってくれると信じると二重書き込みで足をすくわれる。GC停止や遅延でロックが破れる理由、Redlock論争の本質、フェンシングトークンで遅延書き込みを確実に弾く原理がわかります。

3つの要点応用

変更失敗率とDORA四指標の数理

DORA四指標を「平均値」で語ると改善判断を誤ります。デプロイ頻度・リードタイム・変更失敗率・MTTRの定義と分布、平均の罠とパーセンタイル、計測の落とし穴を統計から押さえます。

3つの要点応用

飽和とサチュレーション信号の検知

平均利用率では掴めない過負荷の予兆を、待ち行列の原理から見抜く。run queue長・実行待ち・スワップ・TCP backlogを先行指標として読む方法を解説します。

3つの要点応用

論理時計:Lamportタイムスタンプとベクタークロック

分散システムで「どっちが先か」を物理時刻に頼らず正しく判定。因果順序を捉えるLamport時計とベクタークロックの数理を、happened-before関係から原理で理解できます。

3つの要点応用

輻輳崩壊とバックプレッシャの伝播

なぜ負荷が引いても落ちたシステムが復旧しないのか。メタステイブル障害と輻輳崩壊の機構を解き、バックプレッシャと適応的同時実行制限で自力回復する原理を掴めます。