Nolioが彼らのDevOpsのベストプラクティスに関するシリーズの最初のビデオで言っていることによれば、ユーザーの一部を新しい機能に目を向けさせたことで、企業は "Canary Deployment"を継続的デリバリの一部として使って、稼働中のソフトウェアをテストしている。"Canary Deployment"は一種の増分リリースで、ソフトウェアの新バージョンをその対応する稼働中のバージョンと並んでデプロイすることで実現される。ソフトウェア製品を並べて、複数のバージョンを走らせるには、ソフトウェアは、特にその構成と完璧な自動デプロイができるように設計されている必要がある。
"Canary Deployment"における技術的挑戦を克服したことで、デプロイプロセスのリスクを減らし、A/Bテストとプリエンプティブなパフォーマンステストできるようになる。A/Bテストにより、ほとんどのユーザーの使用感を変えることなく新しい機能をテストできる。同様に、パフォーマンステストは、全体としてユーザーベースにほとんど影響を与えない。
- ビルドによる成果物、テストスクリプト、設定ファイル、デプロイマニフェストを含んだデプロイ用の成果物を準備する。
- ロードバランシングから"Canary" サーバーを除く。
- "Canary" アプリケーションをアップグレードする(ドレインとデプロイ)。
- アプリケーションの自動テスト。
- ロードバランシングに"Canary" サーバーを戻す(接続性とサニティチェック)。
- もし"Canary" テストがライブ使用で成功したら残りのサーバーをアップグレードする(失敗したらロールバックする)。