Quantcast
Channel: Oracle Blogs 日本語のまとめ
Viewing all 760 articles
Browse latest View live

[Cloud] Visual Builder Architecture - A Crash Course in Building Blocks

$
0
0
原文はこちら。
https://blogs.oracle.com/vbcs/visual-builder-architecture-a-crash-course-in-building-blocks

VBCSのビジュアル開発体験によって、アプリケーション作成が簡単になりますが、ビジュアル開発の基礎部分が堅牢なアーキテクチャであることを理解するのは重要です。

このアーキテクチャとVBCSが利用するビルディングブロックの基本的な理解は、VBCSでアプリケーションを開発しようとしている人にとっては良い基礎になります。

アーキテクチャやビルディングブロックの詳細はドキュメントの以下の章でご覧いただけます。
Oracle® Cloud Developing Applications with Oracle Visual Builder Cloud Service
Understanding the Building Blocks of Visual Applications
https://docs.oracle.com/en/cloud/paas/app-builder-cloud/visual-builder-developer/understanding-building-blocks-visual-applications1.html
Building Blocks of VBCS

YouTubeチャンネルにUpした30分の動画で、ビルディングブロックの説明と利用方法の例をご紹介します。



この動画をご覧になれば、クイックスタートでは即座に答えが得られない、より高度なシナリオに対処することが容易になるはずです。しかし、アーキテクチャとビルディングブロックの別の側面について詳細を知っていただくために、ドキュメントを一読されることをお勧めします。

この手の動画がお役にたつかどうかお知らせください。

[misc.] Oracle製品ドキュメントページにSolutionsというカテゴリが追加されています

$
0
0
Oracle製品ドキュメントのトップページが少々変更されていることをご存知でしょうか。
下図の通り、Solutionsというグループが出来ています。

これをクリックすると、Design、Develop、Integrate、Operateというカテゴリに細分化され、各製品を使った構成例を確認できます。

Designをクリックしてみたところ、SaaSアプリケーションとの連携や、オンプレミスのERP(E-Business Suite)との連携をどのように実現するか、といった内容が紹介されています。


まだ数少ないですが、今後いろいろな内容が追加されていきますので、ご興味ある方は時間のあるときにチェックしてみてください。


[WLS, Docker, Kubernetes] WebLogic Dynamic Clusters on Kubernetes

$
0
0
原文はこちら。
https://blogs.oracle.com/weblogicserver/weblogic-dynamic-clusters-on-kubernetes

Overview

WebLogic Serverクラスタは、複数の管理対象サーバ・インスタンスで構成され、スケーラビリティと信頼性を向上させるために同時に実行し、連携して動作します。WebLogic Serverは構成済みと動的クラスタの2種類のクラスタ構成をサポートします。構成済みクラスタは手作業で各管理対象サーバインスタンスを構成して作成します。動的クラスタの場合、管理対象サーバ構成を単一の共有テンプレートから生成します。テンプレートを利用することで、管理対象サーバのクラスタ構成を大幅に簡素化し、動的にサーバをマシンリソースに割り当てることができるため、最小限の構成でリソースを最大限に活用できます。動的クラスタでは、追加サーバの容量が必要な場合、新規サーバインスタンスをクラスタに追加できます。個々に管理対象サーバを手作業で構成する必要はありません。また、構成済みクラスタとは異なり、動的クラスタのスケールアップはクラスタ向けに定義済みの一連のサーバに制限されませんが、ランタイムの要求に基づいて増やすことができます。
WebLogic Serverで動的クラスタの作成、構成、利用方法は、以下のドキュメントをご覧ください。
Oracle® Fusion Middleware Administering Clusters for Oracle WebLogic Server 12c (12.2.1.3.0)
Dynamic Clusters
http://docs.oracle.com/middleware/12213/wls/CLUST/dynamic_clusters.htm
Oracle® Fusion Middleware Oracle WebLogic Serverクラスタの管理 12c (12.2.1.3.0)
動的クラスタ
https://docs.oracle.com/cd/E92951_01/wls/CLUST/dynamic_clusters.htm

Support for Dynamic Clusters by Oracle WebLogic Server Kubernetes Operator

以前は、WebLogic Server Kubernetes Operatorは構成済みクラスタのみをサポートしていました。つまりOperatorは、構成済みクラスタに対して定義された管理対象サーバのみを管理、拡張できましたが、その制限はとうとう削除されました。Operatorは、動的クラスタをサポートすることで、最初に手作業で設定するのではなく、サーバテンプレートに基づいて管理対象サーバ・インスタンスの数を容易に調整できます。

Creating a Dynamic Cluster in a WebLogic Domain in Kubernetes

WebLogic Serverチームは、KubernetesでのWebLogic Serverの統合、Kubernetes上でのWebLogic Serverの動作保証に積極的に取り組んでいます。
WebLogic Server Certification on Kubernetes
https://blogs.oracle.com/weblogicserver/weblogic-server-certification-on-kubernetes
https://orablogs-jp.blogspot.jp/2018/01/weblogic-server-certification-on.html
Oracle WebLogic Server Kubernetes Operatorは、任意の数のWebLogicドメインの作成と管理、ドメイン起動の自動化、WebLogicクラスタのスケール、WebLogicクラスタにデプロイされたWebアプリケーションの負荷分散の管理、Elasticsearch、Logstash、およびKibanaとの統合を提供します。Operatorは現在、オープンソースプロジェクトとしてご利用いただけるようになっています。
Oracle Weblogic Server Kubernetes Operator
https://oracle.github.io/weblogic-kubernetes-operator/
WebLogicドメインを作成する場合、推奨方法は提供されるスクリプト(weblogic-domain.sh)を使い、Kuberenetesクラスタ内でWebLogicドメインの作成を自動化することです。
create-weblogic-domain.sh
https://github.com/oracle/weblogic-kubernetes-operator/blob/master/kubernetes/create-weblogic-domain.sh
このスクリプトはcreate-weblogic-domain-inputs.yamlという入力ファイルを取ります。このファイルはWebLogicドメインの構成プロパティを指定するものです。
create-weblogic-domain-inputs.yaml
https://github.com/oracle/weblogic-kubernetes-operator/blob/master/kubernetes/create-weblogic-domain-inputs.yaml
入力ファイルの以下のパラメータを使って動的クラスタを作成します。

initialManagedServerReplicas
ParameterDefinitionDefault
clusterNameドメインで生成するWebLogicクラスタインスタンスの名前cluster-1
clusterTypeWebLogicクラスタのタイプ(CONFIGUREDもしくは DYNAMIC)CONFIGURED
configuredManagedServerCountドメインに生成する管理対象サーバインスタンスの個数2
initialManagedServerReplicasドメインで最初に起動する管理対象サーバの個数2
managedServerNameBase管理対象サーバ名を生成するために使う基礎文字列。動的クラスタのサーバテンプレートでサーバ名の接頭辞として利用。managed-server

以下の構成例では、cluster-1という名前の動的クラスタを作成します。このクラスタには定義済みの管理対象サーバ4個(managed-server1 … managed-server4)があり、最初2個の管理対象サーバ(managed-server1と managed-server2)が立ち上がります。
# Type of WebLogic Cluster

# Legal values are "CONFIGURED" or "DYNAMIC"
clusterType: DYNAMIC

# Cluster name
clusterName: cluster-1

# Number of Managed Servers to generate for the domain
configuredManagedServerCount: 4

# Number of Managed Servers to initially start for the domain
initialManagedServerReplicas: 2

# Base string used to generate Managed Server names
managedServerNameBase: managed-server
WebLogicドメインを作成するには、入力ファイルと生成された構成ファイルを格納するための出力ディレクトリを指定して、create-weblogic-domain.shスクリプトを実行します。
create-weblogic-domain.sh
https://github.com/oracle/weblogic-kubernetes-operator/blob/master/kubernetes/create-weblogic-domain.sh
#> create-weblogic-domain.sh  –i create-domain-job-inputs.yaml  -o /path/to/weblogic-domain-output-directory
ドメイン作成スクリプトを使ってWebLogicクラスタを作成する場合、いくつかの制限があります。
  • スクリプトは指定の個数の管理対象サーバインスタンスを作成し、全てを1個のクラスタに配置する
  • スクリプトは常に1個のクラスタを作成する
代替策として、以下のURLに概要を記載しているように、WebLogicドメインを手作業で作成できます。
Manually creating a WebLogic domain
https://github.com/oracle/weblogic-kubernetes-operator/blob/master/site/manually-creating-domain.md

How WebLogic Kubernetes Operator Manages a Dynamic Cluster

Kubernetes Operatorは、Kubernetes APIを拡張して複雑なアプリケーションのインスタンスを作成、構成、管理するためのアプリケーション固有のコントローラです。Operatorsの詳細情報は、以下のエントリをご覧ください。
Introducing Operators: Putting Operational Knowledge into Software
https://coreos.com/blog/introducing-operators.html
Oracle WebLogic Server Kubernetes OperatorはKubernetesを拡張し、Kubernetes環境で動作する任意の個数のWebLogicドメインを作成、構成、管理します。ドメイン作成、ドメイン起動の自動化、構成済みクラスタならびに動的クラスタのいずれもスケールできる機能を有します。WebLogic Server Kubernetes Operatorの詳細は、以下のエントリをご覧ください。
Announcing the Oracle WebLogic Server Kubernetes Operator
https://blogs.oracle.com/weblogicserver/announcing-the-new-weblogic-server-kubernetes-operator
https://orablogs-jp.blogspot.jp/2018/03/announcing-oracle-weblogic-server.html
WebLogic Server Kubernetes Operatorは、Kubernetesクラスタ内の管理対象サーバのライフサイクルを管理するため、WebLogic動的クラスタを起動およびスケールアップ(アップまたはダウン)する機能を提供します。 WebLogic Server Kubernetes Operatorは、カスタムリソースドメイン(Custom Resource Domain、CRD)で定義された設定に基づいて、WebLogicドメインの起動を管理します。

動的クラスタの場合、Kubernetesクラスタで実行されているWLS Pod/管理対象サーバインスタンスの数は、次のドメインカスタムリソースYAMLファイルのClusterStartupエントリの 'replicas'という属性値で表されます。
clusterStartup:
  - desiredState: "RUNNING"
    clusterName: "cluster-1"
    replicas: 2
    env:
    - name: JAVA_OPTIONS
      value: "-Dweblogic.StdoutDebugEnabled=false"
    - name: USER_MEM_ARGS
      value: "-Xms64m -Xmx256m"
上記の例では、WebLogic Server Kubernetes OperatorはWebLogicドメイン起動中に2個のPod/管理対象サーバインスタンスをcluster-1という動的クラスタのために起動します。ドメインカスタムリソースYAMLファイルの詳細は以下のURLをご覧ください。
Starting a WebLogic domain
https://github.com/oracle/weblogic-kubernetes-operator/blob/master/site/starting-domain.md

Scaling of WebLogic Dynamic Clusters on Kubernetes

WebLogic Server Kubernetes Operatorを使ってスケールを開始するにはいくつかの方法があります。具体的には以下のようなものです。
  1. オンデマンドでCustom Resource Domain仕様を直接更新する(kubectlの利用)
  2. cURLなどを使い、WebLogic Server Kubernetes OperatorのREST APIを呼び出す
  3. WLDFポリシールールとスクリプトアクションを使って、WebLogic Kubernetes OperatorのREST API呼び出す
  4. Prometheusアラートアクションを使ってWebLogic Server Kubernetes OperatorのREST APIを呼び出す

    1) On-Demand, Updating the Custom Resource Domain Directly

    動的クラスタのスケールはCustom Resource Domainファイルを直接編集することで実現できます。具体的にはkubectl editコマンドを使って属性replicasの値を変更することで対応します。
    #> kubectl edit domain domain1 -n [namespace]
    このコマンドで定義済みのCustom Resource Domain仕様の編集が可能なエディタを開きます。コミットしたら、WebLogic Server Kubernetes Operatorは変更を検知して、実行中のPod/管理対象サーバインスタンスの数をreplicasの値と照合し、即座に対応する動的クラスタをスケールしようと試みます。

    Calling the Operator's REST Scale API

    WebLogic Server Kubernetes Operatorは、次のURL形式のRESTエンドポイントを公開しており、承認されたアクタがWebLogicクラスタのスケーリングを要求できます。
    http(s)://${OPERATOR_ENDPOINT}/operator/<version>/domains/<domainUID>/clusters/<clusterName>/scale
    • <version> : RESTリソースのバージョン
    • <domainUID> : 特定のドメインを示すために利用するユニークなID。Kubernetesクラスタ内の全ドメインにわたり一意である必要がある。
    • <clusterName> : スケールしたいWebLogicクラスタインスタンスの名前
    例えば以下のようなURLです。
    http(s)://${OPERATOR_ENDPOINT}/operator/v1/domains/domain1/clusters/cluster-1/scale
    /scaleというRESTエンドポイントでは、
    • HTTP POSTリクエストを受け付ける
    • リクエスト本体ではJSON(application/json)メディアタイプをサポートする
    • リクエスト本体はmanagedServerCountというシンプルな名前と値を持つ
    {
          ”managedServerCount": 3
    }
    managedServerCountで、スケール後のWebLogic Serverインスタンスの個数を指示します。

    Note: cURLコマンドを使ったREST APIの利用例は、以下のシェルスクリプトにあります。
    scalingAction.sh
    https://github.com/oracle/weblogic-kubernetes-operator/blob/master/src/scripts/scaling/scalingAction.sh

    Using a WLDF Policy Rule and Script Action to Call the Operator's REST Scale API

    WebLogic診断フレームワーク(WLDF)が提供するリソースメトリックに基づいて、Podの数を増やしたり減らしたりして、WebLogic Serverの動的クラスタを自動的に拡大/縮小できます。WLDFは、サーバーとアプリケーションのパフォーマンスを可視化するメトリックを収集し表出する一連のサービスとAPIです。WLDFでは、動的クラスタの自動スケーリングをサポートするPoliciesとActionsというコンポーネントを提供します。WLDFでは2種類のスケーリングをサポートしています。
    • カレンダーベースのスケール:特定の日時に実行される動的クラスターに対するスケール操作。
    • ポリシーベースのスケール:需要の変化に応じて実行される動的クラスタのスケール操作。
    このエントリでは、ルールを満たす際に構成済みアクションを自動的に実行するためのポリシー式を記述できるポリシーベースのスケーリングに焦点を当てます。これらのポリシーは、メモリ、アイドルなスレッド、CPU負荷など、1つ以上のWebLogic Serverメトリックを監視します。ポリシー内に設定したしきい値を超えると、ポリシーが呼び出され、対応するスケールアクションを実行します。

    Example Policy Expression Rule

    以下は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
    wls:ClusterGenericMetricRule("cluster-1","com.bea:Type=WebAppComponentRuntime,ApplicationRuntime=OpenSessionApp,*","OpenSessionsCurrentCount","&gt;=",0.01,5,"1 seconds","10 seconds")
    この ‘ClusterGenericMetricRule’ というスマートルールは、Server Runtime MBean Serverから公開されているJMXメトリックのトレンドを監察するために利用され、以下のように読むことができます。

    ‘cluster-1’というクラスタについては、WLDFがアプリケーション(OpenSessionApp)のMBean(WebAppComponentRuntime)の属性(OpenSessionsCurrentCount)を監視します。OpenSessionsCurrentCountがクラスタ内のサーバの5%で0.01以上である場合、ポリシーをTrueとして評価します。1秒のサンプリングレートでメトリックを収集し、指定された10秒間の保持タイムウィンドウでサンプルデータを平均化します。

    以下のツールのいずれかを使って、診断システムモジュール用のポリシーを構成できます。
    • WebLogic Server管理コンソール
    • WLST
    • REST
    • JMXアプリケーション
    以下はポリシー構成例です。myScaleUpPolicyというポリシーをWebLogic Server管理コンソールで表示しています。
    Example Action
    アクションはポリシー式がTrueと評価された場合に実行されるオペレーションです。WLDFは以下の種類の診断アクションをサポートしています。
    • Java Management Extensions (JMX)
    • Java Message Service (JMS)
    • Simple Network Management Protocol (SNMP)
    • Simple Mail Transfer Protocol (SMTP)
    • 診断イメージのキャプチャ
    • Elasticityフレームワーク
    • REST
    • WebLogicロギングシステム
    • スクリプト
    WebLogic Serverチームでは、scalingAction.shというサンプルのシェルスクリプトをScript Action用に用意しています。これでOperatorのRESTエンドポイントにリクエストを発行するしくみを説明しています。
    scalingAction.sh
    https://github.com/oracle/weblogic-kubernetes-operator/blob/master/src/scripts/scaling/scalingAction.sh
    以下はWebLogic Server管理コンソールのScript Action構成ページのスクリーンショットです。


    Script Actionの構成プロパティで重要な点を纏めておきます。
    • ScriptへのPathと作業ディレクトリの構成エントリは、WebLogicドメインホームへアクセスするためのボリュームマウントパス(/shared)を指定します。
    • scalingAction.shスクリプトはOperatorエンドポイントのSSL証明書にアクセスできる必要があり、これは環境変数INTERNAL_OPERATOR_CERTで情報が提供されます。OperatorのSSL証明書は、OperatorのConfigMap weblogic-operator-cmのinternalOperatorCertというエントリにあります。以下はその例です。
    #> kubectl describe configmap weblogic-operator-cm -n weblogic-operator

    Name:         weblogic-operator-cm
    Namespace:    weblogic-operator
    Labels:       weblogic.operatorName=weblogic-operator
    Annotations:  kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"v1","data":{"externalOperatorCert":"","internalOperatorCert":"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0t...

    Data
    ====
    internalOperatorCert:
    ----
    LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUR3akNDQXFxZ0F3SUJBZ0lFRzhYT1N6QU...
    • scalingAction.shスクリプトでは、数多くのカスタマイズ可能なパラメータを許容しています。
      • action - scaleUp もしくは scaleDown (必須)
      • domain_uid - WebLogicドメインの一意の識別子(必須)
      • cluster_name - WebLogicクラスタ名(必須)
      • kubernetes_master - KubernetesマスタのURL。デフォルトはhttps://kubernetes
      • access_token - RESTリソースへアクセスするための認証認可のService Account Bearerトークン
      • wls_domain_namespace - WebLogicドメインを定義したKubernetes名前空間。デフォルトはdefault
      • operator_service_name - RESTエンドポイントのWebLogic Operator Service名。デフォルトはinternal-weblogic-operator-service
      • operator_service_account - WebLogic OperatorのKubernetes Service Account名。デフォルトはweblogic-operator
      • operator_namespace – WebLogic Operatorをデプロイした名前空間。デフォルトはweblogic-operator
      • scaling_size – スケールアップ、ダウンによって増分するWebLogic Serverインスタンスの個数、デフォルトは1
    WLDFおよび診断ポリシーおよびアクションに関する詳細は、以下のドキュメントをご覧ください。
    Oracle® Fusion Middleware Oracle WebLogic Server診断フレームワークの構成と使用 12c (12.2.1.3.0)
    ポリシーとアクションの構成
    https://docs.oracle.com/cd/E92951_01/wls/WLDFC/config_watch_notif.htm
    Oracle® Fusion Middleware
    Configuring and Using the Diagnostics Framework for Oracle WebLogic Server 12c (12.2.1)
    Configuring Policies and Actions
    http://docs.oracle.com/middleware/1221/wls/WLDFC/config_watch_notif.htm#WLDFC188
    Note: WLDFを使った自動スケールの詳細は以下のエントリで説明しています。
    WebLogic on Kubernetes, Try It!
    https://blogs.oracle.com/weblogicserver/weblogic-on-kubernetes,-try-it
    https://orablogs-jp.blogspot.jp/2017/10/weblogic-on-kubernetes-try-it.html
    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クラスタの自動スケールについて、このエントリで紹介している方法と、以下の以前のエントリで紹介した方法にはいくつか重要な違いがあります。
    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
    • 以前のエントリでは、早期リリースだったので、構成済みクラスタのスケールのみをサポートしていました。
    • このエントリでは以下の違いがあります。
      • 動的クラスタをスケールするには、Webhookを使用する代わりにWebLogic Server Kubernetes Operatorを使用します。
      • 動的クラスタをスケールするには、RESTアクションではなくScript Actionを使用します。
      • Podをスケールするには、スケーリング・アクションが、Kubernetes APIサーバではなくOperatorのRESTエンドポイントに対するリクエストを呼び出します。

    Using a Prometheus Alert Action to Call the Operator's REST Scale API

    In addition to using the WebLogic Diagnostic Frameworkを利用するのに加えて、動的クラスタの自動スケールのために、Prometheusのような3rdパーティの監視アプリケーションを使うことができます。詳細は以下のエントリをご一読ください。
    Using Prometheus to Automatically Scale WebLogic Clusters on Kubernetes
    https://blogs.oracle.com/weblogicserver/using-prometheus-to-automatically-scale-weblogic-clusters-on-kubernetes-v5
    https://orablogs-jp.blogspot.jp/2018/04/using-prometheus-to-automatically-scale.html

    What Does the Operator Do in Response to a REST Scaling Request?

    WebLogic Server Kubernetes OperatorがスケールのリクエストをスケールRESTエンドポイントを通じて受け取ると、以下のアクションを実行します。
    • 指定されたユーザーが指定されたリソースに対して指定された操作を実行することを許可されていることを確認するために、認証および許可チェックを実行します。
    • domainUIDで識別される指定されたドメインが存在することを検証します。domainUIDは、この特定のドメインを識別するために使用される一意のIDです。このIDは、Kubernetesクラスタ内のすべてのドメインで一意でなければなりません。
    • clusterNameによって識別されるWebLogicクラスタが存在することを検証します。clusterNameは、スケーリング対象のWebLogicクラスタインスタンスの名前です。
    • スケール・リクエストの 'managedServerCount'値が、指定されたWebLogicクラスタの構成された最大クラスタサイズを超えないことを確認します。 動的クラスタの場合、'MaxDynamicClusterSize'は、スケールアップ操作で許可されている実行中の管理対象サーバ・インスタンスの最大数を指定するWebLogic属性です。 動的クラスタの構成に使用される属性の詳細は、以下のドキュメントをご覧ください。
      Oracle® Fusion Middleware Oracle WebLogic Server動的クラスタの拡張度の構成 12c (12.2.1.3.0)
      動的クラスタの構成
      https://docs.oracle.com/cd/E92951_01/wls/ELAST/requirements.htm#GUID-58D37E45-38A1-4EBF-BBD9-1BFE88F9C35E
      Oracle® Fusion Middleware
      Configuring Elasticity in Dynamic Clusters for Oracle WebLogic Server 12c (12.2.1)
      Configuring Dynamic Clusters
      https://docs.oracle.com/middleware/1221/wls/ELAST/requirements.htm#ELAST530
    • 対応するDomain Custom Resource内のReplicasプロパティを設定してスケールを開始します。これは以下のいずれかの方法で実行できます。
      • 特定のWebLogicクラスタに対してclusterStartupエントリを定義している場合
      • (例)
        Spec:
          …
          Cluster Startup:
            Cluster Name:   cluster-1
            Desired State:  RUNNING
            Env:
              Name:     JAVA_OPTIONS
              Value:    -Dweblogic.StdoutDebugEnabled=false
              Name:     USER_MEM_ARGS
              Value:    -Xms64m -Xmx256m
            Replicas:   2
           …
    • ドメインレベルで、clusterStartupエントリを特定のWebLogicクラスタ向けに設定していない場合や、startupControlプロパティをAUTOに設定している場合
      (例)
    • Spec:
        Domain Name:  base_domain
        Domain UID:   domain1
        Export T 3 Channels:
        Image:              store/oracle/weblogic:12.2.1.3
        Image Pull Policy:  IfNotPresent
        Replicas:           2
        Server Startup:
          Desired State:  RUNNING
          Env:
            Name:         JAVA_OPTIONS
            Value:        -Dweblogic.StdoutDebugEnabled=false
            Name:         USER_MEM_ARGS
            Value:        -Xms64m -Xmx256m
          Server Name:    admin-server
        Startup Control:  AUTO
    Note: 以下のコマンドを使って、WebLogic Kubernetesドメインリソースの完全な情報を閲覧できます。
    #> kubectl describe domain <domain resource name>
    • Custom Resource DomainのReplicaプロパティへの変更に対応し、OperatorはPod(管理対象サーバ)の個数を増減して所望のレプリカ個数に一致するよう調整します。

    Wrap Up

    WebLogic Serverチームは、Kubernetes環境でWebLogic Serverを統合するため、Kubernetes Operatorパターンに基づいて、Oracle WebLogic Server Kubernetes Operatorを開発しました。このOracle WebLogic Server Kubernetes Operatorを使って、WebLogicドメインのライフサイクル管理、具体的には、動的クラスタを拡張します。WebLogic Diagnostic Framework(WLDF、WebLogic診断フレームワーク)またはPrometheusなどのサードパーティの監視アプリケーションを使用して、オンデマンドまたは自動でWebLogicの動的クラスタのスケールが可能です。まとめると、Kubernetesクラスタ上で構成済みクラスタに比べてWebLogic動的クラスタを使用する利点は次のとおりです。
    • 単一のサーバテンプレートを使って管理対象サーバを構成できる
    • サーバ容量の追加が必要な場合、個々に手作業で構成せずに新たなサーバインスタンスをクラスタに追加できる
    • 構成済みクラスタとは異なり、動的クラスタのスケールアップはクラスタで定義済みのサーバ・セットに限定されず、ランタイムの要求に基づいて増加することが可能
    Oracle WebLogic Server Kubernetes Operatorをダウンロードして、動的クラスタの自動スケーリング機能をお試しになることをお勧めします。Oracle WebLogic Server Kubernetes Operatorを拡張するために追加される予定機能に関するエントリはしばらくお待ちください。
    Oracle Weblogic Server Kubernetes Operator
    https://github.com/oracle/weblogic-kubernetes-operator

    [Database] New in 18c: Introduction to In-Memory External Tables in 18c

    $
    0
    0
    原文はこちら。
    https://blogs.oracle.com/in-memory/introduction-to-in-memory-external-tables-in-18c

    2014年6月14日、Larry Ellisonは公式に同じデータを行方向、列方向のいずれからでも透過的にアクセスするための革命的なデュアルフォーマットストレージを導入した、新しいOracle Database In-Memoryオプションのローンチを発表しました。その年のOracle OpenWorldでは、ISV2社がIn-Memory External Tables(IMXT、インメモリ外部表)のサポートのリクエストをしてきました。IMXTのユースケースは以下のようなものです。
    • 顧客がOracleストレージにロードしたくないけれども、短時間で繰り返しスキャンする必要がある、価値の低いデータまたは一時的なデータ
    • Map/Reduceやその他のHadoopアグリゲーションツールで集約されたビッグデータ(レポート用にエンタープライズデータと結合する必要があります)
    • RDBMS側とHadoopツールの両方から問合せを行う必要があるため、Oracleストレージに再度複製する必要がないデータ
    エンタープライズデータとビッグデータを単に統合するだけでは、企業にとって価値は生まれないため、両方のソースからのデータを利用して高度な分析をする必要があります。このようなクエリでは、データアナリストが収益向上のために複数の手段を検討するため、繰り返しアプローチが必要になることがよくあります。これらの分析は、あらゆるエコシステムで最も豊富なSQLツールが存在するOracle Database内で実行する必要があり、両方のデータ・ソースへの高性能なアクセスが必要です。比較的短い時間内に外部データを繰り返しクエリする必要がある場合は、HDFSや他の外部ディスク・フォーマットにアクセスすることはコスト効率が悪いため、OracleのDBIM技術の恩恵を受けることができます。

    18.1より前では、外部データをOracle Databaseにロードせずに高速スキャンを実行する方法はありませんでした。以前のリリースで使用された、繰り返しの負荷や高性能スキャンを実行するために利用されたメカニズムの1つは、以下のようなものでした。
    Create Materialized View <imxtmv>
    Build Immediate Refresh Complete On Demand As
    Select * From <external table> INMEMORY;
    INMEMORY Materialized Viewを作成し、Query_Rewrite_Integrity parameterセッションをSTALE_TOLERATEDに設定します。この場合、クエリプランはその行ソースとしてMAT_VIEW ACCESS INMEMORY FULLと表示されます。

    その他関連するリクエストとして、以下のようなものがありました。
    • In-Memory DBLINKs
    • In-Memory only Materialized Views
    個人的には、これらの実装計画がどうなっているか承知していません。

    What's in Oracle 18.1

    18.1では、2個のレガシー・ドライバ(ORACLE_LOADERおよびORACLE_DATAPUMP)を使用する外部表用のINMEMORY MEMCOMPRESS句を実装しました。ビッグ・データ・ドライバ(ORACLE_HDFSおよびORACLE_HIVE)のサポートを追加しています。

    INMEMORY句は、Reject Limit句と同じセクションの表定義の最後にあります。
    create table s_et(
        s_suppkey            number ,
        s_name               char(25) ,
        s_address            varchar2(40) ,
        s_nationkey          number ,
        s_phone              char(15) ,
        s_acctbal            number ,
        s_comment            varchar2(101)
    )
    organization external (
    type ORACLE_LOADER
    default directory T_WORK
    access parameters
    (
        records delimited by newline
        nobadfile
        nologfile
        fields terminated by '|'
        missing field values are null
      )
      location (T_WORK:'supplier.tbl'))
    reject limit unlimited
    INMEMORY MEMCOMPRESS FOR CAPACITY;
    全てのDBIM圧縮レベルがサポートされ、ヒープ表で実施している場合と同じ意味です。
    • NO INMEMORY
    • INMEMORY
    • INMEMORY NO MEMCOMPRESS
    • INMEMORY MEMCOMPRESS FOR QUERY LOW
    • INMEMORY MEMCOMPRESS FOR QUERY HIGH
    • INMEMORY MEMCOMPRESS FOR CAPACITY LOW
    • INMEMORY MEMCOMPRESS FOR CAPACITY HIGH
    'INMEMORY'を単独で使用すると、 'INMEMORY MEMCOMPRESS FOR QUERY LOW'が表示されます。

    Table must be fully loaded before use

    ヒープ表との主な違いの1つは、テーブル・スキャンで使用できるようになる前に、インメモリ外部表が完全にメモリにロードされている必要があります。外部表では現在、ハイブリッドIn-Memory/On-Diskスキャンはサポートされていません。v$im_segmentsを使用して母集団の状態を確認する方法については、以下のData Dictionaryの章をご覧ください。

    Session must set Query_Rewrite_Integrity

    In-Memory外部表は、リフレッシュ・オンデマンド・マテリアライズド・ビューのように機能します。In-Memory領域にデータが移入されると、Location句で指定された外部ファイルの変更を認識しません。ヒープ表とは異なり、外部表は一般的にDMLをサポートしていないため、問題はほとんどの場合、1個以上の異なる(より新しい)バージョンに置き換えられている可能性がある、という点です。

    したがって、In-Memoryスキャンは外部スキャンとは異なる結果を返す可能性があるため、リフレッシュ・オンデマンド・マテリアライズド・ビューを使用する場合と同じように、ユーザーはこれでOKであることを明示的に知らせる必要があります。 これは次のように設定します。
    SQL> alter session set query_rewrite_integrity=stale_tolerated;
    最初に記載したユースケースについては、実のところリアルなメリットがあります。例えば、外部プロセスがcsv形式で出力を生成したり、またはmap-reduceジョブがHDFSファイルを作成したりしているとします。インメモリスナップショットをディスクファイルから切り離すと、実行中のクエリを中断することなく外部プロセスを完了できます。次に、外部プロセスが完了したら、dbms_inmemory.repopulateを呼び出して外部データの新しいIn-Memoryスナップショットを作成することができます。 現在、古いスナップショットに対して実行されているクエリは、IMCU(In-Memory Compression Unit、インメモリ圧縮ユニット)の読み取りラッチを保持するため、正常に完了するはずです。

    Data Dictionary

    外部表の In-Memory 属性を以下の6個のビューのいずれかで確認できます。
    1. USER_EXTERNAL_TABLES
    2. ALL_EXTERNAL_TABLES
    3. DBA_EXTERNAL_TABLES
    4. USER_TABLES
    5. ALL_TABLES
    6. DBA_TABLES
    上で示したサンプル表の場合、以下のようにして確認できます。
    SQL> column TABLE_NAME format a10
    SQL> select table_name, inmemory, inmemory_compression
      2  from user_tables where EXTERNAL = 'YES'

    TABLE_NAME INMEMORY INMEMORY_COMPRESS
    ---------- -------- -----------------
    R_ET       DISABLED
    N_ET       DISABLED
    S_ET       ENABLED  FOR QUERY LOW
    3 rows selected.
    また、DBIMが外部表を含めるために利用するv$ビューの一部を拡張しています。

    v$im_segments とv$im_segment_detail というビューは両者ともIS_EXTERNALという新しい列を持ち、値としてTRUE、FALSEを取ります。例えば、サンプル表をリードし、ヒープ表にサンプル表からデータをロードします。
    SQL> exec dbms_inmemory.populate(USER,'S_ET');

    PL/SQL procedure successfully completed.

    SQL> exec dbms_inmemory.populate(USER,'SUPPLIER');

    PL/SQL procedure successfully completed.

    SQL> select SEGMENT_NAME,INMEMORY_SIZE,BYTES_NOT_POPULATED,POPULATE_STATUS,IS_EXTERNAL
       from v$im_segments;

    SEGMENT_NAME INMEMORY_SIZE BYTES_NOT_POPULATED POPULATE_STAT IS_EX
    ------------ ------------- ------------------- ------------- -----
    SUPPLIER           2359296                   0 COMPLETED     FALSE
    S_ET               2228224                   0 COMPLETED     TRUE     
    In-Memory外部表をクエリする前に、表が完全にロードされていることを確認するため、v$im_segmentsのbytes_not_populatedおよびpopulate_status列をチェックする必要があります。

    Notes

    • 現在サポートされている外部表ドライバは、ORACLE_LOADERおよびORACLE_DATAPUMPです。
    • 外部表のインメモリコンテンツを更新するために、DBMS_INMEMORY.(re)populateを明示的に起動する必要があります。
    • 外部表のインメモリコンテンツの移入はシリアル(直列)です。
    • In-Memory外部表のシリアルスキャンのみがサポートされています。 Parallel Queryはまだサポートされていません。
      • インメモリースキャンが外部表に対するスキャンよりもはるかに高速であるため、重大なパフォーマンスの障害になることはまずありません。
    • INMEMORY句のMEMCOMPRESS副句だけがサポートされています。PRIORITY、DISTRIBUTEおよびDUPLICATEの副句はまだサポートされていません。
    • パーティション化されていない外部表のみがサポートされています。パーティションまたはパーティション化された外部表の最上位レベルでINMEMORYを指定すると、エラーが発生します。

    [Java] 新しいJavaリリースモデルについて

    $
    0
    0
    2018年5月17日に開催されたJava Day Tokyo 2018で、「JDKの新しいリリースモデル」というセッションがありました。
    JDKの新しいリリースモデル
    http://otndnld.oracle.co.jp/ondemand/javaday2018/JSE-3
    スライド7枚目に以下のようにありますね。33枚目には表形式でまとまっています。
    • Oracleの無償用バイナリ (Feature Release)
    • Oracleの有償用バイナリ (LTS Release)
      • 3年ごとのFeature Releaseの特定バージョンに対して設定
      • Java SE 11からリリース予定
    で、Feature Releaseの無償用バイナリとは、スライド33枚目にもある通り、OpenJDKベースです。JDK 10の参照実装ダウンロードページにも、以下のようにOpenJDKベースのバイナリであるとの記載があります。
    Java Platform, Standard Edition 10 Reference Implementations
    http://jdk.java.net/java-se-ri/10
    The official Reference Implementation for Java SE 10 (JSR 383) is based solely upon open-source code available from the JDK 10 Project in the OpenJDK Community.
    (Java SE 10 (JSR 383)の公式参照実装は、OpenJDK CommunityのJDK 10プロジェクトから入手可能なオープンソースコードのみに基づいています)
    Javaのリリースモデル変更に関連して、様々な憶測や解釈、誤解が散見されます。まずはこのセッション・スライドを熟読されることをお勧めします。

    [Kubernetes, Docker, Cloud] Kubernetes: A Cloud (and Data Center) Operating System?

    $
    0
    0
    原文はこちら
    https://blogs.oracle.com/cloud-infrastructure/kubernetes-a-cloud-and-data-center-operating-system

    主要なクラウドプロバイダー全体でKubernetesの採用が拡大するにつれて、Kubernetes自体をOSのコンセプトとの比較は興味深いものです。Wikipediaによると、OSは「コンピュータのハードウェアとソフトウェアのリソースを管理し、コンピュータプログラムに共通のサービスを提供するシステムソフトウェア」と定義されています。
    Operating System (Wikipedia)
    https://en.wikipedia.org/wiki/Operating_system
    抽象的には、これはクラウドプロバイダーで動作するKubernetesと、Kubernetesの上で動作するように構築されたアプリケーションの現在のモデルとそれほど違いがありません。この文脈でKubernetesについて考え始めた場合、Kubernetesの過去と将来について何を学ぶことができるでしょうか。

    Kubernetes Value Proposition

    データセンター運用者は、運用コストやオーバーヘッドを最小限に抑えるために、OSを含む、より小さな基本コンポーネントの標準化に価値があることを長い間理解してきました。コンテナオーケストレーションの(多少複雑ですが)オープンな標準の価値を認識しているため、顧客とベンダーはどちらもその代替としてKubernetesに集まってきています。

    企業がコンテナテクノロジを採用したことで、オンプレミスアプリケーションからクラウドへの移行を容易にし、クラウドプロバイダ間のロックインを回避し、将来のハイブリッド・デプロイメントやサーバーレスアプリケーションでも使用できるファブリックを提供する方法として、企業もまた、このオープンなKubernetesプラットフォーム上に構築する機会を認識しました。
    Announcing Fn–An Open Source Serverless Functions Platform
    https://blogs.oracle.com/developers/announcing-fn
    https://orablogs-jp.blogspot.com/2017/10/announcing-fnan-open-source-serverless.html

    Cloud OS - Present and Future

    通常、OSを、OSの下の(ハードウェアとソフトウェア)リソースの間のレイヤー、その上で動作するアプリケーションという、サンドイッチの一部、として考えています。Kubernetesのアナロジーの文脈では、クラウドプロバイダー(もしくはオンプレミスのデータセンター)が下にあり、ビジネスアプリケーションが上にあります。一般に、OSレイヤーの仕事は基盤となるリソースと対話するという複雑性を抽象化し、アプリケーションの構築および実行をより簡単にすることです。

    当然ながら、全てのプロバイダーがここで等しく立てるわけではありません。Raspberry PiやハイエンドのベアメタルサーバーでLinuxを動かすことができるのと同じように、洗練度の違いはあれどKubernetesをクラウドで実行できます。高い予測可能なパフォーマンスを備えた、基盤となるコンピュートやストレージ、ネットワークだけでなく、セキュリティ、ガバナンス、管理インターフェースなどの、まさにクラウド・ファブリックが、エンタープライズグレードのKubernetesとそれを利用するアプリケーションを実現するために重要です。

    Linuxがカーネルの枠を超えて拡大しているように、将来の”Cloud OS”は基礎となるKubernetesの枠を超えて、今日”Kubernetes add-on"として一般に考えられているものを含むだけでなく、本当に必要なものクラウド(もしくはデータセンター)OSのコンポーネントとなるために必要なものも含めて実現するために広がっていくことでしょう。関連する例として、サービスメッシュ(IstioやLinkerd)、serverless functions(Fn project)、監視、ロギングのアドオン、そしてKubernetes "operators"、Kubernetesでステートフルなアプリケーション(例えばWebLogic Operator、MySQL Operator、さらにはKubernetes自身のためのoperatorもありです)を実現するためのフレームワークのようなものがあります。
    Istio
    https://istio.io/
    Linkerd
    https://linkerd.io/
    Fn project
    https://fnproject.io/
    WebLogic Operator
    https://blogs.oracle.com/weblogicserver/announcing-the-new-weblogic-server-kubernetes-operator
    https://orablogs-jp.blogspot.com/2018/02/announcing-new-weblogic-server.html
    MySQL Operator
    https://github.com/oracle/mysql-operator
    クラウドプロバイダーはこれらすべてのコンポーネントをマネージドCloud OSにパッケージングする方向に向かっています。こうすることで、自身のユーザー、開発者、企業が彼ら自身のコンテナインフラストラクチャの、特に高可用性の文脈における複雑な管理をしなくてすむようにし、OSの継続的な完全性と、下位のサービス層との互換性を確保できます。

    Announcing Availability

    これこそがOracle Cloud Infrastructureで将来に向けて取り組んでいることです。つまり、上流のオープンソースプロジェクトの成果をそのまま変更せずに採用し、優れたパフォーマンス、可用性、セキュリティを備え、エンタープライズグレードのクラウドインフラストラクチャで管理された、オープンな標準ベースのCloud OSです。弊社のお客様はお客様のアプリケーションを自身を持ってこの上で実行できますし、データセンターとクラウドの間を自由に移動できます。

    Oracle Cloud Infrastructure RegistryとContainer Engine for Kubernetesという、2個の重要なCloud OSのピースを、Oracleはこのたび一般提供(GA)しました。
    Oracle Cloud Infrastructure Registry
    https://cloud.oracle.com/containers/registry
    Container Engine for Kubernetes
    https://cloud.oracle.com/containers/kubernetes-engine
    • レジストリは、デプロイメントと同じリージョン内にコンテナイメージを格納および共有するための、可用性の高い、プライベート・コンテナ・レジストリ・サービスです。
    • Container Engine for Kubernetesは、上流の標準Kubernetesのプロダクショングレードのコンテナオーケストレーションと、Oracleの次世代クラウドインフラストラクチャの管理とセキュリティ、予測可能な高いパフォーマンスを組み合わせた、フルマネージドの、エンタープライズ対応のコンテナ・サービスです。
      Oracle Cloud Infrastructure
      https://cloud.oracle.com/cloud-infrastructure
    Cloud OSへの旅のいまどのあたりにいらっしゃいますか?現在のコンテナ戦略、弊社がお手伝いできるかどうか、伺えると幸甚です。みなさまから弊社の計画に対するご意見をお寄せください。

    [Kubernetes, Docker, Cloud, WLS] Announcing WebLogic Server Certification on Oracle Cloud Infrastructure Container Engine for Kubernetes

    $
    0
    0
    原文はこちら
    https://blogs.oracle.com/weblogicserver/announcing-weblogic-server-certification-on-oracle-cloud-infrastructure-container-engine-for-kubernetes

    5月7日にWebLogic Server Kubernetes Operatorの一般提供(GA)を発表しました。これはOracle Cloud Infrastructure上でのWebLogic ServerとOperatorの動作構成を保証することも含んでいます。この最初の発表で、WebLogic ServerとOperator OCIの動作保証は、TerraForm Kubernetes Installerを使ってOCI上で構築したKubernetesクラスタでのものでした。この発表の詳細については、以下のエントリをご覧ください。
    Announcing General Availability version of the WebLogic Server Kubernetes Operator
    https://blogs.oracle.com/weblogicserver/announcing-general-availability-version-of-the-weblogic-server-kubernetes-operator
    https://orablogs-jp.blogspot.com/2018/05/announcing-general-availability-version.html
    本日、更にOCI上で動作するOracle Container Engine for KubernetesでのWebLogic ServerとOperatorの構成の動作保証を発表します。詳細は以下のエントリをご覧ください。
    Kubernetes: A Cloud (and Data Center) Operating System?
    https://blogs.oracle.com/cloud-infrastructure/kubernetes-a-cloud-and-data-center-operating-system
    https://orablogs-jp.blogspot.com/2018/06/kubernetes-cloud-and-data-center.html
    Oracle Container Engine for Kubernetesはスケーラブルで可用性の高い、フルマネージドのサービスで、これを使うとコンテナ化されたアプリケーションをクラウドにデプロイできます。
    以下のエントリでは、OCI Registryに格納されたWebLogic ServerとOperatorのイメージを使って、OCI Container Engine for Kubernetesで動作するWebLogic Kubernetes Operatorが管理する、WebLogicドメインやWebLogicクラスタを実行する手順を説明しています。
    How to run WebLogic clusters on the Oracle Cloud Infrastructure Container Engine for Kubernetes
    https://blogs.oracle.com/weblogicserver/how-to-run-weblogic-clusters-on-the-oracle-cloud-infrastructure-container-engine-for-kubernetes

    まもなく、以下の内容について簡単な方法をご提示できそうです。
    • WebLogic Deploy Toolingを使った、Kubernetes上のWebLogic Serverドメインの移行
      WebLogic Deploy Tooling
      https://github.com/oracle/weblogic-deploy-tooling
    • Oracle Container Pipelinesを使ってKubernetes上のWebLogic環境のCI/CDの追加
    • 新機能や拡張機能の追加
    説明されたWebLogic ServerとOperatorの機能は、 OCIとの間で完全な互換性がある、標準のKubernetesインフラストラクチャ、ならびにその他のKubernetesを使うプライベートクラウド、パブリッククラウドででサポートされます。Operator、Prometheus Exporter、WebLogic Deploy Toolingは全てオープンソースで開発されています。皆様からのフィードバックをお待ちしています!

    [WLS, Cloud, Docker, Kubernetes] How to run WebLogic clusters on the Oracle Cloud Infrastructure Container Engine for Kubernetes

    $
    0
    0
    原文はこちら
    https://blogs.oracle.com/weblogicserver/how-to-run-weblogic-clusters-on-the-oracle-cloud-infrastructure-container-engine-for-kubernetes

    WebLogicクラスタを実行するためにKubernetes環境をセットアップするには様々な方法があります。Oracleは、本番モードもしくは開発モードのWebLogicクラスタを、オンプレミスもしくはクラウドでKubernetes上で実行したいお客様をサポートします。このエントリでは、Oracle Cloud Infrastructure (OCI) Container Engine for Kubernetesを使用してWebLogicクラスタを実行する手順について説明します。Kubernetesマネージドサービスは、基盤となるOracle Cloud Infrastructure(OCI)と完全に統合されているため、Kubernetesクラスタを簡単にプロビジョニングし、ロードバランサ、ボリューム、ネットワークファブリックなどの必要なサービスを簡単に提供できます。
    OKEPICTURE2.png

    Prerequisites:

    1. Dockerイメージ:
    • WebLogic Server (weblogic-12.2.1.3:latest).
    • WebLogic Kubernetes Operator (weblogic-operator:latest)
    • Traefik Load Balancer (traefik:1.4.5)
  • Dockerとkubectlのインストール、構成が完了しているワークステーション
  • Oracle Container Engine for Kubernetes on OCI。OCIでKubernetesマネージドサービスをセットアップするには、以下のドキュメントに従う。
    Overview of Container Engine for Kubernetes
    https://docs.us-phoenix-1.oraclecloud.com/Content/ContEng/Concepts/contengoverview.htm
  • OCI Container Engine for KubernetesノードにSSHでアクセスできること
  • WebLogic Server、Operator、Load BalancerイメージをプッシュするためのOracle Cloud Infrastructure Registry
    Overview of Registry
    https://docs.us-phoenix-1.oraclecloud.com/Content/Registry/Concepts/registryoverview.htm
  • Prepare the WebLogic Kubernetes Operator environment

    環境準備のために以下を実施する必要があります。
    • OCI Container Engine for the Kubernetesクラスタへのアクセス確認ならびにRBACポリシーの設定
    • NFSサーバの構成
    • OCI Registry (OCIR) へのDockerイメージのアップロード
    • OCIRにあるDockerイメージの名前を反映するため、構成YAMLファイルを編集

    Test accessibility and set up the RBAC policy for the OKE cluster

    OCI Container Engine for Kubernetesノードへのアクセス確認のため、以下のコマンドを実行します。
    kubectl get nodes
    以下のような出力でノードが表示されるはずです。
    NAME              STATUS    ROLES     AGE       VERSION
    129.146.109.106   Ready     node      5h        v1.9.4
    129.146.22.123    Ready     node      5h        v1.9.4
    129.146.66.11     Ready     node      5h        v1.9.4
    Kubernetesクラスタへのアクセス権限を有するには、OCI Container Engine for Kubernetesクラスタのcluster-adminとしてご利用のOCIアカウントを認可する必要があります。これにはOCID(OCIコンソールページのユーザー設定の下にあります)が必要です。例えば、OCIDがocid1.user.oc1..aaaaaaaac26kw7qvuij7i6fadabklqfb7svyuhpitedmguspv6ht67i5l32qの場合、コマンドは以下のようになります。
    kubectl create clusterrolebinding my-cluster-admin-binding --clusterrole=cluster-admin --user=ocid1.user.oc1..aaaaaaaac26kw7qvuij7i6fadabklqfb7svyuhpitedmguspv6ht67i5l32q

    Set up the NFS server

    現在ご利用いただけるOCI Container Engine for Kubernetesのバージョンでは、ノード間で共有可能なアクセス権RWOnce(一人のみが書き込め、その他は読み取りのみ)のネットワークブロックストレージをサポートします。このとき、WebLogic Server Kubernetes Operatorで作成されたKubernetes上のWebLogicドメインでは、WebLogicドメインの構成を保存するために共有ファイルシステムが必要です。この共有ファイルシステムはノード全体の全てのPodからアクセスできる必要があります。回避策として、NFSサーバを一つのノードにインストールし、全ノード間でファイルシステムを共有する必要があります。

    Note: WebLogic Server on OCI Container Engine for Kubernetes上でWebLogic Serverを実行する場合、NFS 3.0を使うことを現状推奨しています。動作確認の間、NFS 4.0を使うとWebLogicドメインのサーバが断続的に障害状態に陥ることがわかりました。服すのスレッドがNFS(デフォルトストア、診断ストア、Node Manager、ロギング、ドメインホーム)を使うため、ファイルストアにアクセスする際に問題があります。これらの問題はNFSのバージョンを3.0にすることで解消されます。

    このデモでは、Kubernetesクラスタは以下のIPアドレスを持つノードを利用します。
    Node1: 129.146.109.106  

    Node2: 129.146.22.123  

    Node3: 129.146.66.11
    上記の場合、NFSサーバをNode 1(129.146.109.106)にインストールし、Node 2(129.146.22.123)、Node 3(129.146.22.123)をクライアントとして利用します。各ノードに対応するプライベートIPアドレスを調べるために、各ノードに以下のコマンドを使ってログインします。
    ssh -i ~/.ssh/id_rsa opc@[Public IP of Node]

    ip addr | grep ens3
    ~/.ssh/id_rsa はSSHで利用するRSA秘密鍵のパスです。
    例えば、Node 1の場合以下のようになります。
    ssh -i ~/.ssh/id_rsa opc@129.146.109.106

    ip addr | grep ens3
    blog17.png

    各ノードのプライベートIPアドレスを調べた結果を纏めました。
    Nodes:Public IPPrivate IP
    Node1 (NFS Server)129.146.109.10610.0.11.3
    Node2129.146.22.12310.0.11.1
    Node3129.146.66.1110.0.11.2

    SSHでNode 1にログインし、NFSをインストール、設定します。
    /etc/exports ファイルを編集して、Node 2、Node 3の内部IPアドレスを追加しておきます。
    /scratch 10.0.11.1(rw)
    /scratch 10.0.11.2(rw)
      • sudo su -
      • yum install -y nfs-utils
      • mkdir /scratch
      • chown -R opc:opc /scratch
      • vi /etc/exports
    1. systemctl restart nfs
    2. exit
    3. SSHでNode 2にログインします。
      ssh -i ~/.ssh/id_rsa opc@129.146.22.123
      Node 1の内部IPを追加するために、 /etc/fstab を編集します。
      10.0.11.3:/scratch /scratch nfs nfsvers=3 0 0
        • sudo su -
        • yum install -y nfs-utils
        • mkdir /scratch
        • vi /etc/fstab
      1. mount /scratch
      2. exit
      3. Node 3に対しても同様の手順を繰り返します。
        ssh -i ~/.ssh/id_rsa opc@129.146.66.11
        /etc/fstabを編集し、Node 1の内部IPを追加します。
        10.0.11.3:/scratch /scratch nfs nfsvers=3 0 0
          • sudo su -
          • yum install -y nfs-utils
          • mkdir /scratch
          • vi /etc/fstab
        1. mount /scratch
        2. exit
        3. Upload the Docker images to the OCI Registry

          WebLogic Server 12.2.1.3とWebLogic Kubernetes Operatorに必要なDockerイメージをビルドします。
          WebLogic on Docker
          https://github.com/oracle/docker-images/tree/master/OracleWebLogic/
          Oracle Weblogic Server Kubernetes Operator
          https://github.com/oracle/weblogic-kubernetes-operator
          TraefikのDockerイメージはDocker HubリポジトリからPullします。以下はその例です。
          docker login

          docker pull traefik:1.4.5
          Dockerイメージに以下のようにタグを付けます。
          docker tag [Name Of Your Image For Operator]  phx.ocir.io/weblogicondocker/weblogic-kubernetes-operator:latest

          docker tag [Name Of Your Image For WebLogic Domain] phx.ocir.io/weblogicondocker/weblogic:12.2.1.3

          docker tag traefik:1.4.5 phx.ocir.io/weblogicondocker/traefik:1.4.5
          認証トークンを生成してphx.ocir.ioOCIR Dockerリポジトリにログインします。
          OCIダッシュボードにログインし、”User Settings"をクリックした上で、左側のメニューの”Auth Tokens"をクリックします。

          生成されたパスワードを安全な場所に保存します。
          OCIR Dockerレジストリに以下のコマンドを使ってログインします。
          docker login phx.ocir.io
          ユーザー名を尋ねてくるので、OCIテナント名/OCIユーザー名を指定します。
          docker login phx.ocir.io

          Username: weblogicondocker/myusername          
          Password:
          Login Succeeded
          Dockerレジストリシークレットを作成します。このシークレット名は小文字のアルファベットもしくは数字で構成されていなければなりません。
          kubectl create secret docker-registry <secret_name> --docker-server=<region>.ocir.io --docker-username=<oci_tenancyname>/<oci_username>

          --docker-password=<auth_token> --docker-email=example_email
          例えば、PHX registry用にocisecretというDockerシークレットを作成する場合は以下の通りです。
          kubectl create secret docker-registry ocisecret --docker-server=phx.ocir.io --docker-username=weblogicondocker/myusername --docker-password= _b5HiYcRzscbC48e1AZa  --docker-email=myusername@oracle.com
          DockerイメージをOCIRにPushします。
          docker push phx.ocir.io/weblogicondocker/weblogic-kubernetes-operator:latest

          docker push phx.ocir.io/weblogicondocker/weblogic:12.2.1.3

          docker push phx.ocir.io/weblogicondocker/traefik:1.4.5
          OCIコンソールにログインしてイメージを検証します。
          1. Log in to the OCI consoleにログインし、正しいリージョンを使っていることを確認する(例:us-phoenix-1
          2. ContainersからRegistryを選択すると、イメージがRegistryのページで確認できるはず。
          3. イメージ名をクリックし、”Actions"を選択して”Public"に変更

          Modify the configuration YAML files to reflect the Docker image names in the OCIR

          最終ステップでは、入力ファイルのパラメータをカスタマイズし、WebLogic cluster、WebLogic OperatorのデプロイメントYAMLファイルを生成し、Traefikロードバランサを使ってイメージの変更とローカル構成を反映します。ここでは、事前に用意されているスクリプト(reate-weblogic-operator.sh and create-weblogic-domain.sh)を使います。

          Gitを使い、WebLogic Kubernetes Operatorプロジェクトをダウンロードします。
          git clone https://github.com/oracle/weblogic-kubernetes-operator.git


          YAML入力ファイルを編集し、イメージ名を反映します。
          cd $SRC/weblogic-kubernetes-operator/kubernetes
          Change the ‘image’ フィールドを変更し、OCIRの対応するDockerリポジトリのイメージ名を指定します。
          ./internal/create-weblogic-domain-job-template.yaml:   image: phx.ocir.io/weblogicondocker/weblogic:12.2.1.3
          ./internal/weblogic-domain-traefik-template.yaml:      image: phx.ocir.io/weblogicondocker/traefik:1.4.5
          ./internal/domain-custom-resource-template.yaml:       image: phx.ocir.io/weblogicondocker/weblogic:12.2.1.3
          ./create-weblogic-operator-inputs.yaml:         weblogicOperatorImage: phx.ocir.io/weblogicondocker/weblogic-kubernetes-operator:latest
          create-weblogic-operator-inputs.yaml と create-weblogic-domain-inputs.yaml のその他のパラメータを確認し、変更します。OperatorとWebLogicドメインのインストール手順にある全てのオプションや記述をチェックします。
          WebLogic Kubernetes Operator Installation
          https://github.com/oracle/weblogic-kubernetes-operator/blob/master/site/installation.md
          Creating a WebLogic domain
          https://github.com/oracle/weblogic-kubernetes-operator/blob/master/site/creating-domain.md
          以下は create-weblogic-operator-inputs.yaml でこのデモ用にカスタマイズした値のリストです。
          create-weblogic-operator-inputs.yaml
          https://github.com/oracle/weblogic-kubernetes-operator/blob/master/kubernetes/create-weblogic-operator-inputs.yaml
          targetNamespaces: domain1

          weblogicOperatorImage: phx.ocir.io/weblogicondocker/weblogic-kubernetes-operator:latest

          externalRestOption: SELF_SIGNED_CERT

          externalSans: IP:129.146.109.106
          以下は create-weblogic-domain-inputs.yaml でこのデモ用にカスタマイズした値のリストです。
          create-weblogic-domain-inputs.yaml
          https://github.com/oracle/weblogic-kubernetes-operator/blob/master/kubernetes/create-weblogic-domain-inputs.yaml
          domainUID: domain1

          t3PublicAddress: 0.0.0.0

          exposeAdminNodePort: true

          namespace: domain1

          loadBalancer: TRAEFIK

          exposeAdminT3Channel: true
          weblogicDomainStoragePath: /scratch/external-domain-home/pv001
          Note: 現時点では、OCI Container Engine for Kubernetes上でWebLogic Serverを動作させる場合、TraefikとApache HTTP Serverをロードバランサとして利用することを推奨しています。Voyager HAProxy Ingress ControllerはOKEでサポートしていないため、動作保証できません。

          WebLogicドメインはパラメータweblogicDomainStoragePathで指定されたパスにマップされた永続ボリュームを使います。以下のコマンドで、永続ボリュームディレクトリをNode 1のNFSサーバに作成しましょう。
          ssh -i ~/.ssh/id_rsa opc@129.146.109.106 "mkdir -m 777 -p /scratch/external-domain-home/pv001"
          今回のデモドメインは名前空間 domain1 で動作するよう構成済みです。名前空間 domain1 を作成するには、以下のコマンドを実行します。
          kubectl create namespace domain1
          管理サーバへのアクセスのためのユーザー名とパスワードは、ドメイン稼働する名前空間と同一の名前空間のKubernetesシークレットに格納しておかねばなりません。ファイルへの資格証明を保存しないようにするため、スクリプトではシークレットを作成しません。Oracleは以下のコマンドをSSHで実行し、資格証明のセキュリティを保護するための適切な手段を講じることを推奨します。

          シークレットを作成するには、以下のコマンドを発行します。
          kubectl -n NAMESPACE create secret generic SECRET_NAME

            --from-literal=username=ADMIN-USERNAME

            --from-literal=password=ADMIN-PASSWORD
          今回のデモでは、以下の値を使いました。
          kubectl -n domain1 create secret generic domain1-weblogic-credentials --from-literal=username=weblogic --from-literal=password=welcome1
          最後に、入力ファイルと出力ディレクトリを指定してcreateスクリプトを実行します。
          ./create-weblogic-operator.sh –i create-weblogic-operator-job-inputs.yaml  -o /path/to/weblogic-operator-output-directory
          これで、関連する全てのOperatorデプロイメントを作成し、それらを起動します。

          以下のコマンドを実行してOperatorとPodの状態を確認します。


          同じコマンドを実行してWebLogicドメインの作成を実施します。
          ./create-weblogic-domain.sh –i create-weblogic-domain-job-inputs.yaml  -o /path/to/weblogic-domain-output-directory


          WebLogicクラスタの状態を確認するには、以下のコマンドを実行します。
          bash-4.2$ kubectl get pods -n domain1


          ロードバランサが動作している様子を確認しましょう。そのために、WebLogic Server管理コンソールにログインし、testwebapp.warというアプリケーションをデプロイします。WebLogicドメイン用にカスタマイズした入力ファイルでは、AdminNodePortを公開するよう指定していました。ポート番号を確認するには、以下のコマンドを実行します。

          Nodeの外部IPアドレスの一つを使い、管理コンソールにアクセスしましょう。今回の場合、 http://129.146.109.106:30701/console でアクセスします。WebLogic Server管理コンソールへのログインには、資格証明としてweblogic/welcome1を使います。

          ”デプロイメント”、”ロックして編集”をクリックして、testwebapp.warアプリケーションをアップロードします。
          testwebapp.war
          https://github.com/bhabermaas/kubernetes-projects/blob/master/apps/testwebapp.war
          cluster-1をターゲットとして選択し、”終了”、”構成の解放"をクリックします。”制御”タブを選択し、"全てのリクエストを処理"をクリックします。これにより、デプロイメントの状態がアクティブに変わります。

          KubernetesクラスタのIngress controllerとしてTraefikを使い、HTTPリクエストの負荷分散をデモしましょう。ロードバランサのNodePort番号を確認するために、以下のコマンドを実行します。

          Traefikロードバランサはポート番号30305で動作しています。testwebappアプリケーションにアクセスする場合(http://129.146.22.123:30305/testwebapp/)、常にアプリケーションは現在使われている管理対象サーバの情報を表示します。

          同じURLで別の接続では、管理対象サーバ1の情報が表示されます。

          Because the WebLogicクラスタを外界に公開し、ノードの外部IPアドレスを使ってアクセス可能になっているため、認可されたWebLogicユーザーはT3プロトコルを使って全ての利用可能なWebLogicリソースにWLSTコマンドを使ってアクセスできます。ファイアウォールがある場合、プロキシトンネルを使ってT3を実行する必要があります(T3 over HTTPを使い、WebLogic Serverでトンネリングを有効化し、T3ではなくHTTPプロトコルを使う)。詳細は以下のエントリをご覧ください。
          T3 RMI Communication for WebLogic Server Running on Kubernetes
          https://blogs.oracle.com/weblogicserver/t3-rmi-communication-for-weblogic-server-running-on-kubernetes
          https://orablogs-jp.blogspot.com/2018/02/t3-rmi-communication-for-weblogic.html
          企業ネットワークの外部にいる場合、T3を制限なく利用できます。

          Summary

          このエントリでは、Oracle Cloud Infrastructure上で動作するOCI Container Engine for Kubernetesを使い、WebLogicクラスタを構成するために必要な全手順と、WebLogicクラスタにデプロイされたWebアプリケーションの負荷分散をご紹介しました。OCI Container Engine for KubernetesでWebLogic Serverを実行すると、マネージドKubernetes環境でWebLogic Serverアプリケーションを活用し、WebLogic Serverアプリケーションを他のクラウド・アプリケーションと統合し、WebLogic Serverの使用法を発展させ、Kubernetesの使用を拡大できます。また、以下の内容について詳細を説明する一連のブログエントリも公開しています。

          • Operatorの実行方法
          • 1個以上のWebLogicドメインをKubernetesで立ち上げる方法
          • WebLogic Diagnostics Framework(WLDF、WebLogic診断フレームワーク)もしくはPrometheusを使ってWebLogicクラスタを手動、もしくは自動でスケールする方法
          • WebLogicクラスタにデプロイされたWebアプリケーションの負荷分散をOperatorで管理する方法
          • OperatorログをElasticsearch、Logstash、Kibanaと連携して管理する方法

          How to... WebLogic Server on Kubernetes
          https://blogs.oracle.com/weblogicserver/how-to-weblogic-server-on-kuberneteshttps://orablogs-jp.blogspot.com/2018/01/how-to-weblogic-server-on-kubernetes.html

          [Linux] Upcoming change to Oracle Linux package channels

          $
          0
          0
          原文はこちら。
          https://blogs.oracle.com/linux/upcoming-change-to-oracle-linux-package-channels

          What is changing?

          6月5日に、Oracle Linux 6とOracle Linux 7のULN(Unbreakable Linux Network)とOracle LinuxのYumサーバに対して以下のような変更をする予定です(変更されました)。
          Unbreakable Linux Network (ULN)
          https://linux.oracle.com/
          Oracle Linux yum server
          https://yum.oracle.com/
          現在のOracle Linuxのアップデート・レベルより前のパッケージ、例えばOracle Linux 7 Update 5やOracle Linux 6 Update 9より前のパッケージは、新規に作成されたarchiveチャネルに移動します。特定の古いバージョンのパッケージに依存していて、Chef、Puppet、Ansible、その他のカスタムスクリプトなどの設定管理ツールを使用してデプロイしている場合には、チャネルが変更されても動作することを確認するように案内してください。同様に、Spacewalk for Oracle Linuxを使っていたり、uln-yum-mirrorスクリプトに基づいてULNのローカルミラーをメンテナンスしていたりする場合は、必要に応じてULNを経由してサブスクライブすることで、archiveチャネルが含まれていることを確認してください。

          New Channels

          ULN、Oracle Linuxのyumサーバに以下のチャネルが作成されます。

          ULN

          • ol7_x86_64_latest_archive
          • ol6_x86_64_latest_archive

          Oracle Linux yum server

          • ol7_latest_archive
          • ol6_latest_archive
          将来、Oracle Linux 7 Latest Optional Packages (x86_64) - ol7_x86_64_optional_latest も含めて、他のチャネルのアーカイブを作成する可能性があります。

          Why are we making this change?

          定期的にlatestチャネルからarchiveチャネルにパッケージをアーカイブすることで、チャネル全体のサイズだけでなく、そのメタデータファイルのサイズを大幅に削減できます。この結果、ネットワークトラフィックが削減され、ULNやOracle Linuxのyumサーバを使う場合にパフォーマンスが大幅に改善されるでしょう。

          What happens when an update to Oracle Linux is released?

          Oracle Linuxの新しいアップデート・リリースが利用可能になると、インストール・メディアに同梱されているパッケージのセットでlatestのチャネルが最新になり、これらの条件に合致しないすべてのパッケージがarchiveチャネルに移動されます。したがって、各Oracle Linuxリリースのlatestチャネルには、(Oracle Software Delivery CloudまたはOracle Linuxダウンロード・ミラーの1つから入手可能な)そのリリースのインストール・メディアで配布された最新リリースと、そのリリースに続くすべての更新パッケージ(および正誤表)のみが含まれます。
          Oracle Software Delivery Cloud
          https://edelivery.oracle.com/
          Downloading Oracle Linux
          https://community.oracle.com/docs/DOC-917963

          [Cloud, Kubernetes] Developer Cloud Service May Release Adds K8S, OCI, Code Editing and More

          $
          0
          0
          原文はこちら
          https://blogs.oracle.com/developers/developer-cloud-service-may-release-adds-k8n%2c-oci%2c-code-editing-and-more



          直近のOracle Developer Cloud Serviceでパイプライン、Docker、Terraformのサポートが追加されましたが、そのちょうど1ヵ月後に、DevOpsやCI/CDプロセスを拡張するさらなるアップデートがDeveloper Cloud Serviceに追加され、追加のユースケースをサポートできるようになったことを発表でき、うれしく思っています。
          Oracle Developer Cloud Service Adds Docker, Pipelines, and More
          https://blogs.oracle.com/cloud-platform/oracle-developer-cloud-service-adds-docker%2C-pipelines%2C-and-more
          https://orablogs-jp.blogspot.com/2018/04/oracle-developer-cloud-service-adds.html
          以下で新バージョンのハイライトをご紹介します。

          Extended build server software

          以下の機能を活用するビルドジョブやパイプラインを作成できるようになりました。
          • Kubernetes
            kubectl コマンドを使ってDockerコンテナを管理
            kubectl
            https://kubernetes.io/docs/tasks/tools/install-kubectl/
          • OCIコマンドライン
            Oracle Computeのプロビジョニングや構成を自動化
          • Java 9(訳注:エントリ執筆時点で2018/5なので、すでにあれなのですが)
            最新のJavaプロジェクトのデプロイ
          • Oracle Development Tools
            Oracle FormsやOracle JDeveloper 12.2.3がFormsやADFアプリケーションのデプロイメント自動化に利用可能に


          SSH Connection in Build

          SSH接続をビルド構成に定義し、セキュアにOracle Cloudサービスに接続し、シェルスクリプトを実行できるようになりました。


          In Browser Code Editing and Versioning 

          新たに追加された鉛筆アイコンを使うと、Developer Cloud ServiceがホストするプライベートGitリポジトリのコードを直接ブラウザから編集できます。コードを編集すると、コミットメッセージ付きでブランチに変更を直接コミットできます。

          PagerDuty Webhook

          環境をオープンに保つという原則を引き続き継続し、新たのWebhookをサポートしました。これにより、イベントを人気のあるPagerDutyソリューションに送信できるようになりました。
          PagerDuty
          https://www.pagerduty.com/

          Increased Reusability

          チームのために既に機能しているものを簡単に複製することができます。例えば、エクスポートした既存のプロジェクトに基づいた新規プロジェクトの作成や、Agileボードを新しいボードへのコピーが可能になりました。便利なissue検索を作成した場合は、チーム内の他のユーザーと共有できます。

          他にも多くの機能が追加されており、みなさまの日々の仕事が改善されることでしょう。詳細は、DevCSドキュメントのWhat's Newをごらんください。
          What’s New in Oracle Developer Cloud Service (2018/5)
          https://docs.oracle.com/en/cloud/paas/developer-cloud/csdwn/index.html#CSDWN-GUID-88FCFA5A-9EA1-4E43-BF2B-7D5B647B5A07

          [Java] A Quick Summary on the new Java SE Subscription

          $
          0
          0
          原文はこちら。
          https://blogs.oracle.com/java-platform-group/a-quick-summary-on-the-new-java-se-subscription

          今朝、OracleはOracle Java SE Subscriptionの導入を発表しました。
          Oracle Introduces New Java SE Subscription Offering for Broader Enterprise Java Support
          https://www.oracle.com/corporate/pressrelease/java-se-subscription-offering-062118.html
          簡単に言えば、あたかもLinuxのアップデートとサポートをディストリビュータから購入するのと同じように、Oracleからのサポートを含めて、Java SEのアップデートへのアクセスを購入できます。低価格かつシンプルな価格体系です。オンラインでサブスクライブできるよう現在作業中です。

          この新たなオファリングは、開発者がOracleからJava SEを入手して利用する方法を変えるものではありません。昨年の発表通り、OracleはOpenJDKビルドをGPL+CPE(Classpath Exception)ライセンスに基づいて提供しており、2018年9月のJava SE 11のローンチ時に、Oracle JDKと機能上の互換性をもたせる予定にしています。
          Faster and Easier Use and Redistribution of Java SE
          https://blogs.oracle.com/java-platform-group/faster-and-easier-use-and-redistribution-of-java-se
          https://orablogs-jp.blogspot.com/2017/09/faster-and-easier-use-and.html
          今後、Oracle JDKとOracleによるOpenJDKビルドが同等になると、ほとんどの開発者や企業組織の方々はOpenJDKやOracle JDKのビルドをお使いくださると思っております。
          OpenJDK
          http://jdk.java.net/
          Java SE Downloads (Oracle JDK)
          http://www.oracle.com/technetwork/java/javase/downloads/index.html
          (OpenJDKビルドは)BCLライセンスではなく、Linuxと同じライセンスの下、Classpath例外付きのため、ご利用にあたってより柔軟性が増しています。

          Java SE Subscriptionでは、Java SEの商用ライセンスとテクニカルサポート、以前のバージョン(訳注:サポート期間内のバージョンです)のアップデートへのアクセスを提供します。そのため、将来のリリースへのアップグレードをご自身のスケジュール、タイミングで決めることができます。さらに、Oracle Java SE desktop deploymentテクノロジー(簡単に言うとAppletやWeb Start)から他のソリューションに移行するためにもう1〜2年必要と考えている組織にとっては、このサブスクリプションで時間を稼ぐことになります。高価なPerpetual(永久)ライセンスを購入する必要はなく、デスクトップユーザーサブスクリプションを必要に応じて購入されればよいのです。

          詳細は以下のリンクをご覧ください。
          Java SE Subscription FAQ
          http://www.oracle.com/technetwork/java/javaseproducts/overview/javasesubscriptionfaq-4891443.html
          Java SE Subscription Data Sheet
          http://www.oracle.com/technetwork/java/javaseproducts/javasesubscription-data-sheet-4891969.pdf
          Java SE Subscriptionのページ
          https://www.oracle.com/java/java-se-subscription.html

          [Linux] Announcing the general availability of the Unbreakable Enterprise Kernel Release 5

          $
          0
          0
          原文はこちら。
          https://blogs.oracle.com/linux/announcing-the-general-availability-of-the-unbreakable-enterprise-kernel-release-5

          Unbreakable Enterprise Kernel Release 5 (UEK R5)は入念にテストされた、Oracle Linux 7 Update 5およびそれ以後の64bit Intel(x86_64)ならびにARMアーキテクチャ(aarch64)に最適化されたOSカーネルです。メインラインLinuxカーネルバージョン4.14 LTSベースで、このリリースにはドライバのアップデート、バグ修正、セキュリティ修正が含まれています。

          Introduction of 64-bit ARM (aarch64) architecture

          Oracle LinuxをUEK R5と共に使うと、64ビットARM(aarch64)アーキテクチャをサポートします。この変更は、既存のARMハードウェアで構築、テストされ、ARM用Oracle Linuxをサポートするための最初の土台を提供します。UEK R5で使用可能なARM機能はテクニカル・プレビューとしてリリースされ、機能上の制限があります。

          Oracle Linux 7 for ARMには、gccコンパイラのバージョン7.3を含むツールチェーンが含まれており、64ビットARMプラットフォーム用のコードを構築するためのしっかりした開発者ツールセットが用意されています。 ARMプラットフォーム用のUEK R5は、このツールチェーンを使用してビルドされています。

          Notable Changes

          • セキュア・ブートの改善
            セキュア・ブートは、ブートプロセスの初期段階で悪質なコードがロードされて実行されるのを防ぐよう設計されています。保護されたプラットフォームは、オプションのROMドライバ、ブートローダ、OSローダなど、変更されずにプラットフォームが信頼しているソフトウェアバイナリのみをロードします。OSロード中、後続のブートで悪質なコードが注入されないよう、対策が追加されました。
          • NUMAバランシングの有効化
            NUMAバランシングの改善と修正の結果、この機能を有効化したときにI/O待機時間が長くなる可能性のある問題が解決されました。複数のNUMAノードを持つシステムでは、NUMAバランシングが自動的に有効になります。
          • RoCE (RDMA over Converged Ethernet) のサポート
            標準のInfiniBand Trade Association(IBTA)プロトコルであるRDMA over Converged Ethernet(RoCE)プロトコルは、レイヤ3ネットワークを越えるためにUDPカプセル化を使用してイーサネットネットワーク上でRDMAの効率的なデータ転送を可能にします。
          • TCP-BBRの有効化
            TCP-BBRは、インターネットトラフィックで高い帯域幅と低い待ち時間を達成するために利用可能な機能で、インターネットベースのアプリケーションのパフォーマンスが大幅に向上します。 BBR(Bottleneck Bandwidth and Round-Trip Time、ボトルネック帯域幅とラウンドトリップ時間)とは、スケジューリングアルゴリズムであり、これを使うと、TCP輻輳を低減するために帯域幅ボトルネックに対する往復時間を監視することにより、TCPプロトコルの送信レートを制御して、バッファリングを削減できます。

          Notable Driver Updates

          • Hyper-Vドライバのアップデート
            Hyper-Vストレージドライバ(hv_storvsc)が更新されました。バウンスバッファが削除されたことで、特定のワークロードに対するI/O操作のパフォーマンスが向上しています。Hyper-Vネットワークドライバ(hv_netvsc)がアップデートされ、仮想機能デバイスでの透過的なSR-IOVをサポートするようになりました。これにより、構成の複雑さと、PCIデバイスのホットプラグを処理するための専用のボンディングドライバとスクリプトを利用する必要がなくなりました。
          • Intel iWARP RDMAドライバの追加
            Intel Ethernet Connection X722 iWARP RDMA Driver (i40iw)がこのカーネルリリースのドライバモジュールに追加されました。このRDMAハードウェアを直接ユーザー空間で使用するためのライブラリ(libi40iw)が追加されました。
          • Amazon Elastic Networkアダプタドライバのアップデート
            Elastic Network Adapter Driver(ena)がver 15.0kにアップデートされました。このバージョンには、多数のアップストリームのバグ修正や機能改善が含まれています。その他、追加の電源管理オペレーションやIPv6RSSの初期サポート、ドライバの堅牢性の向上などが含まれています。
          これらの機能やその他の新機能、変更点の詳細(このリリースで修正されたCVEのリストを含みます)は、以下のリリースノートをご覧ください。
          Oracle Linux Unbreakable Enterprise Kernel Release 5 Release Notes
          https://docs.oracle.com/cd/E93554_01/index.html

          Certification of Oracle products

          Oracle LinuxシステムでUEK R5を使うようアップデートする前に、Oracleのアプリケーションを含む、ご利用中のアプリケーションがUEK R5をサポートしていることを確認してください。Oracle製品のOracle Linux + UEK R5上での動作保証は各Oracle製品グループが決定します。追加情報は以下のリンクからご覧ください。
          My Oracle Support:動作保証のページ
          https://support.oracle.com/epmos/faces/CertifyHome
          Oracle Automatic Storage Management Cluster File System (Oracle ACFS) の種々のカーネルバージョンに対する動作保証は、My Oracle Supportのドキュメントに記載があります。
          ACFS Support On OS Platforms (Certification Matrix). (ドキュメントID 1369107.1)
          https://support.oracle.com/rs?type=doc&id=1369107.1

          Compatibility

          Oracle Linuxは、Red Hat Enterprise Linuxとのユーザー空間での互換性を維持しています。これは、OSの下で動作するカーネルのバージョンとは独立しています。ユーザー空間内の既存のアプリケーションは、引き続きUEK R5上で動作し、修正の必要はありません。RHEL認定アプリケーションの再認証は不要です。

          リリース間の互換性の影響を最小限に抑えるために、Oracle Linuxチームは、ハードウェアおよびソフトウェアがカーネル・モジュールに依存するサード・パーティ・ベンダーと緊密に協力しています。UEK R5のカーネルABIは、最初のリリースから続くすべてのアップデートで変更はありませんが、今回のリリースでは、以前のリリースに対し、カーネルABIに変更が加えられています。そのため、サードパーティのカーネルモジュールをシステム上で再コンパイルする必要があります。UEK R5をインストールする前に、アプリケーションベンダーにサポート状況を確認してください。

          Supported Upgrade Path

          お客様はUnbreakable Linux NetworkもしくはOracle Linux yumサーバを使って、既存のOracle Linux 7サーバをアップグレードできます。
          Unbreakable Linux Network
          http://linux.oracle.com/
          Oracle Linux Yum Server
          http://yum.oracle.com/

          Software Download

          Oracle Linuxは無料でダウンロード、利用、配布でき、アップデートやエラータも無料でご利用いただけます。
          Oracle Linux
          https://www.oracle.com/linux
          そのため、どのシステムでサポート・サブスクリプションが必要かを決定できますし、それゆえにOracle Linuxが開発、テスト、本番システム用に理想的な選択肢になる理由なのです。
          Oracle Linux Support
          http://www.oracle.com/us/technologies/linux/support/overview/index.html
          各システムに対してどのサポート範囲が最適かを個別に決めることも、全システムを最新かつセキュアに保つことも可能です。Oracle Linux Premier Supportのお客様であれば、ダウンタイム無しでカーネルをアップデートする機能(Oracle Ksplice)も使えますし、Oracle OpenStackのサポートもご利用いただけます。
          KSplice: Zero downtime updates for Oracle Linux
          http://www.oracle.com/us/technologies/linux/ksplice-datasheet-487388.pdf
          Oracle OpenStack
          http://www.oracle.com/technetwork/server-storage/openstack/linux/documentation/datasheet-oracle-openstack-2296038.pdf

          UEK R5 Availability in Oracle Cloud Infrastructure

          Oracle Cloud Infrastructure (OCI) でご利用いただけるOracle Linuxイメージは、最新のソフトウェアにアクセスできるよう頻繁にアップデートされています。OCIでOracleが提供するイメージにまもなくOracle Linux 7 Update 5 + UEK Release 5が含まれる予定です。
          Displaying: All Oracle Linux 7.x Images
          https://docs.us-phoenix-1.oraclecloud.com/images/oel-7x/ 
          Oracle Linux Premier SupportはOracle Cloud Infrastructureサブスクリプションに含まれており、追加費用は不要です。最新のパッケージやアップデートへのアクセス、24x7のサポート、豊富なLinuxナレッジベースを備えたMy Oracle Supportポータル、Oracle Ksplice zero-downtimeアップデート、Oracle Enterprise Managerを使ったOracle Linuxインスタンスの監視といった、Oracle Linux Supportが提供するあらゆる便益を活用できます。
          My Oracle Support
          https://support.oracle.com/ 
           Using Oracle Linux on Oracle Cloud InfrastructureでOracle Linuxを使うことで、クラウドインフラストラクチャ、OS、そしてOracleソフトウェア全体に対するサポートの一元化が可能です。

          Resources – Oracle Linux

          Documentation
          Software Download
          Blogs
          Community Pages
          Social Media
          Data Sheets, White Papers, Videos, Training, Support & more
          Product Training and Education

          [Java] 再度、新しいJavaリリースモデルについて

          $
          0
          0
          以下は個人的な見解です。そのため、お約束の文言を再度入れておきます。

          このエントリは個人の見解であり、所属する会社の公式見解ではありません。
          Opinions expressed in this blog entry is my personal one and does not represent the official opinion of my employer.

          以前、以下のようなエントリを公開しました。
          [Java] 新しいJavaリリースモデルについて
          https://orablogs-jp.blogspot.com/2018/05/misunderstanding-new-java-release-model.html
          そして、2018年6月20日に、JJUG主催で「緊急特集! Javaの無償版はなくならないぞ!」というナイトセミナーが開催されました。その際の発表スライドは以下からどうぞ。


          それでもなお、「Oracleは今後有償のJDKのみをリリースする」という誤解やこだわり(?)がある方が多いようなので、要点を改めて記載しておきます。
          • Oracleがビルドし、配布するOpenJDKバイナリ(GPL+Classpath Exception)
            • 6ヵ月ごとにリリース(3月と9月)、6ヵ月過ぎるとEoL
            • 無償、コミュニティによるサポート
            • http://jdk.java.net/ で配布
            • セキュリティアップデートは6ヵ月の範囲で2回リリース(1、4、7、11月)
            • インストーラはない(JDK 10はWindows、Linux、Macともtar.gz形式で提供、JDK 11からはWindowsはzip形式で提供)
          • Oracle JDK(OpenJDKベース、BCL)
            • 3年ごとにリリース(LTS / Long Term Support)
            • 有償サポート、サブスクリプションモデルとしてサポート契約可(日本での価格は未定)
              • Desktop $2.5/month
              • Server Side $25/month
            • サポートはOracle Lifetime Support Policyに従う。
              • Premier Support (5年)
              • Extended Support (3年)
              • Sustaining Support (無期限)
            • セキュリティアップデートは年4回リリース(1、4、7、11月)
            • インストーラあり
          なお、JDK実装は各社によって異なります。つまり、OpenJDKベースであったとしても、Red Hatが配布するOpenJDKバイナリ(RHELに同梱されるもの)やAdoptOpenJDK、Zuluが配布するOpenJDKバイナリは、Oracleが配布するものとは異なりますので、ご注意を。

          [Linux] Announcing the release of Oracle Linux 6 Update 10

          $
          0
          0
          原文はこちら。
          https://blogs.oracle.com/linux/announcing-the-release-of-oracle-linux-6-update-10

          i386およびx86_64向けOracle Linux 6 Update 10の一般提供を発表できうれしく思っています。個別のRPMパッケージをULN(Unbreakable Linux Network)、Oracle Linux Yumサーバからダウンロードできます。
          Unbreakable Linux Network (ULN)
          https://linux.oracle.com/
          Oracle Linux Yum Server
          https://yum.oracle.com/
          ISOインストールイメージはOracle Software Delivery Cloudからダウンロードできます。
          Oracle Software Delivery Cloud
          http://edelivery.oracle.com/new
          DockerイメージはOracle Container RegistryもしくはDocker Hubから利用できます。
          Oracle Container Registry
          https://container-registry.oracle.com/
          Docker Hub
          https://hub.docker.com/_/oraclelinux/
          Oracle Linux 6 Update 10は以下のカーネルパッケージを同梱しています。
          • x86-64向け
            • Unbreakable Enterprise Kernel (UEK) Release 4 (kernel-uek-4.1.12-124.16.4.el6uek) for x86-64
            • Red Hat Compatible Kernel (kernel-2.6.32-754.el6)
          • i386向け
            • Unbreakable Enterprise Kernel (UEK) Release 2 (kernel-uek-2.6.39-400.294.3.el6uek) for i386
            • Red Hat Compatible Kernel (kernel-2.6.32-754.el6)
          デフォルトでは、特定のアーキテクチャ(i386もしくはx86_64)のUEKならびにRHCKがインストールされ、システムはUEKを使ってブートします。

          Application Compatibility

          Oracle LinuxはRed Hat Enterprise Linux (RHEL)とのユーザー空間の互換性を保っており、これはOS以下のカーネルバージョンに依存しません。既存のユーザー空間のアプリケーションは、Oracle Linux 6 Update 10とUEK Release 4の組み合わせの上で、変更せずに引き続き動作します。すでにアプリケーションがRed Hat Enterprise Linux 6やOracle Linux 6での動作保証が済んでいる場合、再認証は必要ありません。

          Notable updates in this release:

          • Retpoline Support Added to GCC
            このアップデートで、retpolines へのサポートをGNU Compiler Collection (GCC)に追加しました。カーネルはこのテクニックを使って、CVE-2017-5715で説明されているSpectre Variant 2攻撃を軽減するオーバーヘッドを削減します。
          新機能や変更点の詳細は以下のリリースノートをご覧ください。
          Oracle Linux Release Notes for Release 6 Update 10
          https://docs.oracle.com/cd/E37670_01/E96232/html/index.html
          Operating Systems Documentation
          https://docs.oracle.com/en/operating-systems/linux.html
          Oracle Linuxは無料でダウンロード、利用、配布できるとともに、全てのアップデートやエラータを無料でご利用いただけます。お客様が、どのシステムでサポート契約が必要なのかを決めてください。この結果、Oracle Linuxが開発、検証、本番システム用途に理想的な選択肢になるのです。
          Oracle Linux Support
          http://www.oracle.com/us/technologies/linux/support/overview/index.html
          お客様がどのサポート範囲が個々のシステムに対して最適かを決定することもできますし、全てのシステムをアップデートして安全に保つこともできます。
          Oracle Linux Premier Supportを契約のお客様は、追加Linuxプログラムのサポートも受け取ることができます。これにはOracle Linuxソフトウェアコレクション、Oracle OpenStack、Oracle Kspliceを使ってダウンタイム無しのカーネルアップデートが含まれます。

          Oracle Linuxに関する詳細は、以下のURLをご覧ください。
          Oracle Linux
          http://www.oracle.com/linux

          [Linux, Cloud] New Oracle Linux KVM Image for Oracle Cloud Infrastructure

          $
          0
          0
          原文はこちら。
          https://blogs.oracle.com/cloud-infrastructure/new-oracle-linux-kvm-image-for-oracle-cloud-infrastructure

          仮想マシンの簡単な展開がほとんどのクラウドデプロイメントにとって重要なわけですが、Oracle Linux KVMイメージを使うと、oci-utilsを含むスクリプティングツールを使って、ブロックストレージや仮想ネットワークインターフェースなどのサービスと統合することにより、VMの展開が簡単になります。
          oci-utils (oracle cloud infrastructure) for Oracle Linux package
          https://blogs.oracle.com/wim/oci-utils-oracle-cloud-infrastructure-for-oracle-linux-package
          これらのツールによって、VMゲストドメインを定義し、特定のブロックボリュームやVNICを割り当て、Oracle Cloud InfrastructureでのVMの起動や削除が簡単になります。先頃Oracle Linux KVM Image for Oracle Cloud Infrastructureをアップデートしました。以下のような機能強化がなされています。
          • oci-utilsスクリプトを使ったVNIC作成のサポート: oci-network-config --create-vnic
            VNIC作成の例:この例では、VNICを作成し、パブリックIPアドレスを割り当てています。
            $ sudo oci-network-config --create-vnic --vnic-name vnic-guest3 --assign-public-ip
          • oci-utilsスクリプトを使ったブロックボリューム作成のサポート: oci-iscsi-config --create-volume
            ブロックデバイス作成の例:この例では、100GBのボリュームを作成し、iSCSIデバイスをアタッチしています。
            $ sudo oci-iscsi-config --create-volume 100 --volume-name vol-guest3
          • Oracle Linuxネイティブのsystemd LSBネットワーキングを使ったVirtual Functionネットワークインターフェースの完全な構成(ifcfg ネットワーク構成ファイル)
          • oci-utils ver. 0.6へのアップデート
            oci-utils-0.6-34.el7
            https://blogs.oracle.com/wim/oci-utils-06-34el7
          • Oracle Linux 2018-05-08ベースイメージへのアップデート
          Oracle Cloud Infrastructureの新しいKVMイメージをデプロイするには、下記ページにあるURLを使ってインポートし、カスタムイメージを使ってインスタンスを作成してください。
          Oracle Linux KVM Image for Oracle Cloud
          http://www.oracle.com/technetwork/server-storage/linux/technologies/ol-kvm-image-4466272.html
          詳細は、以下のURLをご覧ください。

          [Kubernetes, Cloud] Deploy Jenkins on Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE)

          $
          0
          0
          原文はこちら。
          https://blogs.oracle.com/cloud-infrastructure/deploy-jenkins-on-oke




          以前のエントリで、Oracle Cloud Infrastructure Compute plugin for Jenkinsを使ってOracle Cloud Infrastructure上にマスタ/スレーブアーキテクチャでJenkinsをデプロイする方法を説明しました。
          Deploy Jenkins on Oracle Cloud Infrastructure
          https://blogs.oracle.com/cloud-infrastructure/deploy-jenkins-on-oracle-cloud-infrastructure
          Oracle Cloud Infrastructure Compute Plugin
          https://github.com/oracle/oci-compute-jenkins-plugin
          このプラグインを使うと、仮想マシン(VM)やベアメタルインスタンスをOracle Cloud Infrastructure内でオンデマンドにスレーブ/エージェントとしてスピンアップし、ジョブ完了後自動的に切り離すことができます。数多くのエージェントをスピンアップすることにより、Jenkinsは多数のジョブを並列実行できます。
          VMベースのプラグインを使うことに対する代替策として、その代わりにコンテナベースのJenkinsエージェントを作成できます。これはVMよりも迅速にスピンアップできます(秒単位と分単位の違い)し、ビルドジョブ完了後の切り離しも迅速です。必要な全ツールや環境設定を備えたDockerコンテナイメージを基にしてコンテナベースのJenkinsエージェントをプロビジョニングします。

          このエントリでは、JenkinsエージェントをDockerコンテナとしてセットアップし、Kubernetesクラスタ内にデプロイする方法を紹介します。これを実現するために、別のJenkinsプラグインを使用します。それがKubernetes plugin for Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE) です。 OKEは安全で可用性の高いKubernetesクラスタを提供し、Oracle Cloud Infrastructureでコンテナ化されたアプリケーションを管理します。このエントリの手順に従うと、下図のようにJenkinsを展開できます。

          Prerequisites

          Step 1: Install the Kubernetes Plugin for Jenkins

          Kubernetes plugin for Jenkinsを使って動的なJenkinsエージェントをKubernetesクラスタ内で実行します。
          1. Jenkins Dashboardで、Manage Jenkins > Manage Pluginsを選択
          2. Availableタブで、Kubernetes pluginを探し、インストール(再起動しない)

          Step 2: Configure the Kubernetes Plugin with OKE

          1. In the Jenkins Dashboardダッシュボードで、Manage Jenkins> Configure System を選択
          2. Add a new cloud をクリックし、Kubernetesを選択
          3. Kubernetes クラウド設定の項目に移動し、以下の情報を入力する
            1. Name: Kubernetes クラウド設定の名前
            2. Kubernetes URL: OKEクラスタのエンドポイント。以下のコマンドを実行してKubernetes URLを取得できる(すでにkubeconfigファイルをダウンロード済みである前提)
            3. Kubernetes server certificate key: X509 PEM エンコードされた証明書。Disable https certificate checkを選択した場合にはオプション扱い。以下のコマンドを実行してKubernetesシークレット・トークンを取得できる(すでにkubeconfigファイルをダウンロード済みである前提)
            4. Kubernetes namespace: Kubernetesクラスタの名前空間。
            5. Credentials: Kubernetesシークレット・トークンを格納するシークレットテキスト。kubeconfigファイルでKubernetes証明書キーを取得できるが、base64エンコードされているので、デコードする必要がある。
          4. Kubernetesロールベースアクセス制御(RBAC)を構成し、デフォルトサービスアカウントトークンを有効化し、adminロールを付与することによってクラスタとの対話を可能にする
          5. Test Connection をクリックしてレスポンスが以下のスクリーンショットのように “Connection test successful” であることを確認する
            Note: “No valid crumb was included in the request” というエラーメッセージが表示されることがあるが、このエラーはJenkins Kubernetes Pluginの不具合である。エラーを修正するには、以前のページに戻って再実行する。
          6. Configure the Jenkins URL by entering your Jenkins Master URLを指定してJenkins URLを構成する。残りの入力フィールドはデフォルト値を使ってもよい。
          7. 以下のスクリーンショットのように、 Kubernetes Pod Template を設定する。ビルドジョブ実行時に必要なので、Jenkinsエージェントに設定したラベルを忘れないようにする。
          8. 以下のスクリーンショットのように、Container Template を設定する。このエントリの目的のため、カスタムJenkinsのjnlp-slave Dockerイメージのpull元としてOracle Container Registryを利用する。Jenkinsのjnlp-slave Dockerイメージはすでにレジストリで利用可能になっていることを確認しておくこと。また、パブリックのDocker Hubレジストリを使ってJenkinsのjnlp-slaveイメージをpullすることもできる。この場合、Docker image フィールドにはjenkins/jnlp-slaveを指定する。完了したら設定を保存する。
          Notes:
          • Oracle Container Registryのリポジトリにpublicとしてマークを付け、カスタムjnlp-slave Dockerイメージを取得できるようにしているが、プライベートリポジトリを使用している場合は、リポジトリにアクセスするための適切な資格情報を使うようJenkinsを設定する必要がある。
          • パブリックDocker Hubレジストリを使用してjnlp-slaveイメージを取得する場合は、必ずjenkins/jnlp-slaveと入力する。多くのオンラインリソースにはjenkinsci/jnlp-slaveを指定するような記述がありますが、この設定は廃止予定である。

          Step 3: Test the Kubernetes Plugin with OKE

          1. New > Freestyle project を選択してJenkinsで簡単なプロジェクトを作成する
          2. このプロジェクト名を testOKE とし、デフォルト値を使う。Label Expressionにはk8sを指定しておく(以前の設定で利用したもの)その後、プロジェクトをビルドする。

            ビルド開始後、 jnlp-slave コンテナがJenkins Dashboardでプロビジョニングされる。
          3. 以下のコマンドを実行してステータスを確認する。
          これで、Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE) へのJenkinsエージェントのデプロイは完了です。

          Extending the Deployment

          以前のデプロイで、JenkinsマスターをVMとして実行し、Container Service for Kubernetes (OKE)上でJenkinsエージェント/スレーブをDockerコンテナとしてスケールアウトしました。JenkinsマスタをJenkinsスレーブのそばのKubernetesクラスタ内にデプロイすることで、このデプロイメントを拡張できます。この構成では、Jenkinsコンテナ(マスタとスレーブの両方)の耐障害性、サービス・レジリエンシ、リソース利用率が向上します。設定方法を見ていくことにしましょう。このデプロイメントは下図の設定に類似しています。

          Prerequisites

          • Oracle Cloud InfrastructureにKubernetesクラスタが展開済みであること

          Deployment

          KubernetesにJenkinsマスタをデプロイする手順は以下のようです。
          1. Jenkins用のKubernetes manifestファイルを準備
          2. Oracle Cloud Infrastructure Block Volume上に、永続ボリュームとともにJenkinsマスタをデプロイ
          3. Jenkinsサービスをロードバランサを使って公開
          4. Jenkinsマスタを構成

          Step 1: Prepare the Kubernetes Manifests for Jenkins

          jenkins-master.yaml manifestファイルには、Jenkinsマスタをデプロイするための構成が含まれており、1個のレプリカを作成します。この設定では、最新のJenkinsイメージを使用し、Jenkinsのマスターコンテナにポート8080と50000を公開します。jenkins-dirボリュームマウントは、jenkins-master-pvcというPVCに関連付けられています。

          jenkins-pvc.yamlファイルは、Oracle Cloud Infrastructureのブロックボリュームを含むPVCの設定で構成されています。ブロックボリュームとして50GB確保していますが、これは必要に応じてJenkinsビルドファイルやアーティファクトを格納するために使われます。

          Step 2: Deploy to the Kubernetes Cluster

          Store the manifestファイルをディレクトリ(例えばjenkins-k8s)に格納し、以下のコマンドを実行してPVCを使ってJenkinsマスタデプロイメントを作成します。

          デプロイメントPodが作成されたことを確認します。


          PVCが作成されたことを確認します。その際には以下のコマンドを実行するか、もしくはOracle Cloud InfrastructureコンソールのBlock Volumeの画面を使います。


          Step 3: Expose the Deployment via a Load Balancer

          デプロイメントを作成したら、サービスを作成し、そのサービスをOracle Cloud Infrastructureロードバランサを使って80/tcpで公開できます。(Jenkinsマスタはデフォルトでは8080/tcpをリスニングしているため)ターゲット・ポートとして8080/tcpを指定します。

          Oracle Cloud Infrastructureコンソールでロードバランサがプロビジョニングされていることを確認できます。プロビジョニング後、リスナーとして80/tcpを使って、パブリックIPアドレスが公開されます。

          サービスのパブリックIPアドレスを以下のコマンドを実行して確認できます。

          Step 4: Configure the Jenkins Master

          Step 3で入手したパブリックIPと80/tcpを使ってJenkinsダッシュボードにアクセスすると、以下のような画面が確認できるはずです。

          以下のコマンドを実行してJenkinsのadminの初期パスワードを取得します。


          この後、Jenkinsマスタの構成プロセスは以前のエントリに記述した内容に類似しています。
          Deploy Jenkins on Oracle Cloud Infrastructure
          https://blogs.oracle.com/cloud-infrastructure/deploy-jenkins-on-oracle-cloud-infrastructure
          Jenkinsマスタを構成後、Kubernetesプラグインをインストールすれば、このエントリの最初に説明したようにJenkinsスレーブをスケールアウトできます。

          Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE)は、Jenkins Kubernetesプラグインとのシームレスに統合できます。Jenkins KubernetesプラグインでのOKEの設定は、他のKubernetesエンジンの設定に類似しています。OKEは安全で可用性の高いKubernetesクラスタを提供し、Oracle Cloud Infrastructureでコンテナ化されたアプリケーションを管理します。

          [Cloud] Automate Application Deployment Across Availability Domains on Oracle Cloud Infrastructure with Terraform

          $
          0
          0
          原文はこちら。
          https://blogs.oracle.com/cloud-infrastructure/automate-application-deployment-across-availability-domains-on-oracle-cloud-infrastructure-with-terraform

          このエントリの目的は、Terraformを使ってOracle Cloud Infrastructureの複数のアベイラビリティ・ドメインにわたってアプリケーションのデプロイを自動化する方法とそのコツを説明することです。

          Oracle Cloud Infrastructureのリージョンには、複数のアベイラビリティ・ドメインが含まれており、これらのアベイラビリティ・ドメインはそれぞれ分離しており、フォールトトレラントであり、同時に障害が発生したり、別のアベイラビリティ・ドメインの障害によって影響を受けることはありません。高可用性を確保し、リソースの障害から保護するには、複数のアベイラビリティ・ドメインにアプリケーションをデプロイすることをお勧めします。

          Terraformを使ったデプロイメント自動化を説明するために、bastion(踏み台)、パブリックエージェント、マスター、およびワーカーノードで構成されるクラスタアプリケーションを使用します。 これらのノードは、高可用性を確保するために、複数のアベイラビリティ・ドメインにデプロイする必要があります。bastionノードとパブリックエージェントノードはpublicサブネットに、マスターノードとワーカーノードはprivateサブネットにそれぞれデプロイされます。

          Create Subnets in Each Availability Domain

          このクラスタデプロイメントのために高可用性と冗長性を実現するには、各アベイラビリティ・ドメインに3つのサブネット(bastion、public、private)を作成し、対応するクラスタノードをこれらのサブネットに展開する必要があります。Terraformでは、count変数を使用して、各アベイラビリティ・ドメイン内でこれらのサブネットを作成できます(個別に作成する必要はありません)。ここでのコツは、count.indexを使用して、これらのサブネットを作成する際に各アベイラビリティ・ドメインを参照することです。

          以下のコードは、3個のprivateサブネットを各アベイラビリティ・ドメインに作成する例です。
          data "oci_identity_availability_domains""ADs" {
            compartment_id = "${var.tenancy_ocid}"
          }

          resource "oci_core_subnet""private" {
            count = "3"
            availability_domain = "${lookup(data.oci_identity_availability_domains.ADs.availability_domains[count.index],"name")}"

            cidr_block = "${var.sampleapp_cidr[count.index]}"
            display_name = "private_ad${count.index}"
            compartment_id = "${var.compartment_ocid}"
            vcn_id = "${oci_core_virtual_network.sampleapp_vcn.id}"
            route_table_id = "${oci_core_route_table.sampleapp.id}"
            security_list_ids = ["${oci_core_security_list.PrivateSubnet.id}"]
            dhcp_options_id = "${oci_core_virtual_network.sampleapp_vcn.default_dhcp_options_id}"

            dns_label = "private${count.index}"
          }

          Deploy Cluster Nodes Across Availability Domains

          同じやり方で、クラスタノードを対応するアベイラビリティ・ドメイン内にプロビジョニングし、デプロイできます。ここでのトリックは、count変数と剰余演算子%を使用する、という点です。これにより、簡単にこれらのノードを異なるアベイラビリティ・ドメインに配布できます。

          例えば、count.index%3を使用して、デプロイするアベイラビリティ・ドメインを判断し、前章で作成したサブネットのリストからsubnet_idを取得できます。以下のコードは、ユーザーが指定した数のワーカー・ノードを作成し、これらのノードを異なるアベイラビリティ・ドメインにデプロイする例です。
          resource "oci_core_instance""WorkerNode" {
            count = "${var.worker_node_count}"
            availability_domain = "${lookup(data.oci_identity_availability_domains.ADs.availability_domains[count.index%3],"name")}"

            compartment_id      = "${var.compartment_ocid}"
            display_name        = "Worker ${format("%01d", count.index+1)}"
            hostname_label      = "Worker-${format("%01d", count.index+1)}"
            shape               = "${var.WorkerInstanceShape}"
            subnet_id           = "${oci_core_subnet.private.*.id[count.index%3]}"

            source_details {
              source_type = "image"
              source_id = "${var.image_ocid}"
              boot_volume_size_in_gbs = "${var.boot_volume_size}"
            }

            metadata {
              ssh_authorized_keys = "${var.ssh_public_key}"
            }

            timeouts {
              create = "30m"
            }
          }

          Attach Block Volumes to Cluster Nodes

          ブロックボリュームを作成し、アベイラビリティ・ドメインに分散しているクラスタノードへアタッチする場合には、同様の方法を使い、count変数に基づいて剰余演算子(%)を実行できます。

          以下のコード例では、ブロックボリュームを作成し、各アベイラビリティ・ドメイン内の対応するマスターノードに割り当てています。
          resource "oci_core_volume""MasterVolume" {
            count="${var.MasterNodeCount}"
            availability_domain = "${lookup(data.oci_identity_availability_domains.ADs.availability_domains[count.index%3],"name")}"
            compartment_id = "${var.compartment_ocid}"
            display_name = "Master ${format("%01d", count.index+1)} Volume"
            size_in_gbs = "${var.blocksize_in_gbs}"
          }

          resource "oci_core_volume_attachment""MasterAttachment" {
            count="${var.MasterNodeCount}"
            attachment_type = "iscsi"
            compartment_id = "${var.compartment_ocid}"
            instance_id = "${oci_core_instance.MasterNode.*.id[count.index]}"
            volume_id = "${oci_core_volume.MasterVolume.*.id[count.index]}"
          }
          このエントリが皆様のお役に立って、Oracle Cloud Infrastructure上の複数のアベイラビリティ・ドメインにわたるアプリケーション・デプロイメントを簡単に自動化できるようになることを願っています。

          [Linux] Updates about processor vulnerabilities CVE-2018-3640 (“Spectre v3a”) and CVE-2018-3639 (“Spectre v4”)

          $
          0
          0
          原文はこちら。
          https://blogs.oracle.com/oraclesecurity/updates-about-processor-vulnerabilities-cve-2018-3640-and-cve-2018-3639

          プロセッサの2個の脆弱性が2018年5月21日に公開されました。
          Processor vulnerabilities CVE-2018-3640 (“Spectre v3a”) and CVE-2018-3639 (“Spectre v4”)
          https://blogs.oracle.com/oraclesecurity/processor-vulnerabilities-cve-2018-3640-and-cve-2018-3639
          これらの脆弱性は、CVE-2018-3640 ( “Spectre v3a” もしくは “Rogue System Register Read”) と CVE-2018-3639 (“Spectre v4” もしくは “Speculative Store Buffer Bypass”) と呼ばれるものです。両者とも4.3というCVSSのベーススコアが付けられています。

          脆弱性CVE-2018-3639の悪用を成功させるには、ターゲット・システムへのローカルアクセスが必要です。影響を受けるシステムでこの脆弱性を緩和するには、ソフトウェアとマイクロコードの両方の更新が必要です。

          脆弱性CVE-2018-3640の悪用を成功させるには、こちらもターゲット・システムへのローカルアクセスが必要です。影響を受けるインテルプロセッサーに対してこの脆弱性を緩和するには、更新されたプロセッサー固有のマイクロコードを適用する以外の方法はありません。

          業界で協力して、Oracleは特定のx86プラットフォーム用にインテルが最近リリースしたマイクロコードと共に、Oracle LinuxおよびOracle VMで必要なソフトウェア・アップデートをリリースしました。
          CVE-2018-3639
          https://linux.oracle.com/cve/CVE-2018-3639.html
          商用のマイクロコードがIntelからから入手できるようになれば、Oracleは、マイクロコードの新たなアップデートおよびファームウェア・パッチを引き続きリリースします。
          CVE-2018-3640 (Spectre v3a), CVE-2018-3639 (Spectre v4) Vulnerabilities : Intel Processor Microcode Availability (ドキュメントID 2406316.1)
          https://support.oracle.com/rs?type=doc&id=2406316.1
          Spectre と Meltdownの脆弱性の以前のバージョン(MOS Note ID 2347948.1を参照)に関しては、OracleはCVE-2018-3639およびCVE-2018-3640の影響を受ける製品のリストをその他の技術情報と共にMy Oracle Support(MOS Note ID 2399123.1)で公開します。
          Addendum to the January 2018 CPU Advisory for Spectre (CVE-2017-5715, CVE-2017-5753) and Meltdown (CVE-2017-5754) vulnerabilities (ドキュメントID 2347948.1)
          https://support.oracle.com/rs?type=doc&id=2347948.1
          Information about processor vulnerabilities CVE-2018-3640 ("Spectre v3a") and CVE-2018-3639 ("Spectre v4") (ドキュメントID 2399123.1)
          https://support.oracle.com/rs?type=doc&id=2399123.1
          さらに、Oracleおよびサードパーティのサプライヤからアップデートが利用可能になると、Oracle Cloudのチームは、そのアップデートが保証される場合には、適切な変更管理プロセスに従って、必要なアップデートを特定して適用します。

          [Linux] Processor vulnerabilities CVE-2018-3640 (“Spectre v3a”) and CVE-2018-3639 (“Spectre v4”)

          $
          0
          0
          原文はこちら。
          https://blogs.oracle.com/oraclesecurity/processor-vulnerabilities-cve-2018-3640-and-cve-2018-3639

          Oracle security and developmentチームはCVE-2018-3640 (a.k.a. “Spectre v3a”) と CVE-2018-3639 (a.k.a. “Spectre v4”) という脆弱性を認識しています。

          Oracleは活発にIntelyその他の業界パートナーと強力して、これらのプロセッサの脆弱性の技術的な緩和策を開発しています。このような軽減策には、ソフトウェアとマイクロコードの両方の更新が必要です。

          SpectreとMeltdownという脆弱性の以前のバージョンと同様、Oracleは影響を受ける製品リストを公開すると共に、その他の技術情報もMy Oracle Supportで公開していきます。
          Addendum to the January 2018 CPU Advisory for Spectre (CVE-2017-5715, CVE-2017-5753) and Meltdown (CVE-2017-5754) vulnerabilities (ドキュメントID 2347948.1)
          https://support.oracle.com/rs?type=doc&id=2347948.1
          Information about processor vulnerabilities CVE-2018-3640 ("Spectre v3a") and CVE-2018-3639 ("Spectre v4") (ドキュメントID 2399123.1)
          https://support.oracle.com/rs?type=doc&id=2399123.1

          また、Oracleおよびサードパーティのサプライヤからアップデートが利用可能になると、Oracle Cloudチームは、そのアップデートが保証される場合には、適切な変更管理プロセスに従って、必要なアップデートを特定して適用します。

          [Hardware, Security, Support] Updates about the “Spectre” series of processor vulnerabilities and CVE-2018-3693

          $
          0
          0
          原文はこちら
          https://blogs.oracle.com/oraclesecurity/updates-about-the-spectre-series-of-processor-vulnerabilities-and-cve-2018-3693

          新たなプロセッサの脆弱性が本日発表されました。CVE-2018-3693 (“Bounds Check Bypass Store” もしくは BCBS) と呼ばれる脆弱性で、Spectre v1と密接に関連しています。以前SpectreとMeltdownで繰り返したように、OracleはIntelや業界のパートナーと協力し、このプロセッサの脆弱性を緩和する技術的な方策を開発しています。

          ご注意いただきたいのは、業界の多数のエキスパートが最新のプロセッサ設計におけるこれらの既知の欠陥を利用した多数の新しいエクスプロイトの変種が、近い将来開示され続けると予想している、ということです。これらの問題は、主にOSや仮想化プラットフォームに影響を与える可能性があり、ソフトウェアの更新、マイクロコードの更新、またはその両方が必要になる場合があります。幸運なことに、これらの問題を悪用するための条件は似ています。悪意のある攻撃を行うには、標的のシステムに対して悪意のあるコードをインストールして実行するために必要な権限をまず取得する必要があります。

          CVE-2018-3640(Spectre v3a)およびCVE-2018-3639(Spectre v4)に関して言うと、Oracleが製造したSPARCプロセッサ(すなわち、SPARC M8、T8、M7、T7、S7、M6、M5、T5、T4、T3、T2、T1)はこれらの変種の影響を受けないと断定しました。
          Updates about processor vulnerabilities CVE-2018-3640 (“Spectre v3a”) and CVE-2018-3639 (“Spectre v4”)
          https://blogs.oracle.com/oraclesecurity/updates-about-processor-vulnerabilities-cve-2018-3640-and-cve-2018-3639
          https://orablogs-jp.blogspot.com/2018/07/updates-about-processor-vulnerabilities.html
          また、Oracleは過去4世代のOracle x86 Server向けのマイクロコードのパッチを提供しています。
          CVE-2018-3640 (Spectre v3a), CVE-2018-3639 (Spectre v4) Vulnerabilities : Intel Processor Microcode Availability (ドキュメントID 2406316.1)
          https://support.oracle.com/rs?type=doc&id=2406316.1
          以前のバージョンのSpectreとMeltdownの脆弱性(My Oracle Support ドキュメントID 2347948.1)と同様に、Oracleはこれらの問題に関する情報をMy Oracle Supportに公開する予定です。
          Addendum to the January 2018 CPU Advisory for Spectre (CVE-2017-5715, CVE-2017-5753) and Meltdown (CVE-2017-5754) vulnerabilities (ドキュメントID 2347948.1)
          https://support.oracle.com/rs?type=doc&id=2347948.1
          Viewing all 760 articles
          Browse latest View live