OutSystems Platformはどのように水平方向への拡張性を提供していますか?

水平方向への拡張性を実現するため、OutSystems Platformでは、あらゆる本番環境に追加のフロントエンドサーバーおよびネットワークゾーンを簡単に追加できるようにしています。
高可用性の提供と併せて、この機能は以下のシナリオにおいて役立ちます。

  • ユーザー数および利用の増加に伴いユーザー負荷が増加した
  • ビジネスロジックの複雑性/負荷が増加した
  • バッチ処理の量が増加した
  • データの量またはトランザクションの数が増加した(データベースクラスタリング)

追加のフロントエンドサーバーのデプロイ

OutSystems Platformはファーム構成内に追加のフロントエンドサーバーを自動的にデプロイし、その環境のアプリケーションを新しいフロントエンドサーバーに自動的に同期させます。ファーム内のすべてのフロントエンドサーバーのログは、同一の集中型リポジトリに記録され、効果的なモニタリングとトラブルシューティングを可能にします。

環境へのフロントエンドサーバーの追加は、非常に簡単なインストールと設定だけで行えます。水平方向への無限の拡張性を活用して、フロントエンドサーバーを必要なだけ追加できます。1クリックで、OutSystems Platformがアプリケーションを新しいフロントエンドサーバーに自動的に同期させます。

即時インストールと自動デプロイ

フロントエンドサーバーが構成されると、OutSystems Platformのデプロイメントエンジンが、すべてのアプリケーションをそれらのサーバーに自動的にデプロイします。ユーザーデータやセッション情報が1台のサーバーにローカルで保存されることはありません。これにより、すべてのユーザーリクエストをいずれかのサーバーに配信することが可能になり、システムの冗長性と可用性を向上させることができます。万一、デバイスの突発的な故障が発生した場合は、いずれかのインストール済みのサーバーと簡単かつ安全に交換できます。

一元的な管理

ファーム内のすべてのフロントエンドサーバーのログは、同一の集中型リポジトリに記録され、サービスセンターにおける効果的なモニタリングとトラブルシューティングを可能にします。

自動化されたリソースの最適化と管理

分散化されたシステムの構築と管理を行う際には、開発のベストプラクティスを実践し、リソースの消費を最小限に留め、常にリソースの空きを確保しておくことが開発者に求められます。残念なことに、リーダーをCloseし忘れるというような些細なミスが完全なシステムダウンを招くことがあります。

OutSystems Platformは、このようなことを自動的に管理し、リーダー、コネクション、トランザクションがopenのままにならないようにするとともに、すべてのリクエストで最小限のメモリーが使用されるようにします。さらに、OutSystems Platformは、システムがリソースを最大限に活用できるように賢く利用します。これだけで、人為的ミスを防止し、システムダウンのリスクを劇的に減らすことができます。このように、パフォーマンス最適化に関する技術的知識や高価な分散型システムがなくても、拡張性に優れたシステムを構築できるようにしています。

高可用性

ロードバランサーは、入力されるアプリケーショントラフィックを複数のフロントエンドサーバーに自動的に分配し、リクエストの負荷を分散させます。また、本番環境内の異常なフロントエンドサーバーを検出し、復旧するまで、正常なインスタンスにトラフィックを自動的に切り替えます。このようにして、すべてのアプリケーションの耐障害性を高めています。

OutSystems Platformは、モバイルユーザーおよびWebユーザーのセッションを、セッションデータベース内に保存し、同一ユーザーからの複数のリクエストをファーム環境内のいずれかのフロントエンドサーバーが処理できるようにしています。セッションデータベースの要素は、専用のデータベーススキーマ上で構成され、パフォーマンスと運用の向上を実現しています。当プラットフォームは、関連するWASスタック(.NetまたはJava)のネイティブのセッション管理サービスを使用しています。

ネットワークゾーン管理

企業は各アプリケーションのセットに対し、複数のフロントエンドサーバーと複数のネットワークゾーンを持つことができます。それらのフロントエンドサーバーを、さまざまなネットワーク(インターネット、イントラネット、およびエクストラネット)に分散させて、アプリケーションはOutSystems Platformのサービスセンター管理コンソールで設定したように、フロントエンドサーバーの異なるクラスターにデプロイすることができます。

たとえば、「内部アプリケーションを内部ネットワーク上で実行し、WebサイトはDMZで実行する」というような使い方ができます。