変更管理
システム・アプリケーション・インフラなどへの変更を安全に、かつビジネス価値を損なわずに行うプロセス。
Gitによるソースコード管理だけじゃないので注意。
従来型
変更は「リスク」と見なされ、慎重な承認フロー(CAB: Change Advisory Board)で管理
手動プロセスが多く、スピードが犠牲になりがち
AWSのマネコンから設定とか
DevOps型
変更は「価値を届ける手段」として、自動化・継続デリバリー(CD)を通じて高速・安全に行う
「誰が変更するか」ではなく「どうすれば安全に自動化できるか」に焦点を当てる
手動承認よりも「テスト」「監査ログ」「ロールバック」の仕組みで安全性を担保
変更管理のベストプラクティス
IaC:インフラをコードとして定義することで、再現性やロールバック性を高める
Terraform
Ansible
CI/CD:自動化されたテストやビルド、デプロイにより、高速化・安全性向上
GitOps:Git上のソースが唯一の信頼できる情報源として取り扱う
Git
GitHub
Bitbucket
リリース戦略
ダークローンチ:ユーザには見えない形で、新機能をデプロイする
フィーチャーフラグ:機能のON/OFFを切り替えるフラグ。リリース後に新機能でトラブルが発生した場合、OFFにしてしまうことができる
カナリアリリース:一部の人にのみ新機能をリリースすることで、段階的に課題やバグを見つけていく