Skip to main content

 

 

 

 
Language:

 

 
 
 
OutSystems

負荷が高いOutSystemsファームでのアプリケーションの分散デプロイ

OutSystemsでは、アプリケーションの新しいバージョンをダウンタイムなしでホットデプロイします。ただし、負荷が高いファーム環境の場合は、アプリケーションの分散デプロイを実行することを推奨します。

この記事では、負荷が高いOutSystemsファーム環境にアプリケーションをデプロイする手順について説明します。デプロイプロセスは既存のフロントエンド全体で負荷分散されるため、アプリケーションのダウンタイムが確実に回避されます。

負荷が高いファーム環境

この操作は、オンプレミスまたはプライベートクラウド環境にのみ適用されます。

前提条件

この手順を実行するには、以下の要件を満たす必要があります。

  • オンプレミスまたはプライベートクラウド環境が存在する。

  • アプリケーショントラフィックをフロントエンド間で分散するためのネットワーク負荷分散メカニズムが存在する。

  • Service CenterやOSレベル(サービス管理コンソール)の管理者権限を持つユーザーが操作する。

  • すべてのサーバーがOutSystems Platform Serverバージョン4.2以降を実行している。

概要

全体の手順を以下に示します。

  • フロントエンドサーバーを2つのグループに分けます。

  • 一方のグループのフロントエンドはロードバランサによって無効にされるため、新しいリクエストを受信していません。

  • このとき、トラフィックを受信していないフロントエンドにアプリケーションがデプロイされます。

  • デプロイが完了すると、すでに新しいアプリケーションが存在しているフロントエンドにのみトラフィックをリダイレクトするようにロードバランサが構成されると同時に、残りのフロントエンドにアプリケーションがデプロイされます。

  • すべてのフロントエンドで新しいバージョンのアプリケーションが実行されるようになると、すべてのフロントエンドにトラフィックをリダイレクトするようにロードバランサが構成されます。

増分デプロイを実行することによって、このプロセスではダウンタイムが確実に回避されます。

この手順では、2つのグループのフロントエンドサーバーを識別する必要があります。

  • アップデート中のフロントエンド: このグループのサーバーは最初にデプロイプロセスを実行し、このグループのフロントエンドへのエンドユーザーのアクセスは無効になります。

  • 読み込み済みのフロントエンド: このグループのサーバーでは、アプリケーションにエンドユーザーがアクセスしているため、アプリケーションのデプロイプロセスを実行できません。

以下の図は、ファーム環境でこれらのフロントエンドのグループを示しています。この環境では、負荷分散メカニズムを介してエンドユーザーがアプリケーションにアクセスします。

ロードバランサ経由でアクセスされるフロントエンド

環境でアプリケーションのセグメント化にデプロイメントゾーンが使用されている場合、ゾーンごとにアップデート中のフロントエンドのグループと読み込み済みのフロントエンドのグループを考慮する必要があります。その場合、各ゾーンを個別のファーム環境として捉えます。

デプロイメントゾーン

はじめに

  • フロントエンドをアップデート中のフロントエンド読み込み済みのフロントエンドという2つのグループに分類します。

  • デプロイの実行時に参照できるようにフロントエンド/マシンの実際の名前を注釈として手順に付けます。

負荷が高い環境へのアプリケーションのデプロイ

以下の手順に従って、アプリケーションの分散デプロイを実行します。

手順1.すべてのフロントエンド(アップデート中のフロントエンドと読み込み済みのフロントエンド)でOutSystems Scheduler Serviceを無効にする

各フロントエンドサーバーで以下の手順を実行します。

1.Windowsのサービス管理コンソール(services.msc)を起動します。 1.OutSystems Scheduler Serviceを停止して無効にします。このサービスが停止して無効になっていることを確認します。

OutSystems Scheduler Serviceは、指示されるまで起動しないでください。

手順2.ロードバランサで、読み込み済みのフロントエンドへのトラフィックを設定する

1.ロードバランサの管理ツールにアクセスします。 1.アップデート中のフロントエンドからアプリケーショントラフィックを削除します。読み込み済みのフロントエンドがエンドユーザーからのトラフィックを受信する唯一のフロントエンドである必要があります。

読み込み済みのフロントエンドへのトラフィックの設定

手順3.読み込み済みのフロントエンドでデプロイを無効にする

1.環境のService Centerにアクセスします(https://<開発環境>/ServiceCenterなど)。 1.管理者権限でログインします。 1.[Administration » Servers]に移動します。読み込み済みのフロントエンドごとに、その詳細にアクセスし、[Disable]ボタンを押します。このアクションを実行するとデプロイメントサービスが無効になりますが、IISは引き続き実行され、エンドユーザーはアプリケーションを利用できます。

手順4.アップデート中のフロントエンドにアプリケーションをパブリッシュする

1.いずれかのアップデート中のフロントエンドから直接Service Centerコンソールにアクセスします(https://<フロントエンドサーバー>/ServiceCenterなど)。 1.パブリッシュ権限でログインします。 1.[Factory]セクションに移動し、パブリッシュするファイル(.oap、.oml、または.osp)に応じて[Applications]、[Modules]、または[Solutions]を選択します。 1.ファイルをアップロードしてパブリッシュします。 1.パブリッシュが正常に完了するまでお待ちください。

このパブリッシュの間に、新しいアプリケーションバージョンに伴うデータベースのアップデートが実行されます。アップデートされたコードは残りのアップデート中のフロントエンドに自動的にデプロイされます。

手順5.アップデート中のフロントエンドでアプリケーションをテストする

アップデート中のフロントエンドサーバーで以下の手順を実行します。

1.アップデート中のフロントエンドから直接アプリケーションにアクセスします(https://<フロントエンドサーバー>/<アプリケーション>など)。 1.アプリケーションが利用可能になりアップデートされたことを確認します。

手順6.ロードバランサで、アップデート中のフロントエンドへのトラフィックを設定する

1.ロードバランサの管理ツールにアクセスします。 1.アプリケーショントラフィックの受信を開始するようにアップデート中のフロントエンドを設定します。 1.読み込み済みのフロントエンドからアプリケーショントラフィックを削除します。ここでは、アップデート中のフロントエンドがエンドユーザーからのトラフィックを受信する唯一のフロントエンドである必要があります。

アップデート中のフロントエンドへのトラフィックの設定

手順7.アップデート中のフロントエンドでOutSystems Scheduler Serviceを起動する

アップデート中のフロントエンドサーバーで以下の手順を実行します。

1.Windowsのサービス管理コンソール(services.msc)を起動します。 1.OutSystems Scheduler Serviceのスタートアップの種類を[Automatic]に設定し、サービスを開始します。

手順8.読み込み済みのフロントエンドでOutSystems Deployment Serviceを再起動する

OutSystems Deployment Serviceを再起動すると、すぐにすべてのアプリケーションが読み込み済みのフロントエンドに確実にデプロイされます。

読み込み済みのフロントエンドサーバーで以下の手順を実行します。

1.Windowsのサービス管理コンソール(services.msc)を起動します。 1.OutSystems Deployment Serviceを再起動します。

手順9.デプロイプロセスのステータスを確認する

1.環境のService Centerにアクセスします(https://<開発環境>/ServiceCenterなど)。 1.管理者権限でログインします。 1.[Monitoring » Environment Health]に移動します。 1.読み込み済みのフロントエンドごとに[Deployment]サービスの[detail]リンクをクリックして、そのスレッドのステータスを確認します。すべてのスレッドのステータスが[Idle]または[Sleeping]になるまでお待ちください。このステータスになると、読み込み済みのフロントエンドへのデプロイプロセスは完了しています。

手順10. ロードバランサで、すべてのフロントエンドへのトラフィックを再設定する

1.ロードバランサの管理ツールにアクセスします。 1.アプリケーショントラフィックの受信を開始するように読み込み済みのフロントエンドを設定します。

手順11.読み込み済みのフロントエンドでOutSystems Scheduler Serviceを起動する

読み込み済みのフロントエンドサーバーで以下の手順を実行します。

1.Windowsのサービス管理コンソール(services.msc)を起動します。 1.OutSystems Scheduler Serviceのスタートアップの種類を[Automatic]に設定し、サービスを開始します。

他のスタックの手順については、こちらをご覧ください。