SAE は、MSE のマイクロサービスガバナンス機能と統合して、アプリケーションの効率的な管理を支援します。ここでは、マイクロサービスガバナンスを有効にし、グレースフルスタートとグレースフルシャットダウンを設定する方法について説明します。
概要
マイクロサービスガバナンス
Serverless App Engine (SAE) は Microservices Engine (MSE) と統合され、グレースフルな起動とシャットダウン、トラフィックガバナンス、メッセージのカナリアリリース、エンドツーエンドのトレース、インテリジェントなサーキットブレーキング、縮退ポリシー、同一ゾーンの優先ルーティングなど、マイクロサービスガバナンス機能を提供します。これらの機能により、サービスの応答性と安定性が向上し、アーキテクチャ管理が簡素化されます。
グレースフルスタートとグレースフルシャットダウン
このセクションでは、グレースフルスタートとグレースフルシャットダウンについて説明します。その他のマイクロサービスガバナンス機能については、「マイクロサービスガバナンス」をご参照ください。
グレースフルスタート
デプロイ、スケールアウト、スケールイン、再起動などの操作は、オンラインアプリケーションでは一般的です。マイクロサービスアーキテクチャでは、プロバイダーサービスは、データベース接続プールのウォームアップなどの初期化タスクをまだ実行している場合でも、レジストリに登録されるとすぐにトラフィックを受信できます。高トラフィックのマイクロサービスアプリケーションでは、インスタンスが完全に準備が整う前にトラフィックを受信することを防ぐために、グレースフルスタートを有効にします。
グレースフルシャットダウン
実行中のアプリケーションを更新する際、プロセスはクライアントに対してシームレスであり、ビジネスリクエストに影響を与えないようにする必要があります。高並行性のマイクロサービス環境では、プロバイダーインスタンスが突然シャットダウンすると、コンシューマーアプリケーションはオフラインステータスを検出する前にリクエストをルーティングし続け、エラーやトラフィックの損失を引き起こす可能性があります。デプロイ、停止、ロールバック、スケールイン、またはリセット中に適切なシャットダウンを確実にするために、グレースフルシャットダウンを設定します。
前提条件
この機能は Java アプリケーションでのみ利用可能です。
Standard Edition のアプリケーションでは、MSE マイクロサービスガバナンスの Professional Edition または Enterprise Edition をアクティベートする必要があります。
重要Standard Edition の SAE アプリケーションで MSE のマイクロサービスガバナンス機能を使用する場合、MSE に対して別途料金が発生します。
Professional Edition のアプリケーションでは、MSE マイクロサービスガバナンスの Enterprise Edition をアクティベートする必要があります。
重要Professional Edition の SAE アプリケーションで MSE のマイクロサービスガバナンス機能を使用しても、追加料金は発生しません。
マイクロサービスガバナンスの Professional Edition をアクティベートしている場合は、Enterprise Edition にアップグレードする必要があります。
設定ページへのアクセス
設定ページへのアクセス方法は、シナリオによって異なります:
アプリケーションの作成
SAE コンソールにログインします。左側のナビゲーションペインで、[Application Management] > [Application List] をクリックします。リージョンとネームスペースを選択し、Create Application をクリックします。
Basic Information ページでパラメーターを設定し、次のステップ : 詳細設定 をクリックします。
実行中のアプリケーションの変更
警告アプリケーションを再デプロイすると、アプリケーションは再起動されます。 業務中断などの予測できないエラーを防ぐため、オフピーク時にアプリケーションをデプロイすることを推奨します。
SAE コンソールにログインします。左側のナビゲーションペインで、[Application Management] > [Application List] をクリックします。リージョンとネームスペースを選択し、対象アプリケーションの名前をクリックします。
アプリケーションの 基本情報 ページで、Deploy Application をクリックします。
停止中のアプリケーションの変更
SAE コンソールにログインします。左側のナビゲーションペインで、[Application Management] > [Application List] をクリックします。リージョンとネームスペースを選択し、対象アプリケーションの名前をクリックします。
アプリケーションの 基本情報 ページで、[Modify Application Configurations] をクリックします。
[Microservices Governance] セクションを見つけて展開し、以下の手順に従ってください。
マイクロサービスガバナンスの設定
マイクロサービスガバナンスの有効化
[Microservices Governance] セクションで、マイクロサービスガバナンスをオンにします。
グレースフルスタートとグレースフルシャットダウンの設定
グレースフルスタートの設定
マイクロサービスガバナンスを有効にした後、[Microservices Governance] セクションでグレースフルスタートを設定します。
グレースフルスタート機能を有効にします。
[少量トラフィックのプリフェッチ時間]と[遅延登録]を設定します。
パラメーター
説明
[小トラフィックプリフェッチ時間 (秒)]
トラフィックウォームアップメカニズムは、新しいノードへのトラフィックを徐々に増加させ、Java アプリケーションにおけるコールドスタートのパフォーマンスへの影響を緩和し、全体的な応答時間 (RT) の急上昇を防ぎます。ウォームアッププロセスは指定された期間が経過すると自動的に終了し、その後ノードは完全なトラフィック負荷を処理します。
[遅延登録]
指定された期間、サービス登録を遅延させます。アプリケーションが起動時に時間のかかる非同期タスクを実行する場合、このパラメーターを使用して新しいノードがトラフィックの受信を開始するタイミングを遅らせます。
重要遅延登録期間を 0 より大きい値に設定した場合、アプリケーションのデプロイに readiness probe を設定する必要があります。パスを
/healthに、ポートを 54199 に設定します。これにより、Kubernetes はサービスがレジストリに完全に登録された後にのみ、サービスが準備完了であると見なすようになります。これにより、サービスコンシューマーが利用可能なプロバイダーを見つけられない場合に発生する可能性のあるトラフィックのドロップを防ぎます。重要:アプリケーションが再起動ループに陥る可能性があるため、liveness probeを同じパス/healthに設定しないでください。たとえば、低トラフィックのウォームアップ期間を
120秒に、遅延サービス登録を0秒に設定します。
グレースフルシャットダウンの設定
マイクロサービスガバナンスを有効にすると、グレースフルシャットダウン機能はデフォルトで有効になります。
グレースフルシャットダウンにより、デプロイ、スケールイン、または再起動中にノードがオフラインになる前に、処理中のリクエストが完了することが保証され、突然のシャットダウンによるリクエストエラーを防ぎます。