2023年の技術者向けイベント(ONE)は、アメリカ、ヨーロッパ、インドで開催されたため、現地参加は無理だった。最近録画が公開されたので、順次閲覧し、メモを作成する。
この記事は、ODCに関連するセッションについて。
動画は、Trainingの下のONE Conference 2023で公開されている。
Table of Contents
Securely tunnel your way into your private network with ODC
ODCのアプリケーションからオンプレミスにあるサービスに対して通信を行うためのPrivate Gatewayという機能の紹介。
- 追加のライセンス購入が必要
- ライセンスがあると、ODC PortalにPrivate gatewaysというリンクが表示される
- Stageを指定し、有効化すると、TokenとODCのアプリケーションからアクセスするためのアドレスが発行される
- ネットワーク上開かなければいけないポートは、オンプレミス側からインターネット側へのもののみ
- オンプレミス側にLinuxを用意し、OutSystems Cloud Connectorというソフトウェアをセットアップする(Dockerイメージが用意されているのでそれを使ってもよい)
- オンプレミス側でコマンドを実行し、どのポートにリクエストを受け取ったら、オンプレミス側のIPアドレス:ポート番号にリクエストを流すかを設定する
- ODCアプリケーションはPrivate gatewayのアドレス+↑で設定したポート番号でアクセスすると、紐づけられたオンプレミス側のIP:ポート番号のリクエストを行う
- 紹介されていた接続例は、外部DBやREST API
ODC Architecture Design and Patterns
いくつかの設計パターンの紹介
- Blockを共有するときは、Libraryに置き(AppのBlockはPublicにできない)、Input Parameterにデータを渡す
- データを公開するとき、PublicにしたEntityが使えるが、場合によってはService Actionを選択する
- Entity:追加の実装がいらず、公開が楽。ConsumerがAggregateやSQLで利用できる
- Service Action:Entityからデータを加工し、Structureなどの形でデータを提供する。開発が必要だし、Consumerの利用方法も限られる
- Entityの方が楽なのでそっちを選びたいが、データ構造の変更が見込まれるときや利用に業務知識を要するときは(その知識をConsumer側に要求しないために)Service Actionを選択する
- Sagaについても紹介。ただここで紹介した内容は、公式動画のほうが詳しいとのことだった。動画はたぶんDistributed Transactions Patternsのことかな。まだEvent Driven Architectureは考慮に入っていないとのこと(たぶんChoreograhy Sagaのこと)
ODC Portal Stateless Architecture
ODC Portal自体がODCで構築したアプリケーションで、その設計上の知見の共有をするセッション。これからODC導入に当たってアーキテクチャを検討しようとしている人には参考になる。
- ODC Portalは1つの大きなAppではなく、多数の小さなAppの集合として作られている→各画面及び開発チームは独立している
- Blockや認証、共通で使われる外部連携は部品として提供している
- Blockを共通部品として使う場合のアーキテクチャパターン:MenuなどのBlockをLibraryとして提供し、Blockで必要なデータは専用の管理画面を備えたAppで管理。Blockは実行時にREST APIを介してそのデータを取得する