はじめてLESSON 01
この教材で学ぶこと 変更をtest・build・deploy・observeへつなぐfeedback cycleを学びます。DevOpsとデリバリー入門
対象読者: codeを書いた後、test・build・deploy・operationまでを安全につなげたい人。
この教材でできるようになること
- DevOpsをtool名ではなくfeedback cycleとして説明できる
- sourceからproductionまでのpipelineを分解できる
- artifact、environment、configurationを区別できる
- 小さな変更、automation、observability、rollbackを設計できる
1. DevOpsの目的
開発と運用を別々の壁にせず、変更を素早く安全に届け、その結果を次の改善へ戻します。
Plan → Code → Review → Test → Build → Deploy → Observe
↑ ↓
└──────────────── Feedback ────────────────────┘
CI、container、IaC、Kubernetesは目的ではなく、このcycleを支える手段です。
2. pipelineを段階に分ける
| 段階 | 確認すること |
|---|---|
| lint/type check | 機械的な不整合 |
| unit test | core logic |
| integration test | DBやservice境界 |
| build | 配布できるartifactを再現できるか |
| security check | dependency、secret、image |
| deploy | environmentへ安全に反映できるか |
| smoke test | 主要機能が最低限動くか |
| observe | error、latency、traffic、saturation |
3. 同じartifactを昇格させる
testしたsourceから作ったartifactと、productionへ出すartifactが異なると検証の意味が弱くなります。
commit SHA
→ immutable artifact
→ stagingで検証
→ 同じartifactをproductionへ
environment差分は設定とsecretで注入し、artifactを環境ごとに手編集しません。
4. 小さな変更とrollback
- 一つの目的にまとまった差分
- review可能な大きさ
- backward compatibilityを考えたDB変更
- feature flagや段階release
- 直前versionへ戻す手順
- data変更の復旧方法
deployの成功だけでなく、利用者影響とmetricを確認します。
5. automationの失敗も設計する
pipelineにはtimeout、retry上限、concurrency、権限、secret maskingを設定します。自動化が失敗したとき、途中まで何が変わったか分かり、再実行しても重複しないことが重要です。
6. 最初のpipeline
小さな静的サイトなら次から始められます。
- pull requestでbuildとtest
- mainの特定commitからartifact作成
- artifactを保存
- productionへdeploy
- URLへsmoke test
- commitとdeploymentを関連付ける
演習: 手動deployを分解する
自分が行っている手動deployを、入力、処理、出力、失敗時の状態へ分けます。
- どのcommitを出すか
- 誰が承認するか
- build結果をどう固定するか
- secretをどこから渡すか
- 失敗時にどこまで戻すか
- 成功を何で判定するか
最も危険な一工程だけを選び、最初のautomation候補にします。
理解チェック
- DevOpsをfeedback cycleとして説明できる
- source、artifact、configurationを区別できる
- testしたartifactをそのまま昇格させる理由を説明できる
- deploy前にrollbackと観測方法を決められる
次に読む
DevOps学習ロードマップからDocker、CI/CD、IaC、Kubernetesへ進みます。