はじめて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

小さな静的サイトなら次から始められます。

  1. pull requestでbuildとtest
  2. mainの特定commitからartifact作成
  3. artifactを保存
  4. productionへdeploy
  5. URLへsmoke test
  6. commitとdeploymentを関連付ける

演習: 手動deployを分解する

自分が行っている手動deployを、入力、処理、出力、失敗時の状態へ分けます。

  • どのcommitを出すか
  • 誰が承認するか
  • build結果をどう固定するか
  • secretをどこから渡すか
  • 失敗時にどこまで戻すか
  • 成功を何で判定するか

最も危険な一工程だけを選び、最初のautomation候補にします。

理解チェック

  • DevOpsをfeedback cycleとして説明できる
  • source、artifact、configurationを区別できる
  • testしたartifactをそのまま昇格させる理由を説明できる
  • deploy前にrollbackと観測方法を決められる

次に読む

DevOps学習ロードマップからDocker、CI/CD、IaC、Kubernetesへ進みます。