Skip to main content

 

アプリケーションライフサイクルを管理する

 

 

OutSystems

Pivotal Cloud Foundryにアプリケーションをデプロイする

はじめに以下の条件を確認してください。

以下のセクションでは、PCF(Pivotal Cloud Foundry)ホスティングテクノロジーの使用に関する具体的な情報とPCFへのアプリケーションのパブリッシュに関する詳細手順を紹介します。

## SSLオフロード

エンドツーエンドSSLおよびSSLオフロードの手順に従っていることを確認してください。OSSYS_PARAMETERデータベースに新しいレコードを追加する手順については従う必要はありません。この手順はコンテナへのデプロイ時にプラットフォームによってすでに実行されています。
この手順に従ってアプリケーションをパブリッシュしない場合、アプリケーションの再パブリッシュとPCFへの再プッシュが必要になります。

アプリケーションをPCFへパブリッシュする

アプリケーションをパブリッシュする前に、PCFにデプロイにするための 「システム要件」に基づき、Pivotal Apps Managerでご利用の「org」に推奨ドメインエントリが2つあることを確認してください。

こうした指示は、「コンテナにアプリケーションをパブリッシュする」で説明されている一般的な手順に基づいています。この手順を読んでから進めるようにしてください。

1. アプリケーションをコンパイルしてバンドルを生成する

パブリッシュプロセスを開始して、アプリケーションバンドルを生成するには、以下の手順を実行します。

  1. Service Centerで[Factory] > [Applications] に進み、アプリケーション名をクリックします。

  2. [Publish]ボタンをクリックします。

Service Centerによって表示される進捗段階には、アプリケーションのコンパイル、バイナリの生成および後でコンテナイメージの作成に使用するアプリケーションバンドルの作成などがあります。

バンドルの作成後、Service Centerは最後のログメッセージで以下の2つの重要な情報を表示します。

生成されたバンドルのファイル名とフルパス(ZIPファイル)

このファイルは、アプリケーションをコンテナにデプロイする第2段階で使用されます。ファイル名は以下のテンプレートに従って定義されます。<アプリケーションキー>_<操作ID>.zip

例:
\\twoflower\luggage\bundles\07897a77-3f58-4e5b-b926-a48605c0b6d0_dab321f9-72e8-44e8-ae5c-2c8212314cf6.zip

デプロイの準備手順で要求される結果ファイル名とフルパス
手動またはなんらかの自動化ツールで実施する必要のあるデプロイの準備手順の結果ファイルの名前とパス。このメッセージは手順3で対処する予定のため、ここでは無視してください。

2. アプリケーションをPCFにプッシュする

この第2段階で、オペレータ(人間または自動化されたデプロイツール)はOutSystemsプラットフォームのスコープ外で一連の操作を実行する必要があります。

以下の手順を実行してアプリケーションをPCFにプッシュします。

  1. アプリケーションバンドルのZIPファイルの内容を任意のフォルダに解凍します。

  2. private.keyファイルをプラットフォームのインストールフォルダ(通常、C:\Program Files\OutSystems\Platform Server)からアプリケーションバンドル内のsecretsフォルダにコピーします。

  3. App.configファイルをデプロイメントゾーン用に構成された「Output Configs Toフォルダ」内のアプリケーションのフォルダ(結果ファイル名と同じ名前のフォルダ)からアプリケーションバンドル内のconfigsフォルダにコピーします。

  4. PowerShellを使用して対象フォルダに進み、以下のコマンドを実行します。

    cf push --no-start

    これにより、アプリケーションがPCFにプッシュされ、起動準備を整えます。コマンドが正常に実行されると、出力には、OutSystemsアプリケーション名に基づくPCF上のアプリケーション名が含まれます。

重要: アプリケーションの起動はPivotal Apps Managerからではなく、常にコマンドラインから行います。コマンドラインは、アプリケーション起動時の前提条件を確実にすべて満たすことができる唯一の方法です。

3. デプロイの準備手順の結果ファイルを作成する

第2手順で、Service Centerはアプリケーションをプッシュした後、デプロイの準備手順の結果ファイルを要求します。このため、要求された名前でデプロイの準備手順の結果ファイルを作成する必要があります。このファイルの内容は、アプリケーションをPCF手順にプッシュした結果によって異なります。

デプロイの準備に成功
デプロイメントゾーンの構成されたResultフォルダに要求された名前(.preparedone拡張子)の空のファイルを作成します
デプロイの準備に失敗

正しいファイル名と.preparedone拡張子の付いたJSONファイルを作成します。内容は次に提示するテンプレートに従います。 — ユーザーが定義した以下のエラーメッセージが含まれます。

{"Error":{"Message":"This user-defined error message will appear in the progress log messages in Service Center."}}

次に、デプロイメントゾーンの構成されたResultフォルダに結果ファイルをコピーします。

このファイルは、「Resultフォルダ」にコピーする必要があります(ビルドメッセージに表示される同じフォルダ)。ファイル名は要求された名前に正確に一致し、.preparedone拡張子を付ける必要があります。

例:
\\twoflower\luggage\results\07897a77-3f58-4e5b-b926-a48605c0b6d0_dab321f9-72e8-44e8-ae5c-2c8212314cf6.preparedone

4. コンテナを起動する

この第4段階で、オペレータ(人間または自動化されたデプロイツール)があらかじめプッシュされたアプリケーションを起動します。

以下の手順を実行してコンテナを起動します。

  1. PowerShellで以下のコマンドを実行します。

    cf start <アプリ名>

    <アプリ名>を以前実行したcf pushコマンドの出力で指定されたPCFのアプリケーション名で置き換えます。

    操作が成功すると、アプリケーションの状態が出力されます。

  2. PowerShellで以下のコマンドを発行してコンテナ内部のアプリケーションが動作していることを確認してください。

    cf app <アプリ名>

    アプリケーションの状態が出力されます。

5. コンテナのネットワークルーティング規則を定義する

第5段階でオペレータは、デプロイメントゾーンアドレスを使用してコンテナ内部のアプリケーションにアクセスできるようにします。

まず、PCFルータがアプリケーションモジュールに対するリクエストの処理方法を理解できるように、ルートマッピングを追加する必要があります。

  1. PCFUtils.psm1 PowerShellモジュールを任意のフォルダにダウンロードします。
    注記: このスクリプトを使用するには、PowerShellの実行ポリシーがUnrestrictedに設定されている必要があります。詳細については、 Microsoft社のドキュメントのドキュメントをご覧ください。

  2. PowerShellコンソールで、以下のコマンドを実行してモジュールをインポートします。

    <path>は、スクリプト用の任意の親フォルダに置き換えます。

  3. 同じPowerShellコンソールで、以下のコマンドを実行してアプリケーションの各モジュールのルートをPCFに追加します。

    以下のとおり置き換えます。

    • <bundle_path>をアプリケーションバンドルのZIPファイルへのパスで。
    • <app_name>を以前実行したcf pushコマンドの出力で指定されたPCFのアプリケーション名で。
    • <public_address>「PCFの要件」に記載されたメインのロードバランサとリバースプロキシのグローバルアドレスで。
    • <zone_address>を(「PCFの要件」でも記載されている)PCFゾーンアドレスで。

    要約すると、この機能はアプリケーションのモジュール名(<module_name_N>)をZIPファイルから取得し、各モジュール名について以下のコマンドを実行します。

    cf map-route <アプリ名> <グローバルアドレス> --path <モジュール名_N>
    cf map-route <app_name> <zone_address> --path <module_name_N>
    

操作が成功すると、コマンドによってアプリケーションの状態が出力されます。

さらに、内部ネットワーク以外で発生したリクエストがPivotal Cloud Foundryコンテナ内部で動作する別のOutSystemsアプリケーションモジュールにアクセスできるように、メインのロードバランサとリバースプロキシにルーティング規則の設定がいくつか必要になるでしょう。

PCFの例:PCFのルートを定義してIISのルーティング規則を設定する

IISを使用してコンテナで動作するアプリケーションに対するネットワークルーティングを実行する方法を確認するには、「PCFのルートを定義してIISのルーティング規則を設定する」をご覧ください。このドキュメントには、本シナリオで必要な最小限のルーティング規則の定義方法について説明しています。
最終的なルーティング構成はネットワークチームおよびDevOpsチームと検証するようにしてください。

アプリケーション用に構成されたデプロイメントゾーンアドレスと適用可能な場合はグローバルアドレスを使用して、アプリケーションモジュールがアクセス可能か確認してください。
たとえば、アプリケーションに「Directory」モジュールや「Employees」モジュールが含まれる場合、少なくとも<ゾーンアドレス>/Directoryおよび<ゾーンアドレス>/Employeesのアドレスでアクセスできる必要があります。公開アクセスを想定している場合は、<グローバルアドレス>/Directoryおよび<グローバルアドレス>/Employeesのアドレスでもアクセスできる必要があります。

6. デプロイ手順の結果ファイルを作成する

この段階でオペレータは、要求された名前でデプロイ手順のデプロイ結果ファイルを作成します。このファイルの内容は、コンテナを正常に開始できたかどうかによって異なります。

デプロイ成功
デプロイメントゾーンの構成されたResultフォルダに要求された名前(.deploydone拡張子)の空のファイルを作成します。
デプロイ失敗

正しいファイル名と.deploydone拡張子の付いたJSONファイルを作成します。内容は次に提示するテンプレートに従います。 — ユーザーが定義した以下のエラーメッセージが含まれます。

{"Error":{"Message":"This user-defined error message will appear in the progress log messages in Service Center."}}

次に、デプロイメントゾーンの構成されたResultフォルダに結果ファイルをコピーします。

このファイルは、アプリケーションのデプロイメントゾーンに構成されたResultフォルダ(ビルドメッセージに表示される同じフォルダ)に配置する必要があります。ファイル名は要求された名前に正確に一致し、.deploydone拡張子を付ける必要があります。要求されたファイル名はビルドメッセージにも表示されます。

例:
\\twoflower\luggage\results\07897a77-3f58-4e5b-b926-a48605c0b6d0_dab321f9-72e8-44e8-ae5c-2c8212314cf6.deploydone