プラットフォームアーキテクチャの概要

OutSystemsのアーキテクチャは、高性能ローコードを構成する欠かせない要素です。多層的なエコシステムでアプリケーションの高速開発を支え、システムオブレコードの拡張、複雑な社内業務プロセスの変革、クリティカルな基幹業務システムの書き換え、高性能かつ世界水準のモバイルアプリやWebアプリの開発を可能にします。

高性能ローコードプラットフォームのレイヤー 

OutSystemsでは、複数のデプロイオプションの中から自社のインフラやテクノロジースタックに最適なものを選択することができます。

  • クラウドネイティブ: OutSystems Developer Cloud(ODC)
  • クラウド対応PaaS: OutSystems 11 Cloud
  • セルフマネージドIaaS: OutSystems 11

クラウドベースのインフラでは、OutSystemsとユーザーが共同でクラウド環境を管理します。詳細については、オンラインヘルプの「OutSystems Cloudの共有責任モデル」をご覧ください。

目次

クラウドネイティブアーキテクチャ: ODC

OutSystems Developr Cloudプラットフォームの図 

ODCは、クラウドネイティブのアプリ開発プラットフォームです。戦略性の高いミッションクリティカルなニーズへの対応を可能にします。クラウドネイティブのインフラ、管理、運用のベストプラクティスを反映した最新のアーキテクチャにより、拡張性の高いモジュール型環境での開発やデプロイを実現します。一般的なローコードプラットフォームとは、主に次のような点で異なります。

  • 高性能: イノベーションを実現し、複雑さを問わず、ビジネスビジネスが求めるあらゆるアプリを開発することが可能です。クラウドネイティブを活用するうえで必要となるすべてが手に入ります。
  • セキュリティ: 開発から本番に至るまでのあらゆる段階で、重要なアセットを安全に管理できます。
  • 俊敏性: 開発したアプリを、技術的負債を発生させることなくスムーズかつ継続的にビジネスの変化に合わせて進化させられるという安心感を得られます。
  • 拡張性: 構築したエクスペリエンスがどのような変化にでも自信を持って対応することができます。

開発プラットフォームには、アプリの開発やデプロイを支援する機能を提供する複数のサービスが含まれています。どのプラットフォームサービスも、セキュアなWebサービスインターフェイスを備えた回復力の高いマイクロサービス設計を利用しています。開発者、DevOpsエンジニア、アーキテクトは、ODC StudioとODC Portalを使用してこれらのサービスを扱います。サービスはいずれもマルチテナントであり、自動リカバリや継続的アップグレードを利用できます。ODCでは、アプリケーションは常時稼働しており、可用性が高く、グローバルなコンテンツ配信ネットワーク(CDN)を利用しています。そのため、アプリケーションのコンテンツを世界中どこにでも低遅延で届けることができます。

ODCをホストするインフラは、非本番ステージであってもユーザーのアプリケーションに高いレジリエンスを提供できるよう、複数の可用性ゾーン(AZ)で稼働しています。APIゲートウェイで負荷分散が行われ、トラフィックは自動で健全なインスタンスにルーティングされます。ランタイムにもビルトインのアプリケーション健全性監視が用意されており、インスタンスに問題が発生した場合には、適宜シームレスに新しいインスタンスの立ち上げとリプレースが行われます。

Aurora Serverless V2の使用により、データベース内のデータは自動で3つのAZに同時書き込みされます。また、継続的に順次バックアップもされるので、バックアップの保存期間内であればどの時点にでも復元することができます。

OutSystems Developer Cloudのランタイムはプラットフォームから独立しており、デプロイされたアプリのホスティングや実行を行う複数の独立したステージによって構成されています。ステージが分離されているため、複数のチームが独自に並行してデリバリー作業を行うことができます。これが、ソフトウェア開発の継続的統合アプローチを支えているのです。

ODCは、コンテナを使用して自動的に拡張を行います。設定や構成を行う必要はありません。増加した負荷に対応できるようアプリケーションのインスタンスが追加でデプロイされ、可用性に基づきトラフィックが自動的に負荷分散されます。オートスケールは、アプリケーションの計算能力に限られた話ではありません。ODCデータベースも、負荷に応じて自動でスケールアップまたはスケールダウンされます。

OutSystemsでは、世界中に物理的に分散しているインフラにアプリケーションを自由にデプロイすることができます。OutSystemsをサブスクライブすると、ODCで使用するリージョンを以下から選択できます。

  • 北米/南米: 米国東部(バージニア北部)、南米(サンパウロ)、カナダ(中部)
  • 欧州/中東/アフリカ: 欧州(フランクフルト)、欧州(ロンドン)、中東(アラブ首長国連邦)、ヨーロッパ(アイルランド)、ヨーロッパ(テルアビブ)
  • アジアパシフィック: アジアパシフィック(ムンバイ)、アジアパシフィック(シンガポール)、アジアパシフィック(東京)、アジアパシフィック(シドニー)、アジアパシフィック(ソウル)、アジアパシフィック(ジャカルタ)

アプリケーションのパフォーマンスやデータ転送を最適化するためにも、できれば距離(および遅延)を低減できるリージョンにOutSystemsのインスタンスを配置するようにしてください。法規制への対応として、特定のデータを特定のリージョンにとどめておけるようなリージョン選択をすることもできます。

クラウドネイティブアーキテクチャ: OutSystems 11 Cloud

OutSystems 11 Cloud(OutSystems Cloud)はパブリッククラウドです。物理インフラは、Amazon Web Services(AWS)のデータセンターでホスティングされています。ユーザーごとに、専用の仮想プライベートクラウド(VPC)で保護された専用の仮想マシンのセットとデータベースインスタンスが存在します。VPCは、インターネットやAWSクラウド内の他の仮想ネットワークから論理的に分離されています。

OutSystems Cloudでは、AWSセキュリティグループのレイヤーをファイアウォールとして使用して、ユーザーの環境とインターネットの間で許可されるトラフィックを制御します。また、OutSystemsは悪意のあるトラフィックが実行中のアプリケーションにアクセスすることを防ぐWeb Application Firewall(WAF)を使用して各環境を保護します。進化するセキュリティの脅威への柔軟な対応、最大限の可用性、OutSystems製品の進化との互換性を確保するため、すべてのユーザーにこのWAFのポリシーが適用されます。

OutSystems Cloudの高可用性オプションを活用すると、フロントエンドサーバーを複数のAWSの可用性ゾーンにデプロイし、プライマリデータベースとは異なる可用性ゾーンにデータベースレプリカを設定することができます。

コンプライアンスの強化が必要な場合は、優れたコンプライアンスを備えたOutSystems Cloudにアップグレードすることができます。これにより、SOC2 Type II準拠のクラウドプラットフォームのセキュリティ、リスク管理、監視がさらに強化されます。このオプションを選択すると、インフラ面では以下が追加されます。

  • 全OutSystems Cloudサーバーへのアンチウイルスおよび侵入検知ソフトウェアのデプロイ
  • すべてのシステムコンポーネントからのログ収集と、Splunk Security Information and Event Management(SIEM)サービスへの送信。SIEMにアクセスできるのは、セキュリティ権限を持つごく一部のOutSystemsスタッフのみです。
  • 通信におけるHTTPSの強制

以下の図は、優れたコンプライアンスを備えたOutSystems Cloudにおける、高可用性オプション付きStandardエディションの基本的設定のアーキテクチャを示したものです。

Standardエディションの基本的設定のアーキテクチャを示した図

OutSystems Cloudをサブスクライブすると、OutSystemsはユーザーが選択した環境の数やタイプに応じたOutSystemsインフラをクラウド内でプロビジョニング、インストール、構成します。

また、各ユーザーに、仮想サーバー、ストレージ、ネットワーク、OS、データベース、OutSystemsソフトウェアからなる 専用のインフラ を割り当てます。

OutSystemsインフラは、ユーザーが選択したスタックでデプロイされます。可能な組み合わせは以下のとおりです。

OS データベース

Windows Server 2016 Standard Edition

MS SQL Server 2016 Standard Edition

Oracle 12 Standard Edition

OutSystemsインフラは、以下の選択肢のうちユーザーが選択したリージョンにデプロイされます。

  • 北米/南米: 米国東部(バージニア北部)、米国東部(オハイオ)、米国西部(オレゴン)、カナダ(中部)、南米(サンパウロ)
  • 欧州/中東/アフリカ: 欧州(アイルランド)、欧州(フランクフルト)、欧州(ロンドン)、アフリカ(ケープタウン)
  • アジアパシフィック: アジアパシフィック(シドニー)、アジアパシフィック(シンガポール)、アジアパシフィック(東京)、アジアパシフィック(香港)、アジアパシフィック(ムンバイ)、アジアパシフィック(ソウル)、アジアパシフィック(ジャカルタ)、中東(バーレーン)

オプションで、本番データベース内の保存データの暗号化を明示的に依頼できます。保存データの暗号化をアクティベートすると、データベースのバックアップも暗号化されます。

ユーザーがOutSystems Sentryのサブスクリプションをアップグレードすると、OutSystemsは必要となるインフラアップグレードを行います。

OutSystems CloudとOutSystems 11に共通のプラットフォームアーキテクチャ

OutSystemsのPaaSクラウド対応デプロイオプション(OutSystems Cloud)とIaaSセルフマネージドデプロイオプション(OutSystems 11)のプラットフォームアーキテクチャは同じです。OutSystemsのアーキテクチャが提供するコンポーネント、ツール、環境、コード生成などを使用すると、標準的な.NETアプリケーションサーバーで稼働する拡張性の高いアプリを作成できます。OutSystemsは、専有技術でユーザーを囲い込むようなことはしません。

OutSystemsプラットフォームには、アプリケーションのライフサイクル管理プロセスすべてをカバーできる環境、ツール、コンポーネントがそろっています。開発ツールは以下のとおりです。

  • Service Studio: データモデル、アプリケーションロジック、UI、ビジネスプロセスフロー、連携、セキュリティポリシーなど、アプリケーションスタックのあらゆる要素を作成する環境です。
  • Integration Studio: OutSystemsプラットフォームを拡張し、サードパーティのシステムと連携するためのコンポーネントを作成する環境です。
  • Platform Server: OutSystemsプラットフォームの中核をなすサーバーコンポーネントです。標準のWebアプリケーションサーバーにアプリケーションを生成、最適化、コンパイル、デプロイします。また、スケジュール設定されたバッチジョブとアプリケーションログも管理します。
  • Builder: ワークフローアプリの作成、高品質なモバイルアプリエクスペリエンス実現のためのUX/UIデザインの圧縮、外部システムとの連携の簡素化など、複雑で時間のかかる開発業務を支援するSaaS(サービスとしてのソフトウェア)ツール群です。
プラットフォームの開発環境

OutSystemsの管理コンソールには以下のようなものがあります。

  • Service Center: 接続文字列、Webサービスのエンドポイント、アプリケーションのプロパティなど、環境の運用面を管理します。
  • LifeTime: あらゆる開発の一元管理を可能にします。開発環境、QA環境、本番環境におけるアプリケーションの環境間ステージング、パフォーマンスの監視、ITチームの権限管理を一元的に行えます。

OutSystemsプラットフォームでは、アプリケーションの実行にランタイムエンジンや専有のインタープリタは使用しません。

  • フロントエンドサーバー: OutSystemsサービスが付随する標準のWebアプリケーションサーバー(IISアプリケーションサーバー)環境です。
  • デプロイコントローラサーバー: アプリケーションをコンパイルし、フロントエンドサーバーにデプロイします。
  • データベースサーバー: データベースには、Microsoft SQL Server、Azure SQL、Oracleデータベースなどのリレーショナルデータベース管理システム(RDBMS)を使用します。
OutSystemsの管理コンソール

ベンダーやプラットフォームを変更した場合、OutSystemsで開発したアプリはどうなるでしょうか。OutSystemsはベンダーロックインのない唯一のソリューションであり、不安やリスクなく実装することができます。OutSystemsでは、アプリケーションの実行に特定のランタイムエンジンを使用しません。OutSystemsプラットフォームは、ユーザーのアプリケーションモデルから標準的なWebアプリケーションサーバーで実行できる標準の.NETアプリケーションを生成します。つまり、実行にOutSystemsを必要としないのです。

ベンダーロックインがなく、リスクのない実装 

そのため、万が一OutSystemsプラットフォームを使用しなくなったとしても、アプリケーションのソースコードをデタッチすることができます。デタッチしたコードは通常の.NETアプリケーションと同様に管理でき、任意のIDEやバージョン管理システムで扱うことができます。OutSystemsにロックインされてツールを変更できないという事態には陥りません。OutSystemsの使用を中止したとしても知的財産権が失われることはなく、独自の環境でアプリケーションを変わらず実行し続けられるという安心感を得ることができるのです。

アプリ環境