GitLab Advanced CI/CD - ハンズオンラボ: デプロイ戦略
開発プロセスの次のステップは、アプリケーションに適したデプロイ戦略を決定することです。すべてのユーザーに一度に変更をロールアウトするのはリスクの高い戦略です。なぜなら、エラーがすべてのユーザーに影響し、障害を引き起こす可能性があるからです。これを軽減するために、GitLab のデプロイ機能を活用できます。このセクションでは、アプリケーションにフィーチャーフラグを実装して、機能を段階的にロールアウトする方法を学びます。
完了までの推定時間: 15 分
目標
このラボの終了時点で、次のことができるようになります:
- GitLab のフィーチャーフラグ機能を使用する
タスク A. フィーチャーフラグを実装する
このタスクでは、GitLab のフィーチャーフラグ機能を使用して、アプリケーションにフィーチャーフラグを実装します。これにより、新機能を一部のユーザーに段階的にロールアウトし、問題が発生した場合の広範な影響のリスクを軽減できます。
フィーチャーフラグをセットアップして使用するために次の手順に従います:
Deploy > Feature flags に移動します。
New Feature Flag を選択します。
名前に
testを入力します。Type としてPercent rolloutを選択します。パーセンテージを 50% に設定し、Based on を Random に設定します。
Create feature flag を選択します。
フィーチャーフラグを作成した後、Configure を選択します。API URL と Instance ID フィールドをメモしておきます。後でコードの変更に必要になります。
index.jsファイルを選択します。Edit > Edit in single file を選択します。
index.jsファイルで、既存のコードをすべて削除し、次のコードに置き換えます。your-instance-url と your-instance-id は先ほどメモした値に置き換えてください:const { initialize } = require('unleash-client'); const unleash = initialize({ url: 'your-instance-url', appName:'production', instanceId: 'your-instance-id' }); setInterval(() => { if (unleash.isEnabled('test')) { console.log('Toggle enabled'); } else { console.log('Toggle disabled'); } }, 1000);Commit changes を選択し、適切なコミットメッセージを追加して Commit changes を選択します。
このコードは継続的に実行され、フィーチャーフラグトグルが有効か無効かを確認しようとします。50% のユーザーに対して有効になっているため、このコードを実行するとおよそ半分の確率で有効と表示されます。
これをテストするために、スクリプトの実行テストを行います。
Build > Pipeline Editor を選択します。
.gitlab-ci.ymlファイル全体を次のコードに置き換えます:default: image: node:latest stages: - test test_flag: stage: test script: - npm i unleash-client - node index.jsCommit changes を選択します。
変更をコミットした後、左サイドバーで Build > Pipelines を選択します。
test_flagジョブを選択します。このジョブが true を出力したり false を出力したりすることを観察します。これは、フィーチャーフラグが 50% の確率でアクティブになっているためです。
ラボガイドの完了
このラボ演習が完了しました。このコースの他のラボガイドを参照できます。
ご提案は?
ラボへの変更をご希望の場合は、マージリクエストで変更内容を送信してください。
