マーケットプレイス・スタックを使用したOKE用Oracle WebLogic Serverのデプロイ
Oracle Cloud InfrastructureでプロビジョニングされたKubernetesクラスタにOracle WebLogic Serverドメインをすばやくデプロイし、CI/CDパイプライン・ジョブ用に構成されたJenkinsコントローラを使用してWebLogicサーバーのライフサイクル管理操作をサポートします。
Oracle WebLogic ServerをOracle Cloud Marketplaceを介してOracle Cloud Infrastructure Kubernetes Engine (OKE)のアプリケーションのセットとして提供すると、Oracle Oracle WebLogic Server for OKEを簡単かつ迅速に構成できます。OKEでWebLogicサーバー構成を数分で生成し、JenkinsコントローラをOKE用に構成し、継続的インテグレーションおよび継続的デリバリ(CI/CD)パイプライン・ジョブをWebLogicサーバーのライフサイクル管理操作をサポートするように構成します。
Oracle Cloud Marketplaceを使用してOKE用のOracle WebLogic Serverをプロビジョニングすると、次のことが可能になります。
- 自動化、移植性、複数のドメインをカスタマイズする機能のバランス
- Jenkinsを使用したCI/CDパイプラインによるライフサイクル管理業務
- Universal Credits Model(UCM)またはBring Your Own License(BYOL)による柔軟なライセンス
アーキテクチャ
Oracle WebLogic Server for OCIは、基盤となるインフラストラクチャと完全に統合されています。この統合により、WebLogicクラスタのプロビジョニング、必要なインフラストラクチャの作成と構成、およびロード・バランサやファイル・ストレージなどの必要なサービスの提供が簡単になります。
このアーキテクチャでは、1つの可用性ドメインとリージョナル・サブネットを持つリージョンを使用します。複数の可用性ドメインがあるリージョンでは、同じリファレンス・アーキテクチャを使用できます。可用性ドメインの数に関係なく、デプロイメントにリージョナル・サブネットを使用することをお薦めします。
プロビジョニングされると、このリファレンス・アーキテクチャには次のものが含まれます。
- 2つのノード・プールがあるプライベート・サブネットにデプロイされたOCI Kubernetes Engine (OKE)クラスタ
- ポッド間で共有されるファイル・ストレージ・サービス
- 次の領域に簡単にアクセスするためにプライベート・サブネットにデプロイされた管理ホスト:
- OCI Kubernetes Engineクラスタ
- Oracle WebLogic Serverドメインのログ
- Jenkinsホーム構成
- ドメインを管理するためのヘルパースクリプト
- ファイル・ストレージ・サービス
- プライベート・サブネットにデプロイされたリソースにアクセスするためにパブリック・サブネットにデプロイされた要塞ホスト
- JenkinsコンソールおよびOracle WebLogic Server管理コンソールにアクセスするためのプライベート・ロード・バランサ
- Oracle WebLogic Serverクラスタにアクセスするためのパブリック・ロード・バランサ
次の図に、このリファレンス・アーキテクチャを示します。
wls-oke-marketplace-oracle.zip
このアーキテクチャには次のコンポーネントがあります。
- リージョン
Oracle Cloud Infrastructureリージョンは、可用性ドメインをホストする1つ以上のデータ・センターを含むローカライズされた地理的領域です。リージョンは他のリージョンから独立しており、長距離の場合は(国または大陸にまたがって)分離できます。
- 可用性ドメイン
可用性ドメインは、リージョン内の独立したスタンドアロン・データ・センターです。各可用性ドメイン内の物理リソースは、他の可用性ドメイン内のリソースから分離されているため、フォルト・トレランスが提供されます。可用性ドメインどうしは、電力や冷却、内部可用性ドメイン・ネットワークなどのインフラを共有しません。そのため、ある可用性ドメインでの障害は、リージョン内の他の可用性ドメインに影響を与えないでください。
- 仮想クラウド・ネットワーク(VCN)およびサブネット
VCNは、Oracle Cloud Infrastructureリージョンで設定する、カスタマイズ可能なソフトウェア定義ネットワークです。従来のデータ・センター・ネットワークと同様に、VCNsではネットワーク環境を制御できます。VCNには重複しない複数のCIDRブロックを含めることができ、VCNの作成後にそれらを変更できます。VCNをサブネットにセグメント化して、そのスコープをリージョンまたは可用性ドメインに設定できます。各サブネットは、VCN内の他のサブネットと重複しない連続した範囲のアドレスで構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックにもプライベートにもできます。
- サービス・ゲートウェイ
サービス・ゲートウェイは、VCNからOracle Cloud Infrastructure Object Storageなどの他のサービスへのアクセスを提供します。The traffic from the VCN to the Oracle service travels over the Oracle network fabric and does not traverse the internet.
- ロード・バランサ
Oracle Cloud Infrastructure Load Balancingは、単一のエントリ・ポイントから複数のサーバーへの自動トラフィック分散を提供します。
- ファイル・ストレージ
Oracle Cloud Infrastructure File Storageは、永続的でスケーラブルな、セキュアなエンタープライズ規模のネットワーク・ファイル・システムを提供します。VCN内の任意のベア・メタル、仮想マシンまたはコンテナ・インスタンスからOCI File Storageに接続できます。Oracle Cloud Infrastructure FastConnectおよびIPSec VPNを使用して、VCNの外部からOCI File Storageにアクセスすることもできます。
- Kubernetes Engine
Oracle Cloud Infrastructure Kubernetes Engine (OCI Kubernetes EngineまたはOKE)は、コンテナ化アプリケーションをクラウドにデプロイするために使用できる、完全に管理されたスケーラブルで可用性の高いサービスです。アプリケーションで必要なコンピュート・リソースを指定すると、KubernetesエンジンがそれらをOracle Cloud Infrastructureの既存のテナンシにプロビジョニングします。OKEは、Kubernetesを使用して、ホストのクラスタにわたるコンテナ化されたアプリケーションのデプロイメント、スケーリングおよび管理を自動化します。
- Oracle Cloud Infrastructure Registry
Oracle Cloud Infrastructure Registryは、本番ワークフローを簡素化できる、Oracle管理のサービスです。Registryを使用すると、Dockerイメージなどの開発アーティファクトを簡単に格納、共有および管理できます。
- WebLogicドメイン
WebLogicドメインは、関連するアプリケーションおよびリソースのグループであり、それらの実行に必要な構成情報です。ドメインは、Javaアプリケーション・デプロイメントをホストする1つの管理サーバーと1つ以上の管理対象サーバーで構成されます。管理対象サーバー・インスタンスは、クラスタ化、非クラスタ化、またはクラスタ化インスタンスと非クラスタ化インスタンスの組合せが可能です。ドメイン内のすべてのクラスタで同じ管理サーバーが使用されます。
- WebLogicクラスタ・コンポーネント
クラスタ内のコンポーネントは、フェイルオーバーおよびロード・バランシング・オプションを利用できます。Oracle WebLogic Serverデプロイメントでは、次のタイプのオブジェクトのクラスタリングが可能です。
- サーブレット
- JavaServer Pages (JSP)
- Enterprise JavaBeans (EJB)
- リモート・メソッド呼出し(RMI)オブジェクト
- Java Messaging Service (JMS)宛先
- Java Database Connectivity (JDBC)接続
- Oracle WebLogic Server Kubernetes Operator
Oracle WebLogic Server for OKEドメインには、オープン・ソースのOracle WebLogic Server Kubernetes Operatorが含まれています。このOperatorには、Kubernetes環境でのドメインの管理を支援するいくつかの主要な機能があります。WebLogicサーバー・ドメインは、Kubernetes構成ファイルでカスタム・リソースとしてモデル化されます。オペレータは、この構成とKubernetes APIを使用して、サーバーのプロビジョニング、起動または停止、パッチ適用、スケーリング、セキュリティなどのWebLogicサーバー操作を自動化します。
- Jenkins
OKE用のOracle WebLogic Serverでは、Jenkinsを使用して、Oracle WebLogic Serverドメインのカスタム・イメージの作成を自動化し、これらのイメージをKubernetesクラスタにデプロイします。Jenkinsは、継続的インテグレーションや継続的デリバリ(CI/CD)に基づいた開発ワークフローを容易にするオープン・ソースの自動化エンジンです。ソース・コントロール・システムからのファイルのチェックアウト、コードのコンパイル、スクリプトの実行など、一連のステップを実行するプロジェクトを作成します。パイプラインは、アプリケーションの構築、テスト、デプロイなど、複雑なアクティビティを段階的に編成するプロジェクトの一種です。
レコメンデーション
次の推奨事項を開始点として使用します。要件が異なる場合があります。
- VCN
VCNを作成するときには、必要なCIDRブロックの数を決定し、VCN内のサブネットにアタッチする予定のリソースの数に基づいて各ブロックのサイズを決定します。標準のプライベートIPアドレス領域内にあるCIDRブロックを使用します。
プライベート接続を設定する他のネットワーク(Oracle Cloud Infrastructure、オンプレミス・データ・センターまたは別のクラウド・プロバイダ)と重複しないCIDRブロックを選択します。
VCNを作成した後、そのCIDRブロックを変更、追加および削除できます。
このアーキテクチャでは、OKE用のOracle WebLogic Serverは、Oracle WebLogic Server、Kubernetesおよびロード・バランサをサポートするために、Oracle Cloud Infrastructureに仮想クラウド・ネットワーク(VCN)およびサブネットを作成します。ただし、必要に応じて、既存のVCNおよび既存のサブネットを使用することもできます。Oracle WebLogic Server for OKEは、管理ホスト・コンピュート・インスタンス、Kubernetesコンポーネントおよびファイル・ストレージのプライベート・サブネットを作成します。パブリック・ロード・バランサおよび要塞コンピュート・インスタンスのパブリック・サブネットが作成されます。既存のサブネットを使用する場合は、同じアーキテクチャに従うことをお薦めします。
- ロード・バランサ
ドメインを作成すると、Oracle WebLogic Server for OKEによって、Oracle Cloud Infrastructureで次のロード・バランサが作成および構成されます:
- パブリック・ロード・バランサは、ドメイン内の管理対象サーバー間でトラフィックを分散します。
- プライベート・ロード・バランサは、Oracle WebLogic Server管理コンソールおよびJenkinsコンソールへのアクセスを提供します
ロード・バランサはプライマリ・インスタンスとスタンバイ・インスタンスで構成されますが、単一のIPアドレスからアクセスできます。プライマリ・インスタンスに障害が発生すると、トラフィックは自動的にスタンバイ・インスタンスにルーティングされます。
プライベート・ロード・バランサにはパブリックIPアドレスが割り当てられていないため、Oracle Cloud Infrastructureの外部からアクセスできません。要塞コンピュート・インスタンスを使用して、ドメインのプライベート・ロード・バランサにアクセスできます。
Oracle WebLogic Server for OKEでは、KubernetesクラスタにNginxイングレス・コントローラも作成されます。Nginxは、Kubernetesクラスタ内のポッドへのトラフィックのフローを制御するオープン・ソースのリバース・プロキシ・サービスです。
- WebLogicドメイン
ドメインの作成中、管理コンピュート・インスタンスを使用して、新しいKubernetesクラスタを構成し、ドメインのポッドをデプロイすることもできます。デフォルトでは、このアーキテクチャはクラスタ化されたドメインをプロビジョニングします。プロビジョニング後にドメインを非クラスタ化するようにカスタマイズできます。
Oracle WebLogic Server for OKEで作成されたドメインは、ノード・マネージャを使用しません。Oracle WebLogic Server Kubernetesオペレータは、サーバー・ヘルス・モニタリングおよびライフサイクル操作を実行します。
Oracle WebLogic Server for OKEは、Helmクライアントを管理コンピュート・インスタンスにインストールし、Helmを使用してOracle WebLogic Server Kubernetes Operatorのチャートをインストールします。Helmは、Kubernetesのパッケージ・マネージャで、KubernetesクラスタのKubernetesアプリケーション、ツールおよびサービスをすばやくインストールおよび管理するために使用できます。Helmを使用してKubernetesクラスタにインストールされるアプリケーションには、Jenkins CI、NginxおよびWebLogic Kubernetes Operatorがあります。
Oracle WebLogic Server for OKEは、Kubernetesクラスタにオペレータをインストールおよび構成します。この演算子は、管理コンピュート・インスタンスで
kubectl
とともに使用できます。OKE用のOracle WebLogic Serverでは、Jenkinsを使用して、WebLogicサーバー・ドメインのカスタム・イメージの作成、およびこれらのイメージのKubernetesクラスタへのデプロイメントを自動化します。
- OCI Kubernetes Engine
OKE用のOracle WebLogic Serverを使用してドメインを作成すると、WebLogicノード・プールとWebLogic以外のノード・プールの2つのノード・プールが自動的にプロビジョニングされます。デフォルトでは、各ノード・プールは1つのワーカー・ノードを使用して作成されます。ただし、プロビジョニング中に、各ノード・プールに必要なワーカー・ノードの数を指定できます。
アーキテクチャの一部として、次のポッドがKubernetesクラスタにデプロイされます:
- WebLogicノード・プール:
- ドメインの管理サーバーを実行しているポッド
- ドメイン内の各管理対象サーバーを実行しているポッド
- Jenkinsエージェントを実行するポッド
- WebLogic以外のノード・プール:
- Jenkinsコントローラを実行しているポッド
- Nginxイングレス・コントローラを実行しているポッド
ドメインを作成すると、Oracle WebLogic Server for OKEによって、ドメインのポッドのプロビジョニングに使用されるレジストリにデフォルト・イメージがプッシュされます。管理コンピュート・インスタンスから、このデフォルト・イメージを更新し、Kubernetesを使用してそれらの変更を適用できます。
Oracle WebLogic Server for OKEは、Jenkinsプライマリ・サーバーをKubernetesクラスタのポッドにプロビジョニングします。JenkinsもKubernetesプラグインを使用するように構成されています。ジョブを起動またはスケジュールすると、JenkinsサーバーはKubernetesクラスタに別のポッドを作成し、このエージェント・ポッドはジョブを実行します。
- WebLogicノード・プール:
考慮事項
このリファレンス・アーキテクチャをデプロイする場合は、次の点を考慮してください。
- 記憶域
ドメインのファイルは、Kubernetesクラスタ内の各ポッド内にローカルに格納されますが、Oracle WebLogic Server for OKEではOracle Cloud Infrastructure File Storageを使用して特定の管理ユースケースもサポートされます。Oracle WebLogic Server for OKEは、ファイル・システムを、指定された可用性ドメイン内のマウント・ターゲットにエクスポートします。これは、ドメインのコンピュート・インスタンスに使用されているものとは異なる可用性ドメインにすることができます。
このアーキテクチャでは、データベースを必要としない基本的なOracle WebLogic Serverドメイン構成が作成されます。Oracle Application Development Framework (ADF)を使用してアプリケーションを構築する場合は、Oracle WebLogic Server for OCIを使用して、Java require files (JRF)対応ドメインを作成することもできます。JRF対応ドメインのプロビジョニングに必要な既存のOracle Autonomous Transaction ProcessingデータベースまたはOracle Cloud Infrastructure Databaseシステムの使用を検討してください。
- セキュリティ
OKE用Oracle WebLogic Serverでドメインをプロビジョニングするには、Oracle Cloud Infrastructure Vaultで1つ以上のシークレットが必要です。各シークレットには、1つのパスワードのみが格納されます。パスワードは、Oracle WebLogic Serverクラスタの作成時に必要です。このアーキテクチャでは、複数のテナントを持つハードウェア・セキュリティ・モジュール(HSM)パーティションでホストされる標準ボールトを使用し、請求の目的で、よりコスト効率が高く、キーベースのメトリックを使用します。仮想プライベート・ボールトは、HSMに専用パーティションを割り当てることで、分離とパフォーマンスを向上させます。ボールトのタイプごとに、Oracle Cloud Infrastructureテナンシに個別のサービス制限があります。
- 管理性
Oracle WebLogic Server for OKEは、Oracle Cloud Marketplaceでアプリケーションの集合としてアクセスされます。
Oracle Cloud Marketplaceは、Oracle Cloud Infrastructureコンソールで使用可能なオンラインストアです。Oracle Cloud MarketplaceからOracle WebLogic Server for OKEアプリケーションを起動すると、基本情報の入力を求められ、リソース・マネージャにOracle WebLogic Serverドメインの構成およびクラウド・リソースのサポートを完了するように指示されます。Resource Managerは、Terraformを使用して、関連するクラウド・リソースのコレクションをスタックと呼ばれる単一のユニットとしてプロビジョニング、更新および破棄するOracle Cloud Infrastructureサービスです。
機能要件およびライセンス要件を満たすOracle WebLogic Server for OKEアプリケーションを選択します。
- コスト
Oracle WebLogic Serverオンプレミス・ソフトウェアとの完全な互換性を持つOracle WebLogic Server for Oracle Cloud Infrastructure Kubernetes Engineで使用可能なBring Your Own License (BYOL)およびUniversal Credits (UCM)エディションのリストを次に示します。
- Oracle WebLogic Server Enterprise Edition for OKE(UCM)
- Oracle WebLogic Suite for OKE(UCM)
- Oracle WebLogic Server Enterprise Edition for OKE(BYOL)
- Oracle WebLogic Suite for OKE(BYOL)
デプロイ
このリファレンス・アーキテクチャをデプロイするための様々なライセンス・オプションを備えたTerraformスタックは、Oracle Cloud Marketplaceから入手できます。
適切なスタックをデプロイするには、OKEのためのOracle WebLogic Serverスタート・ガイドを参照してください。