デプロイメントTips¶
デプロイメントを効率化するためのヒントとコツを記載します。
ゼロダウンタイムデプロイメント¶
サービスを停止することなくデプロイするための手法を記載します。
ローリングデプロイメント¶
# docker-compose.yml でのローリング更新例
services:
app:
image: myapp:latest
deploy:
replicas: 3
update_config:
parallelism: 1
delay: 10s
order: start-first
ヘルスチェック¶
デプロイ時のヘルスチェック設定について記載します。
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
環境変数の管理¶
環境ごとの設定管理のベストプラクティスを記載します。
.env ファイルの活用¶
# .env.example
DATABASE_URL=postgresql://localhost:5432/myapp
API_KEY=your_api_key_here
DEBUG=false
Secretsの管理¶
機密情報の安全な管理方法について記載します。
CI/CD パイプライン最適化¶
CI/CDパイプラインの最適化のコツを記載します。
キャッシュの活用¶
# GitHub Actions でのキャッシュ例
- name: Cache node modules
uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
並列実行¶
テストやビルドの並列実行による高速化について記載します。
デプロイ前チェックリスト¶
デプロイ前に確認すべき項目のチェックリストを記載します。
[ ] テストがすべて通過している
[ ] セキュリティスキャンが完了している
[ ] データベースマイグレーションが準備できている
[ ] ロールバック手順が確認済み
[ ] 監視アラートが設定済み
ロールバック戦略¶
問題が発生した際のロールバック手順について記載します。
自動ロールバック¶
# Kubernetes でのロールバック例
apiVersion: apps/v1
kind: Deployment
spec:
progressDeadlineSeconds: 600
revisionHistoryLimit: 10
手動ロールバック¶
緊急時の手動ロールバック手順について記載します。
デプロイメント履歴管理¶
デプロイメント履歴の管理方法について記載します。
タグ管理¶
# バージョンタグの作成
git tag -a v1.0.0 -m "Release version 1.0.0"
git push origin v1.0.0
リリースノート¶
リリースノートの作成方法について記載します。