アーキテクチャとコンポーネント
OpenLM Platform は、Kubernetes 上で 100 を超えるコンテナ化サービスとして動作する、スケーラブルなマイクロサービスベースのシステムです。このページでは、サイジング、ネットワーク、デプロイ詳細に入る前に、システム全体の高レベル構成を説明します。
プラットフォームレイヤー
システムは次のレイヤーで構成されています。
- Kubernetes クラスタ: 基盤レイヤーです。すべてのプラットフォームコンポーネントが Kubernetes によりオーケストレーションされたコンテナとして動作し、スケジューリング、スケーリング、自己修復を担います。
- Ingress コントローラー: TLS を終端し、外部トラフィックに対するクラスタの入口となります。既定は Traefik で、K3s では自動的にインストールされます。nginx、Gateway API、OpenShift routes もサポートされます。
- API ゲートウェイ: Ingress の背後に位置する Tyk です。ゲートウェイポリシーを適用し、各リクエストを適切なマイクロサービスへルーティングします。
- アプリケーションマイクロサービス: ライセンス使用状況の収集、管理、identity と認証、ユーザー向け機能を担う中核サービス群です。
- レポートエンジン: Spark ベースの ETL パイプラインです。使用データを処理し、PostgreSQL または SQL Server にレポート用テーブルを出力します。その後、このデータを Power BI に接続してダッシュボードとレポートを提供します。Apache Superset もオープンソースの代替として利用可能ですが、現在は開発中です。
- データサービス: Kafka(マイクロサービス間のイベントストリーミング)、MongoDB(ドキュメントストレージ)、SQL データベース(運用データとレポートデータ)、Redis(キャッシュとセッション)で構成されます。
デプロイ方法
プラットフォームは umbrella Helm チャート として提供されます。これは、システムを動かすために必要な Kubernetes マニフェスト(Deployments、Services、ConfigMaps、Secrets)をひとつにまとめたパッケージです。values ファイルにドメイン、データベース接続、証明書、ストレージなど環境固有の設定を行い、単一の Helm コマンドでデプロイまたはアップグレードします。チャートはサービスごとに 100 を超えるサブチャートで構成されているため、既定のタイムアウト(5 分)では起動が完了しないことがあります。長めのタイムアウトを指定してください。
チャートと values テンプレートはデプロイパッケージで配布されます。対象バージョンのパッケージは OpenLM にお問い合わせのうえ入手してください。
Platform as VM のパスでは、Ansible ベースのインストーラー がこれらをすべて代行します。単一の entrypoint.sh スクリプトが Python、Ansible、Helm を準備し、1 つの playbook が K3s、インフラサービス、2 つの Helm リリースを最後まで一括でインストールします。
AWS、Azure、オンプレミスマシンのパスでは、既存のクラスタに対して Helm のインストールをお客様自身で実行します。プラットフォームのインストール を参照してください。
フィールドエージェント
組織内のマシンに 3 種類のエージェントをインストールし、データを収集してプラットフォームへ送信できます。多くの導入では、ライセンスサーバーイベントの取得を担う Broker が少なくとも利用されます。
| エージェント | 実行場所 | 役割 |
|---|---|---|
| Broker | ライセンスサーバーが稼働するマシン | ライセンスサーバーイベントと使用データを収集 |
| Workstation Agent | エンドユーザーのワークステーション | ワークステーション単位のアプリケーション使用状況を収集 |
| Directory Sync Agent (DSA) | ディレクトリアクセスが可能なマシン | ディレクトリデータ(Active Directory、LDAP)をスキャンし同期 |
すべてのエージェントは、同一ドメイン名の HTTPS(443 番ポート)でプラットフォームに接続します。詳細は ネットワーク を参照してください。