OutSystmsのインフラ構成は? プラットフォームの管理に必要な基礎知識を解説!(vol.28)

  • 公開日:
  • 最終更新日:

OutSystems 11を導入する際には、OutSystems社がホスティングするクラウド版を利用するか、インストーラーを使用して自社内環境のサーバーにオンプレミス版を構築して利用するかのいずれかのエディションを選択することができます。
オンプレミス版にはセキュリティ要件を満たしやすい社内環境に構築できるというメリットがありますが、定期的なサーバーアップデート作業が必要となります。オンプレミス版を選択する前にOutSystemsのサーバー構成を理解しておくことで、保守計画が立てやすくなり、OutSystemsの導入を成功に導くことができるでしょう。

本ブログ記事では、OutSystemsのオンプレミス版を導入検討している方に向けて、OutSystemsプラットフォームで必要なサーバー構成と各サーバーの役割について解説します。

OutSystems インフラの構成要素

OutSystemsのインフラには、次の2種類のサーバーが必要となります。

  1. アプリケーションの実行/デプロイ/管理などを取りまとめる「Platform Server
  2. アプリケーションのデータを保持する「データベースサーバー」

まずは、下図のDevelopment環境のサーバー構成を例に、OutSystemsのインフラについて理解を深めましょう。

  1. アプリケーションの実行/デプロイ/管理などを取りまとめる「Platform Server
    OutSystemsを導入するサーバーには、「Platform Server」というサーバー用のコンポーネントをインストールする必要があります。
    「Platform Server」は、アプリケーションの実行/デプロイ/管理などを取りまとめるサーバーです。コードの生成やアプリケーションサーバーへのデプロイ、スケジュールの実行やモバイルアプリのビルドなど、様々な役割を担います。
    開発者は専用の開発ツールを使用してPlatform Serverへアクセスし、アプリケーション開発を行います。また、Platform Serverの管理にはService Centerというアプリケーションを利用でき、環境の設定変更やアプリケーションの設定変更を行うことができます。
    「Platform Server」には、それが果たす機能を示す「サーバーロール」というものが存在します。「Front Endロール(FE)」、「Schedulerロール(Sche)」、「Deployment Controllerロール(DC)」の3つがあり、サーバーロールは兼任することができます。
    それぞれ、どのような役割を担うのか、解説します。

    • Front Endロール(FE)
      「Platform Server」がこのサーバーロールを担うと、開発したWebアプリケーションを実行するWebサーバー/アプリケーションサーバーとして機能します。Front Endロールを持つサーバーの能力によって、アプリケーションを利用するエンドユーザーへのパフォーマンスが影響されるため、環境の非機能要件(想定アクセス数やトランザクション数など)によってサーバーのスペックや台数を決定する必要があります。以後、「Front Endロール」はFEロールとします。
    • Schedulerロール(Sche)
      「Platform Server」がこのサーバーロールを担うと、アプリケーションによってトリガーされる Timer / Process / メールの送信 といった、非同期処理を実行するサーバーとして機能します。このロールは通常、Front Endロールを持つサーバーで有効になりますが、必要に応じて無効にすることも可能です。
    • Deployment Controllerロール(DC)
      Platform Server」がこのサーバーロールを担うと、アプリケーションをコンパイルしFront Endロールを持つサーバーにデプロイするサーバーとして機能します。環境に一つだけ必要です。アプリケーションがパブリッシュされた時に限り動作するため、環境の用途に応じてFront Endロールと兼任させることがあります。以後、「Deployment Controllerロール」はDCロールとします。
  2. アプリケーションのデータを保持する「データベースサーバー」Platform Server」の他に、アプリケーションのデータを保持するデータベースサーバーが必要です。
    このデータベースサーバーにはOutSystemsで開発したアプリケーションで利用するデータだけでなく、スケジュールや自動で収集されるログの設定、エンドユーザーや開発者アカウントの情報など、環境内で利用する様々なデータが格納されます。

OutSystems インフラを効率的に運用するポイント

OutSystemsでは通常、Development環境 / QA環境 / Production環境 の3環境を利用することができます。

本章では、これらの3環境を含めた下図のインフラ構成を例に、OutSystemsのインフラを効率的に運用するためのポイントを理解しましょう。

OutSystemsのインフラを効率的に運用するためのポイントは次の通りです。

  • LifeTimeで複数環境を効率よく管理する
    LifeTimeとは、OutSystemsの複数環境を横断的に管理する独立した環境です。
    専用のサーバーを用意し、LifeTime Management Consoleをインストールして利用します。
    LifeTime Management Consoleを使用することで開発者は僅か数ステップでアプリケーションを任意の環境にデプロイすることができるほか、各環境の開発者アカウントを統合管理することができます。
  • FEロールとDCロールを必要に応じて兼任させる
    DCロールはFEロールと比べると、その役割が機能するタイミングが限定されています。
    FEロールとDCロールを分けることは即ちサーバーを2台必要とすることになりますので、必要に応じて兼任させても良いでしょう。
    この例ではQA環境とProduction環境で、DCロールとFEロールを兼任させています。これはDevelopment環境と比べてデプロイの頻度が少ないためです。Development環境では開発者がアプリケーションを繰り返しデプロイするため、DCロールを独立させています。
  • データベースサーバーを複数環境で共同利用する
    上図の例では、Development環境とQA環境のデータベースを一つのサーバーに集約し、Production環境とLifeTime環境のデータベースをもう一つのサーバーに集約しています。
    各環境の物理データベースは分離する必要がありますが、データベースサーバー自体は共同で利用しても問題ありません。環境ごとに求められる非機能要件を検討した上で複数環境のデータベースを一つのサーバーに集約することで、効率的に運用できるでしょう。
  • ロードバランサー/ゾーン/クラスタ構成
    主にProduction環境では、求められる非機能要件に応じてFEロールのPlatform Serverを複数構成にするため、ロードバランサーによる分散機能も求められます。
    他にも複数ゾーンやデータベースクラスタなど、セキュリティや可用性などの観点から整理し、最適な環境を構成することができます。

まとめ

ここまで、OutSystemsのオンプレミス版を導入する上で欠かせない知識であるOutSystemsのサーバーの役割と、インフラを効率的に運用するためのポイントを解説して参りました。

ご紹介したサーバー構成はあくまで一例です。実際にOutSystemsの環境構築を行う際には、本ブログ記事でご紹介したOutSystemsの各サーバーロールを十分に理解した上で、OutSystemsの運用で求められる非機能要件を十分に検討し、インフラ構成を決定していきます。後から構成変更を行うことはできますが、今後の利用計画に即したインフラ構成を組むことができれば、運用負荷を抑えることができるでしょう。

弊社はOutSystemsのオンプレミス版の環境構築の支援実績があるほか、内製化支援や共通機能開発など、OutSystemsの初期導入をサポートする様々なサービスメニューをご用意しております。
ローコード開発のはじめの一歩を、電通総研と一緒に踏み出してみませんか?

電通総研のOutSystems関連サービスページ:https://itsol.dentsusoken.com/outsystems/service/

本ブログは、2024年5月1日時点の情報をもとに作成しています。
OutSystemsに関する詳しいお問い合わせは、弊社Webサイトからお問い合わせください。
https://itsol.dentsusoken.com/outsystems/inquiry/