Skip to main content

 

 

 

 
Language:

 

 
 
 
OutSystems

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

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

負荷が高いファーム環境

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

プロセスの概要については、こちらの記事をご覧ください。

前提条件

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

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

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

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

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

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

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

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

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

1.コマンドラインで、rootユーザーとして以下のコマンドを実行します。
# /opt/outsystems/platform/serviceconfigurator.sh -interactive 1.OutSystems Scheduler Serviceを無効にします。有効にする必要があるサービスには「Y」と応答し、OutSystems Scheduler Serviceも含め無効にする必要があるサービスにはすべて「N」と応答します。 1.OutSystems Scheduler Serviceが自動的に停止します。以下のコマンドを実行して、サービスが停止したことを確認します。
# service outsystems status SCHEDULER

出力は以下のようになる必要があります。  
`OutSystems Scheduler Service  -  DISABLED`

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.コマンドラインで、rootユーザーとして以下のコマンドを実行します。
# /opt/outsystems/platform/serviceconfigurator.sh -interactive 1.OutSystems Scheduler Serviceを有効にします。OutSystems Scheduler Serviceも含め有効にする必要があるサービスには「Y」と応答し、無効にする必要があるサービスにはすべて「N」と応答します。 1.以下のコマンドを実行して、OutSystems Scheduler Serviceを起動します。
# service outsystems start SCHEDULER 1.以下のコマンドを実行して、サービスが起動したことを確認します。
# service outsystems status SCHEDULER

出力は以下のようになる必要があります。  
`OutSystems Scheduler Service - RUNNING`

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

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

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

1.コマンドラインで、rootユーザーとして以下のコマンドを実行します。
# service outsystems restart DEPLOYER

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

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

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

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

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

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

1.コマンドラインで、rootユーザーとして以下のコマンドを実行します。
# /opt/outsystems/platform/serviceconfigurator.sh -interactive 1.OutSystems Scheduler Serviceを有効にします。OutSystems Scheduler Serviceも含め有効にする必要があるサービスには「Y」と応答し、無効にする必要があるサービスにはすべて「N」と応答します。 1.以下のコマンドを実行して、OutSystems Scheduler Serviceを起動します。
# service outsystems start SCHEDULER 1.以下のコマンドを実行して、サービスが起動したことを確認します。
# service outsystems status SCHEDULER

出力は以下のようになる必要があります。  
`OutSystems Scheduler Service - RUNNING`