スケーリング、高可用性、およびトラフィック管理
アプリが Code Engine にデプロイされると、そのアプリはアクセス可能になり、テストおよび実動でも使用できるようになります。 Code Engine には、コンテナー化されたワークロードのためのサーバーレス・プラットフォームが用意されているため、ランタイムの詳細のほとんどは Code Engine によって自動的に管理されます。 ただし、詳細の多くは制御できます。
アプリのスケーリング
Cloud Foundryで作業しているときに、パフォーマンス・メトリックまたは日時に応じてアプリ・インスタンスを自動的に追加および削除できるようにする自動スケーリング機能をセットアップして使用した可能性があります。 対照的に、Code Engine はデフォルトでアプリケーションを自動スケーリングします。Code Engine は、アプリケーションを最大 10 個のランタイム・インスタンス (デフォルト) にスケール・ダウンし、ゼロにスケールダウンします (アプリケーションが使用されていないときにリソースを消費しないことを意味します)。
これらの設定は、Code Engine の制限と割り当て量内で編集できます。 0 (ゼロ) の最大スケールは、必要に応じてアプリを可能な最大までスケーリングします。一方、1の最小スケールは、アプリケーションの少なくとも 1 つのインスタンスを実行し続けます。 並行性と要求タイムアウトを調整することで、必要に応じて自動スケーリング機能を調整できます。
詳しくは、アプリケーション・スケーリングの構成 を参照してください。
高可用性
高可用性 (および災害復旧) の側面については、Cloud Foundry と Code Engine は類似しています。
- 同時要求を処理するためのベスト・プラクティスに従います。
- アプリのインスタンスが少なくとも 2 つまたは 3 つ稼働していることを確認してください。
- マルチゾーン・リージョン (MZR) の使用可能なゾーンでアプリ・インスタンスを実行します。
- グローバル・レベルで高可用性を実現するには、複数の MZR にデプロイされたアプリ・インスタンスの前に グローバル・ロード・バランサー (GLB) を使用します。
トラフィック管理とローリング更新
Cloud Foundry 上で新バージョンをデプロイする際にアプリを利用可能な状態に保つには、 ローリング・アップデートまたはゼロダウンタイム・デプロイメント用の特別なCLIコマンド・オプションを使用する。 Code Engine を使用すると、ローリング更新が自動的に実行されます。 新しいアプリ・リビジョンの準備ができると、トラフィックは古いアプリから新しいリビジョンに移動されます。
ブルーグリーン デプロイメントを実行し、トラフィックを古いアプリから新しいリビジョンに徐々に移動するには、 Cloud Foundry での 手動介入が必要でした。 Code Engine では、基礎となる Kubernetes 層と Knative 層に組み込まれた機能を使用できます。
ブログ記事「 Blue-green deployment with IBM Cloud Code Engine and Knative 」では、Knative CLIコマンドでアプリを更新し、トラフィックがリビジョン間で分割されるように設定する方法を紹介している。
bluegreen という名前のアプリと、 rev-old と rev-new という2つのリビジョンがあるとすると、次のコマンドはトラフィックを80/20に分割します。
kn service update bluegreen --traffic rev-old=80 --traffic rev-new=20
割り当てられたパーセンテージを調整することにより、最初に一部のトラフィックで新しいコード・バージョンをテストし、コードの準備ができたら、実動で改訂を実行できます。
次のステップ
- マイグレーションを開始するだけですか? 入門をチェックアウトします。
- Cloud Foundry の用語を Code Engine と比較してください。
- ローカル・ビルド・チュートリアルを使用して Code Engine を試します。
- アプリケーションはサービス・バインディングを使用しますか? サービス・バインディングのマイグレーションをチェックアウトします。
- スケーリング、高可用性、およびトラフィック管理 (現行ページ)
- Cloud Foundry コマンドと同等の Code Engine を見つけます。
- まだご不明な点がありますか? Cloud Foundry アプリケーションの Code Engine FAQ へのマイグレーションを試してください。
その他の情報
- Code Engine 料金について説明します。
- 他の Code Engine チュートリアルを試してください。
- 他の Code Engine のトピックを探索します。