[WLS, Docker] WebLogic Server Certification on Kubernetes

原文はこちら。
https://blogs.oracle.com/weblogicserver/weblogic-server-certification-on-kubernetes

KubernetesでのOracle WebLogic Serverの動作保証を発表できうれしく思っています。この動作保証の一環として、Kubernetes上で動作するOracle WebLogic Server 12.2.1.3ドメインイメージを作成するためのGitHubサンプルをリリースします。
WebLogic Sample on Kubernetes with Shared Domain Home
https://github.com/oracle/docker-images/tree/master/OracleWebLogic/samples/wls-k8s-domain
また、WebLogic Serverの構成と機能のサポート、およびベストプラクティスについて詳しく説明する一連のブログを公開しています。
How to... WebLogic Server on Kubernetes
https://blogs.oracle.com/weblogicserver/how-to-weblogic-server-on-kubernetes
https://orablogs-jp.blogspot.jp/2018/01/how-to-weblogic-server-on-kubernetes.html
Kubernetesは、コンテナ化されたアプリケーションの展開、スケーリング、および管理を自動化するためのオープンソースシステムで、Dockerを含むさまざまなコンテナツールをサポートしています。
What is Kubernetes?
https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
Dockerコンテナで実行されるOracle WebLogic Serverの構成を、Kubernetesプラットフォーム上にデプロイしオーケストレーションできます。
下表は、KubernetesでWebLogic Serverの動作保証されている構成(Oracle WebLogic Server、JDK、Linux、Kubernetes、Docker、およびネットワークファブリックのバージョン)です。
WebLogic Server JDK Host OS Kubernetes Docker Network Fabric
12.2.1.3 8 Oracle Linux 7  UEK 4 1.7.5 and 1.8.0 17.03-ce Flannel  v0.9.1-amd64
Oracle WebLogic ServerのDockerでの動作保証の詳細は、My Oracle Supportの以下のサポート文書をご覧ください(サポート契約が必要です)。
Support Information for Oracle WebLogic Server Running in Docker Containers (Doc ID 2017945.1)
https://support.oracle.com/rs?type=doc&id=2017945.1
Flannel以外のネットワークファブリックを使用し、Oracle Linux以外のプラットフォームでKubernetesを構成して、その上でWebLogic Serverドメインを実行する場合のサポートについては、以下のサポート文書をご覧ください。
WebLogic Server 12.2.1.3 Certification on Kubernetes (Doc ID 2349228.1)
https://support.oracle.com/rs?type=doc&id=2349228.1
サポート対象の構成に関する最新情報は、以下のURLをご覧ください。
Supported Virtualization and Partitioning Technologies for Oracle Fusion Middleware
http://www.oracle.com/technetwork/middleware/ias/oracleas-supported-virtualization-089265.html
この動作保証は、クラスタ化された、クラスタ化されていないに関わらず、Kubernetesクラスタ上で稼働するOracle WebLogic Serverドメイン構成(開発モードと本番モードの両方を含む)の作成が可能であることを示しています。この動作保証には、以下のサポートが含まれています。
  • Kubernetesクラスタ内での1個以上のWebLogicドメインの稼働
  • 1個以上のノードのKubernetesクラスタ
  • クラスタ、非クラスタ構成のWebLogic管理対象サーバー
  • (動的クラスタに対する)WebLogic Serverの構成済みクラスタ。詳細はドキュメントを参照
  • ユニキャストWebLogic Serverクラスタメッセージングプロトコル
  • Kubernetesクラスタ上のIngressコントローラとしてTræfikを使った、HTTPリクエストの負荷分散
  • HTTPセッションレプリケーション
  • 外部データベースシステムとのJDBC通信
  • JMS
  • JTA
  • 永続ボリュームを使うJDBCストアおよびファイルストア
  • ドメイン間通信(JMS、トランザクション、EJBなど)
  • WebLogicクラスタのオートスケーリング
  • WebLogic Monitoring Exporterを使いPrometheusと連携して監視
  • Kubernetesクラスタの内外からのRMI通信
  • アプリケーションのアップグレード
  • WebLogicドメインへのパッチ適用
  • シングルトンサービスのサービス移行
  • データベース・リース
以下の構成や機能は、WebLogic Server on Kubernetes上でのWebLogic Serverの動作保証の範囲外です(サポートされません)。
  • KubernetesクラスタにまたがるWebLogicドメイン
  • サーバー全体の移行
  • WebLogic Serverのライフサイクル管理(開始/停止)のためのノードマネージャの使用
  • コンセンサスリース
  • 動的クラスタ(将来動的クラスタの動作保証を追加する予定です)
  • マルチキャストWebLogic Serverクラスタメッセージングプロトコル
  • マルチテナント
  • プロダクション再デプロイメント
  • portmapを使うFlannel

Kubernetesを使ってWebLogic Serverドメインを作成、実行する方法を示すサンプルをGitHubに公開しました。サンプルのREADME.mdにすべての手順が示されています。
WebLogic Sample on Kubernetes with Shared Domain Home
https://github.com/oracle/docker-images/tree/master/OracleWebLogic/samples/wls-k8s-domain
README.md
https://github.com/oracle/docker-images/blob/master/OracleWebLogic/samples/wls-k8s-domain/README.md
このサンプルは、Kubernetes上で稼働するsampleドメインとクラスタを作成し、動作保証されたOracle WebLogic Server 12.2.1.3のdeveloperインストールイメージを拡張します。WebLogicドメインは、管理サーバーと、WebLogicクラスタで実行されている複数の管理対象サーバーで構成されており、すべてのWebLogic Serverは、外部ボリュームにマップされている同じドメインホームを共有します。永続ボリュームには、すべてのWebLogic Serverインスタンスがドメインホーム内のファイルにアクセスできるように、read/writeの権限が必要です。以下のエントリに記載のベストプラクティスをチェックしてください。このエントリでは、通常共有ストレージを利用するように構成されるWebLogic Serverのサービスとファイルについて説明しながら、KubernetesがオーケストレーションするWebLogicドメインのための共有ストレージをマウントする、完全なEnd-to-Endのサンプルを提供しています。
WebLogic Server on Kubernetes Data Volume Usage
https://blogs.oracle.com/weblogicserver/weblogic-server-on-kubernetes-data-volume-usage
https://orablogs-jp.blogspot.jp/2018/01/weblogic-server-on-kubernetes-data.html
このドメインを稼働させた後、JMSおよびJDBCリソースをデプロイできます。以下のエントリでは、Kubernetesクラスタ内のサンプルWebLogic JMSアプリケーションを構成、実行するための手順を順を追って説明しています。WebLogic JMSおよびJDBCリソースのデプロイ方法、アプリケーションのデプロイ方法、およびアプリケーションの実行方法についても説明しています。
Run a WebLogic JMS Sample on Kubernetes
https://blogs.oracle.com/weblogicserver/run-a-weblogic-jms-sample-on-kubernetes
https://orablogs-jp.blogspot.jp/2017/12/run-weblogic-jms-sample-on-kubernetes.html
このアプリケーションは、WebLogic Serverのサンプルアプリケーションに含まれている 'Classic API - Using Distributed Destination' (分散送り先の使用)をベースにしており、従業員が到着時に自身の名前を送信し、スーパーバイザが従業員の到着時間を監視するというシナリオを実装したものです。従業員はチェックインメッセージを分散キューもしくは分散トピックへの送信を選択します。これらの宛先は2個のアクティブな管理対象サーバーを持つクラスタで構成されています。これらの2個の宛先に対応する2個のmessage-driven bean(MDB)がデプロイされ、チェックインメッセージを処理してデータベースにそのメッセージを格納します。スーパーバイザーは、データベースに照会してすべてのチェックインメッセージをスキャンできます。
後続のブログエントリ「Run Standalone WebLogic JMS Clients on Kubernetes」では、以前のブログエントリの内容から一歩進んで、WebLogic JMSサービスおよびJDBCストアを使い、相互に通信するスタンドアロンJMSクライアントの例を紹介しています。
Run Standalone WebLogic JMS Clients on Kubernetes
https://blogs.oracle.com/weblogicserver/run-standalone-weblogic-jms-clients-on-kubernetes
https://orablogs-jp.blogspot.jp/2018/01/run-standalone-weblogic-jms-clients-on.html 
WebLogic ServerとKubernetesとも、アプリケーションのデプロイをサポートする豊富な機能を備えています。Kubernetes上でのWebLogic Serverの動作保証作業の一環として、KubernetesおよびDocker環境で動作するWebLogic ServerインスタンスへのJava EEアプリケーションのデプロイのためのベストプラクティスを確認しました。ブログエントリ「The blog Best Practices for Application Deployment on WebLogic Server Running on Kubernetes」では、これらのベストプラクティスについて説明しています。
Best Practices for Application Deployment on WebLogic Server Running on Kubernetes
https://blogs.oracle.com/weblogicserver/best-practices-for-application-deployment-on-weblogic-server-running-on-kubernetes-v2
https://orablogs-jp.blogspot.jp/2018/01/best-practices-for-application.html 
このエントリには、以下のドキュメントで説明されている一般的な推奨事項と、Kubernetesで提供されているアプリケーションデプロイメント機能が含まれています。
Oracle® Fusion Middleware Deploying Applications to Oracle WebLogic Server
Understanding WebLogic Server Deployment
https://docs.oracle.com/middleware/12213/wls/DEPGD/understanding.htm#DEPGD114
Oracle® Fusion Middleware Oracle WebLogic Serverへのアプリケーションのデプロイ 12c (12.2.1.2.0)
WebLogic Serverデプロイメントの理解
https://docs.oracle.com/cd/E84527_01/wls/DEPGD/understanding.htm#DEPGD114
ソフトウェアシステムの最適なパフォーマンスとセキュリティを提供する上で最も重要な作業の1つは、システムの可用性の崩壊を最小限に抑えながら、確実に最新のソフトウェアアップデートをインストール、テスト、ロールアウトすることです。Oracleは、Patch Set UpdateやOne-Offパッチなど、WebLogic Server用のさまざまなタイプのパッチを提供しています。インストールすべきパッチとそれらのインストール方法は、カスタムニーズと環境によって異なります。
Kubernetes、Docker、およびオンプレミス環境では、同じOPatchツールを使用してWebLogic Serverにパッチを適用しますが、Kubernetesでクラスタをオーケストレーションする場合、StatefulSetコントローラのupdate strategyオプションを利用して、更新済みのWebLogic Serverイメージからパッチをロールアウトできます。「Patching WebLogic Server in a Kubernetes Environment」で説明しています。
Patching WebLogic Server in a Kubernetes Environment
https://blogs.oracle.com/weblogicserver/patching-weblogic-server-in-a-kubernetes-environment
https://orablogs-jp.blogspot.jp/2018/01/patching-weblogic-server-in-kubernetes.html
もちろん、動作保証において非常に重要なのはセキュリティです。「Security Best Practices for WebLogic Server Running in Docker and Kubernetes」で説明しているように、WebLogic Serverの実行時のDockerおよびKubernetes環境を保護するためのベストプラクティスを確認しました。
Security Best Practices for WebLogic Server Running in Docker and Kubernetes
https://blogs.oracle.com/weblogicserver/security-best-practices-for-weblogic-server-running-in-docker-and-kubernetes
https://orablogs-jp.blogspot.jp/2017/10/security-best-practices-for-weblogic.html 
これらのベストプラクティスは、以下のドキュメントで説明されている一般的なWebLogic Serverの推奨事項に加えて考慮すべきものです。
Oracle® Fusion Middleware Securing a Production Environment for Oracle WebLogic Server 12c (12.2.1.3.0)
https://docs.oracle.com/middleware/12213/wls/LOCKD/toc.htm
Oracle® Fusion Middleware Oracle WebLogic Server本番環境の保護 12c (12.2.1.2.0)
https://docs.oracle.com/cd/E84527_01/wls/LOCKD/toc.htm 
監視と診断の分野では、オープンソース向けにWebLogic Monitoring Exporterという新しいツールを開発しました。WebLogic Serverは、WebLogicドメインで実行されているサーバー、クラスタ、アプリケーションやその他のリソースの詳細なパフォーマンスおよび診断データを提供する豊富なメトリックとランタイムの状態情報を生成します。このツールは、Docker/Kubernetes環境での動作時にWebLogicの監視および診断機能を活用します。
「Announcing The New Open Source WebLogic Monitoring Exporter on GitHub」のブログエントリでは、GitHubプロジェクトのDockerfileとソースコードからWebLogic Monitoring Exporterをビルドする方法を紹介しています。
Announcing The New Open Source WebLogic Monitoring Exporter on GitHub
https://blogs.oracle.com/developers/the-new-weblogic-monitoring-exporterWebLogic Monitoring Exporter exposes metrics and monitoring data through REST APIs for consumption by other tools (e.g. Prometheus)
https://github.com/oracle/weblogic-monitoring-exporter
WebLogic Monitoring Exporterは、監視対象のWebLogicクラスタ内のWebLogic Server管理対象サーバーにデプロイされるWebアプリケーションとして実装されます。WebLogic Monitoring Exporterの設計と実装の詳細については、「Exporting Metrics from WebLogic Server」のエントリを参照してください。
Exporting Metrics from WebLogic Server
https://blogs.oracle.com/weblogicserver/exporting-metrics-from-weblogic-server
https://orablogs-jp.blogspot.jp/2017/11/exporting-metrics-from-weblogic-server.html
WebLogic Monitoring Exporterがクラスタ内の実行中の管理対象サーバにデプロイされ、メトリックと統計情報を収集すると、PrometheusとGrafanaを使いデータ収集、表示の準備が整います。「Using Prometheus and Grafana to Monitor WebLogic Server on Kubernetes」のエントリでは、Prometheusでメトリックを収集し、Grafanaダッシュボードに表示する手順を紹介しています。
Using Prometheus and Grafana to Monitor WebLogic Server on Kubernetes
https://blogs.oracle.com/weblogicserver/use-prometheus-and-grafana-to-monitor-weblogic-server-on-kubernetes
https://orablogs-jp.blogspot.jp/2017/12/using-prometheus-and-grafana-to-monitor.html
WebLogic ServerクラスタのElasticity(スケールアップまたはスケールダウン)により、お客様のアプリケーションの信頼性向上とリソース使用率の最適化が実現します。WebLogic診断フレームワーク(WLDF)が提供するリソースメトリックに基づいて、Podの数を増やす(または減らす)ことにより、WebLogic Serverクラスタを自動的に拡大/縮小できます。WebLogicクラスタがスケールアップ・スケールダウンすると、HTTPセッションレプリケーションやシングルトンサービスのサービス移行といったWebLogic Serverの機能を活用し、最大限の可用性を実現します。Kubernetesクラウド環境でのWebLogic Serverクラスタの自動スケーリングの例については、「Automatic Scaling of WebLogic Clusters on Kubernetes」を参照してください。
Automatic Scaling of WebLogic Clusters on Kubernetes
https://blogs.oracle.com/weblogicserver/automatic-scaling-of-weblogic-clusters-on-kubernetes-v2
https://orablogs-jp.blogspot.jp/2018/01/automatic-scaling-of-weblogic-clusters.html
WebLogic Serverチームは、KubernetesでWebLogic Serverの動作保証の作業だけでなく、近い将来にリリースされるWebLogic Server Kubernetes Operatorを開発しています。Kubernetes Operatorは、「Kubernetes APIを拡張して複雑なアプリケーションのインスタンスを作成、構成、管理するアプリケーション固有のコントローラ」です。 WebLogic Server Kubernetes Operatorのリリースについての情報は、しばしお待ちください。
KubernetesでのWebLogic Serverの動作保証には、このブログで説明しているさまざまなWebLogicの設定と機能がすべて含まれています。WebLogic ServerをKubernetesで実行すること、まもなくリリース予定のKubernetesベースのOracle Container EngineでWebLogic Serverを実行し、KubernetesベースのContainer Native Application Development PlatformとWebLogic Serverアプリケーションの統合を可能にすることを目的としています。この情報がKubernetes上でWebLogic Serverをデプロイしようとするお客様に役立つことを願っております。フィードバックをお待ちしております。

0 件のコメント:

コメントを投稿