Hinweis:

Verwenden Sie OpenCost mit Oracle Cloud Native Environment

Einführung

Durch die Messung der Echtzeitkosten für die Ausführung und das Deployment von Anwendungen in Ihrer Oracle Cloud Native Environment-(Oracle CNE-)Installation können Sie diese verwalten. OpenCost ist ein herstellerunabhängiges Open-Source-Projekt, das Container- und Cloud-Infrastrukturkosten erfasst, um die Überwachung der Geschäftskosten in Echtzeit zu erleichtern. Mit den Echtzeitkosten, die es ausgibt, können Sie sowohl die Kosten im Cluster wie CPU, GPU und Speicher als auch die Kosten auf Basis des Cloud-Providers wie Speicher überwachen.

Ziele

In diesem Tutorial erfahren Sie:

Voraussetzungen

Oracle CNE konfigurieren

Hinweis: Wenn Sie in Ihrem eigenen Mandanten ausgeführt werden, lesen Sie das Projekt linux-virt-labs GitHub README.md, und schließen Sie die Voraussetzungen ab, bevor Sie die Übungsumgebung bereitstellen.

  1. Öffnen Sie ein Terminal auf dem Luna Desktop.

  2. Klonen Sie das Projekt linux-virt-labs GitHub.

    git clone https://github.com/oracle-devrel/linux-virt-labs.git
    
  3. Wechseln Sie in das Arbeitsverzeichnis.

    cd linux-virt-labs/ocne2
    
  4. Installieren Sie die erforderlichen Collections.

    ansible-galaxy collection install -r requirements.yml
    
  5. Erhöhen Sie die Boot-Volume-Größe.

    cat << EOF | tee instances.yml > /dev/null
    compute_instances:
      1:
        instance_name: "ocne"
        type: "server"
        boot_volume_size_in_gbs: 128
    ocne_type: "oci"
    install_ocne_rpm: true
    create_ocne_oci_cluster: true
    ocne_cluster_name: "mycluster"
    num_cp_nodes: 1
    num_wk_nodes: 3
    update_all: true
    EOF
    
  6. Stellen Sie die Übungsumgebung bereit.

    ansible-playbook create_instance.yml -e localhost_python_interpreter="/usr/bin/python3.6" -e "@instances.yml"
    

    Die kostenlose Übungsumgebung erfordert die zusätzliche Variable local_python_interpreter, die ansible_python_interpreter für Wiedergaben festlegt, die auf localhost ausgeführt werden. Diese Variable ist erforderlich, da die Umgebung das RPM-Package für das Oracle Cloud Infrastructure-SDK für Python installiert, das sich unter den python3.6-Modulen befindet.

    Die Standard-Deployment-Ausprägung verwendet die AMD-CPU und Oracle Linux 8. Um eine Intel-CPU oder Oracle Linux 9 zu verwenden, fügen Sie dem Deployment-Befehl -e instance_shape="VM.Standard3.Flex" oder -e os_version="9" hinzu.

    Wichtig: Warten Sie, bis die Arbeitsmappe erfolgreich ausgeführt wurde, und erreichen Sie die Aufgabe "Unterbrechen". In dieser Phase des Handbuchs ist die Installation von Oracle CNE abgeschlossen, und die Instanzen sind bereit. Beachten Sie die vorherige Wiedergabe, in der die öffentlichen und privaten IP-Adressen der bereitgestellten Knoten sowie alle anderen Deployment-Informationen gedruckt werden, die während der Ausführung der Übung benötigt werden.

Auf Kubernetes-Cluster zugreifen

  1. Öffnen Sie ein Terminal, und stellen Sie über SSH eine Verbindung zur ocne-Instanz her.

    ssh oracle@<ip_address_of_instance>
    
  2. Rufen Sie mit der CLI eine Liste der bekannten Cluster ab.

    ocne cluster list
    
  3. Rufen Sie den Speicherort der Kube-Konfiguration ab.

    ocne cluster show -C mycluster
    

    Mit -C können Sie ein bestimmtes Cluster aus der Clusterliste angeben.

  4. Stellen Sie die KUBECONFIG-Umgebungsvariable ein.

    export KUBECONFIG=$(ocne cluster show -C mycluster)
    
  5. Warten Sie, bis das Cluster stabilisiert ist und alle Pods einen ausgeführten Status melden.

    watch kubectl get pods -A
    

    Sobald alle Pods den STATUS-Wert Wird ausgeführt anzeigen, geben Sie ctrl-c ein, um den Befehl watch zu beenden.

  6. Prüfen Sie, wie viele Knoten vorhanden sind.

    kubectl get nodes
    

Helm installieren

Helm bietet eine einfache Möglichkeit, Anwendungen zu verwalten, die in Ihrem Oracle CNE-Cluster installiert sind. In diesem Beispiel verwenden Sie es zur Installation von OpenCost.

  1. Git installieren.

    sudo dnf install -y git
    
  2. Laden Sie die neueste Helm-Version herunter, und installieren Sie sie lokal.

    curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
    chmod 700 get_helm.sh
    ./get_helm.sh
    

    Hinweis: Es wird normalerweise nicht empfohlen, ein Skript vor dem Ausführen auszuführen, ohne es zu prüfen und zu verstehen. Dieses Skript ist jedoch weit verbreitet und gut dokumentiert. Oracle empfiehlt, dass Sie es prüfen, bevor Sie es bei Ihren Installationen ausführen.

Prometheus installieren

OpenCost verwendet Prometheus, um Ausschussmetriken für das Kubernetes-Cluster zu speichern.

  1. Fügen Sie das Prometheus Community Helm-Repo hinzu.

    helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
    
  2. Aktualisieren Sie das Prometheus Helm-Repository.

    helm repo update
    
  3. Installieren Sie Prometheus, und konfigurieren Sie es für OpenCost.

    Sie installieren Prometheus im Namespace prometheus-system mit den Standardeinstellungen für OpenCost.

    helm install prometheus --repo https://prometheus-community.github.io/helm-charts prometheus --namespace prometheus-system --create-namespace --set prometheus-pushgateway.enabled=false --set alertmanager.enabled=false -f https://raw.githubusercontent.com/opencost/opencost/develop/kubernetes/prometheus/extraScrapeConfigs.yaml
    

    Hinweis: Sie können eine vorhandene Prometheus-Instanz verwenden. Weitere Informationen finden Sie in der OpenCost-Dokumentation.

Installieren Sie OpenCost.

  1. Erstellen Sie den Namespace OpenCost.

    kubectl create namespace opencost
    
  2. Fügen Sie das Helm-Repository OpenCost hinzu.

    helm repo add opencost https://opencost.github.io/opencost-helm-chart
    
  3. Aktualisieren Sie das Helm-Repository.

    helm repo update
    
  4. Laden Sie eine Standarddefinitionsdatei für OpenCost-Werte herunter.

    Mit der Datei values.yaml konfigurieren Sie die Konfigurationseinstellung OpenCost und legen die im Tutorial verwendeten Standardkostenkalkulationen fest.

    curl -o local.yaml https://raw.githubusercontent.com/opencost/opencost-helm-chart/refs/heads/main/charts/opencost/values.yaml
    
  5. Installieren Sie das Helm-Diagramm OpenCost.

    helm install opencost --repo https://opencost.github.io/opencost-helm-chart opencost --namespace opencost -f local.yaml
    
  6. Portieren Sie die OpenCost-UI weiter.

    kubectl port-forward --namespace opencost service/opencost 9003:9090
    

    Hinweis: Wenn Sie eine Fehlerbenachrichtigung erhalten, liegt das daran, dass Helm OpenCost nicht vollständig bereitgestellt hat. Warten Sie einige Sekunden, und wiederholen Sie den Befehl port-forward.

    Wichtig: Die Verwendung eines Port Forward sollte nur für interne Tests verwendet werden. Produktions-Deployments müssen eine Ingress-Regel verwenden, um Zugriff auf OpenCost zu erteilen.

Auf die Benutzeroberfläche von OpenCost zugreifen

  1. Öffnen Sie ein neues Terminalfenster, und konfigurieren Sie einen SSH-Tunnel.

    ssh -L 9333:localhost:9003 oracle@<ip_address_of_node>
    
  2. Öffnen Sie einen Webbrowser, und geben Sie die URL ein.

    Hinweis: Sie müssen den Browser möglicherweise einige Male aktualisieren, bevor OpenCost genügend Daten für die Anzeige erfasst hat.

    http://localhost:9333/allocation?window=48h
    

    Kosten-Start öffnen

    Folgende Parameter sind verfügbar:

    • Datumsbereich - Damit können Sie eine Standardperiode auswählen, die aus den aufgelisteten Standards angezeigt werden soll. Sie können auch die "Datumsauswahl" verwenden, um einen benutzerdefinierten Datumsbereich zu bestimmen.
    • Aufschlüsselung - Mit dieser Option können Sie auswählen, welcher Kubernetes-Ressourcentyp die zugehörigen Kosten anzeigen soll. Beispiel: Cluster, Knoten, Namespace, Pod, Deployment usw.
    • Auflösung - Bestimmt, wie das Diagramm zurückgegebene Daten anzeigt. Die Auswahl erfolgt entweder pro Tag oder kumulativ.
    • Währung - Legt den angezeigten Währungsnenner fest.

    Hinweis: Genehmigen Sie auf Anforderung die Sicherheitswarnung basierend auf dem verwendeten Browser. Klicken Sie für Chrome auf die Schaltfläche "Erweitert" und dann auf den Link "Weiter zu localhost (unsicher)". Beachten Sie außerdem, dass die Links Cloud-Kosten und Externe Kosten auf der Webseite deaktiviert sind. Dieses Verhalten tritt auf, weil Sie OpenCost in diesem Tutorial nicht mit einem OCI-Mandanten integrieren. Wenn Sie diese Funktionalität für Ihr Deployment benötigen, finden Sie in der Dokumentation zu OpenCost weitere Informationen zur Konfiguration Ihres OCI-Mandanten für die Arbeit mit OpenCost.

Krew installieren

Krew ist ein Packagemanager für kubectl-Plug-ins, mit dem Sie sie leicht erkennen und auf Ihrem System installieren können.

  1. Öffnen Sie ein neues Terminal, und stellen Sie über SSH eine Verbindung zur ocne-Instanz her.

    ssh oracle@<ip_address_of_instance>
    
  2. Stellen Sie die KUBECONFIG-Umgebungsvariable ein.

    export KUBECONFIG=$(ocne cluster show -C mycluster)
    
  3. Installieren Sie das git-Package.

    sudo dnf install -y git
    
  4. Laden Sie das krew-Plug-in herunter, und installieren Sie es.

    (
    set -x; cd "$(mktemp -d)" &&
    OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
    ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &&
    KREW="krew-${OS}_${ARCH}" &&
    curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" &&
    tar zxvf "${KREW}.tar.gz" &&
    ./"${KREW}" install krew
    )
    
  5. Fügen Sie der PATH-Umgebungsvariablen die Binärdatei krew hinzu.

    export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
    

    Um diese Änderung dauerhaft zu speichern, aktualisieren Sie die Datei .bashrc, und starten Sie die Shell neu, indem Sie sich ab- und wieder beim System anmelden.

  6. Prüfen Sie die Installation.

    kubectl krew
    

    Beispielausgabe:

    [oracle@ocne ~]$ kubectl krew
    krew is the kubectl plugin manager.
    You can invoke krew through kubectl: "kubectl krew [command]..."
    
    Usage:
      kubectl krew [command]
    
    Available Commands:
      help        Help about any command
      index       Manage custom plugin indexes
      info        Show information about an available plugin
      install     Install kubectl plugins
      list        List installed kubectl plugins
      search      Discover kubectl plugins
      uninstall   Uninstall plugins
      update      Update the local copy of the plugin index
      upgrade     Upgrade installed plugins to newer versions
      version     Show krew version and diagnostics
    
    Flags:
      -h, --help      help for krew
      -v, --v Level   number for the log level verbosity
    
    Use "kubectl krew [command] --help" for more information about a command.
    

OpenCost-CLI-Plug-in installieren

  1. Installieren Sie das Plug-in.

    kubectl krew install cost
    

    Beispielausgabe:

    [oracle@ocne ~]$ kubectl krew install cost
    Updated the local copy of plugin index.
    Installing plugin: cost
    Installed plugin: cost
    \
     | Use this plugin:
     | 	kubectl cost
     | Documentation:
     | 	https://github.com/kubecost/kubectl-cost
     | Caveats:
     | \
     |  | Requires Kubecost (a cluster-side daemon) to be installed in your cluster.
     |  | See https://www.kubecost.com/install for installation instructions.
     | /
    /
    WARNING: You installed plugin "cost" from the krew-index plugin repository.
       These plugins are not audited for security by the Krew maintainers.
       Run them at your own risk.
    
  2. Prüfen Sie die Plug-in-Installation.

    kubectl cost version
    kubectl cost --help
    

CLI-Plug-in OpenCost verwenden

Die von kubectl cost verwendete grundlegende Syntaxstruktur entspricht in erster Linie den standardmäßigen Kubernetes-Konzepten von Namespace, Label, Deployment, StatefulSet usw. Es verwendet die Kubecost-APIs, um nützliche Kostendaten für die Workloads und Deployments in Ihrem Oracle CNE-Cluster zurückzugeben. Das Tool ist flexibel, also fangen wir mit ein paar Beispielen an.

  1. Zeigen Sie die monatliche Kostenprojektion für alle Namespaces im Cluster an.

    kubectl cost namespace --opencost true
    

    Beispielausgabe:

    [oracle@ocne ~]$ kubectl cost namespace --opencost true
    +-----------------+-------------------+--------------------+-----------------+
    | CLUSTER         | NAMESPACE         | MONTHLY RATE (ALL) | COST EFFICIENCY |
    +-----------------+-------------------+--------------------+-----------------+
    | __idle__        | __idle__          |        1100.228400 |        0.000000 |
    | default-cluster | kube-system       |          23.187600 |        0.470162 |
    |                 | monitoring        |          11.530800 |        0.296739 |
    |                 | kube-flannel      |           9.702000 |        0.031735 |
    |                 | prometheus-system |           1.309216 |        1.000000 |
    |                 | opencost          |           0.800139 |        0.303188 |
    |                 | ocne-system       |           0.079200 |        1.000000 |
    +-----------------+-------------------+--------------------+-----------------+
    | SUMMED          |                   |        1146.837356 |                 |
    +-----------------+-------------------+--------------------+-----------------+
    

    Dabei gilt:

    • –opencost true = Wenn als true definiert, konfiguriert es OpenCost so, dass die Parameter gemäß der Standardspezifikation OpenCost verwendet werden. Entspricht der Angabe der Befehlszeilenoptionen: --service-port 9003 --service-name opencost --kubecost-namespace opencost --allocation-path /allocation/compute.
  2. Zeigen Sie die Gesamtkosten der letzten fünf Tage nach allen Deployments mit dem Label "app" an.

    kubectl cost label --historical -l app --opencost true
    

    Beispielausgabe:

    [oracle@ocne ~]$ kubectl cost label --historical -l app --opencost true
    +-----------------+--------------------------------+--------------------+-----------------+
    | CLUSTER         | LABEL:APP                      | MONTHLY RATE (ALL) | COST EFFICIENCY |
    +-----------------+--------------------------------+--------------------+-----------------+
    | __idle__        | __idle__                       |        1100.224800 |        0.000000 |
    | default-cluster | __unallocated__                |          35.937616 |        0.367372 |
    |                 | flannel                        |           9.702000 |        0.031831 |
    |                 | csi-oci-node                   |           0.450000 |        1.000000 |
    |                 | csi-oci-controller             |           0.370800 |        1.000000 |
    |                 | kube-prometheus-stack-operator |           0.122400 |        1.000000 |
    +-----------------+--------------------------------+--------------------+-----------------+
    | SUMMED          |                                |        1146.807616 |                 |
    +-----------------+--------------------------------+--------------------+-----------------+
    
  3. Zeigen Sie die prognostizierten monatlichen Kosten nach Deployment an, einschließlich Details zur CPU- und CPU-Kosteneffizienz.

    kubectl cost deployment --show-cpu --opencost true
    

    Beispielausgabe:

    [oracle@ocne ~]$ kubectl cost deployment --show-cpu --opencost true
    +-----------------+-------------------+------------------------------------+------------+----------+--------------------+-----------------+
    | CLUSTER         | NAMESPACE         | DEPLOYMENT                         | CPU        | CPU EFF. | MONTHLY RATE (ALL) | COST EFFICIENCY |
    +-----------------+-------------------+------------------------------------+------------+----------+--------------------+-----------------+
    | __idle__        | __idle__          | __idle__                           | 528.487200 | 0.000000 |        1100.224800 |        0.000000 |
    | default-cluster | kube-system       | __unallocated__                    | 14.860800  | 0.008692 |          17.499600 |        1.359666 |
    |                 | monitoring        |                                    | 9.342000   | 0.002225 |          11.311200 |        0.241625 |
    |                 | kube-flannel      |                                    | 9.104400   | 0.008750 |           9.702000 |        0.031878 |
    |                 | kube-system       | coredns                            | 4.550400   | 0.000750 |           5.313600 |        0.023865 |
    |                 | prometheus-system | prometheus-server                  | 0.165600   | 1.000000 |           1.219216 |        1.000000 |
    |                 | opencost          | opencost                           | 0.454539   | 0.008000 |           0.800139 |        0.303828 |
    |                 | kube-system       | csi-oci-controller                 | 0.075600   | 1.000000 |           0.370800 |        1.000000 |
    |                 | monitoring        | promstack-kube-prometheus-operator | 0.010800   | 1.000000 |           0.122400 |        1.000000 |
    |                 | prometheus-system | prometheus-kube-state-metrics      | 0.032400   | 1.000000 |           0.097200 |        1.000000 |
    |                 | monitoring        | promstack-kube-state-metrics       | 0.028800   | 1.000000 |           0.097200 |        1.000000 |
    |                 | ocne-system       | ui                                 | 0.007200   | 1.000000 |           0.054000 |        1.000000 |
    |                 |                   | ocne-catalog                       | 0.000000   | 0.000000 |           0.025200 |        1.000000 |
    +-----------------+-------------------+------------------------------------+------------+----------+--------------------+-----------------+
    | SUMMED          |                   |                                    | 567.119739 |          |        1146.837356 |                 |
    +-----------------+-------------------+------------------------------------+------------+----------+--------------------+-----------------+
    
  4. Zeigen Sie die Kosten jedes bereitgestellten Pods an, einschließlich CPU-spezifischer Kosten.

    kubectl cost pod --show-cpu --opencost true
    

    Beispielausgabe:

    oracle@ocne ~]$ kubectl cost pod --show-cpu --opencost true
    +-----------------+-------------------+-------------------------------------------------------+------------+----------+--------------------+-----------------+
    | CLUSTER         | NAMESPACE         | POD                                                   | CPU        | CPU EFF. | MONTHLY RATE (ALL) | COST EFFICIENCY |
    +-----------------+-------------------+-------------------------------------------------------+------------+----------+--------------------+-----------------+
    | __idle__        | __idle__          | __idle__                                              | 540.291130 | 0.000000 |        1124.022678 |        0.000000 |
    | default-cluster | kube-system       | kube-apiserver-mycluster-control-plane-q8qjn          | 5.689252   | 0.024160 |           7.020939 |        0.209251 |
    |                 | monitoring        | prometheus-promstack-kube-prometheus-prometheus-0     | 4.767026   | 0.007700 |           5.893983 |        1.301700 |
    |                 |                   | alertmanager-promstack-kube-prometheus-alertmanager-0 | 4.560417   | 0.000300 |           5.306087 |        0.022176 |
    |                 | kube-system       | kube-controller-manager-mycluster-control-plane-q8qjn | 4.552904   | 0.007350 |           4.752000 |        0.048939 |
    |                 |                   | coredns-7dcb9db977-4hwdv                              | 2.276452   | 0.001300 |           2.657739 |        0.025254 |
    |                 |                   | coredns-7dcb9db977-zfdbf                              | 2.276452   | 0.001400 |           2.657739 |        0.024453 |
    |                 |                   | etcd-mycluster-control-plane-q8qjn                    | 2.276452   | 0.024300 |           2.575096 |        0.125228 |
    |                 | kube-flannel      | kube-flannel-ds-vl5qd                                 | 2.276452   | 0.017500 |           2.424835 |        0.040974 |
    |                 |                   | kube-flannel-ds-7tw4k                                 | 2.276452   | 0.017300 |           2.424835 |        0.041796 |
    |                 |                   | kube-flannel-ds-48qk4                                 | 2.276452   | 0.017200 |           2.424835 |        0.040679 |
    |                 |                   | kube-flannel-ds-cn46r                                 | 2.276452   | 0.015000 |           2.424835 |        0.033543 |
    |                 | kube-system       | kube-scheduler-mycluster-control-plane-q8qjn          | 2.276452   | 0.003100 |           2.340313 |        0.030303 |
    |                 | prometheus-system | prometheus-server-6c586d99cd-vcxfq                    | 0.137113   | 1.000000 |           1.209669 |        1.000000 |
    |                 | opencost          | opencost-6b8cb599b7-m6pk2                             | 0.455040   | 0.013000 |           0.802560 |        0.310859 |
    |                 | kube-system       | csi-oci-controller-7ff494cb89-4ncws                   | 0.075130   | 1.000000 |           0.368139 |        1.000000 |
    |                 |                   | csi-oci-node-cqhfh                                    | 0.001878   | 1.000000 |           0.142748 |        1.000000 |
    |                 |                   | csi-oci-node-mhts8                                    | 0.001878   | 1.000000 |           0.123965 |        1.000000 |
    |                 | monitoring        | promstack-kube-prometheus-operator-7dc5684785-tgdj4   | 0.009391   | 1.000000 |           0.122087 |        1.000000 |
    |                 | kube-system       | csi-oci-node-54cz9                                    | 0.001878   | 1.000000 |           0.099548 |        1.000000 |
    |                 | monitoring        | promstack-kube-state-metrics-5bd74cc8d9-jch68         | 0.030052   | 1.000000 |           0.099548 |        1.000000 |
    |                 | prometheus-system | prometheus-kube-state-metrics-65846b5c64-k6qbf        | 0.031930   | 1.000000 |           0.097670 |        1.000000 |
    |                 | kube-system       | oci-cloud-controller-manager-6n4n2                    | 0.031930   | 1.000000 |           0.095791 |        1.000000 |
    |                 |                   | kube-proxy-k2tqn                                      | 0.011270   | 1.000000 |           0.090157 |        1.000000 |
    |                 |                   | csi-oci-node-l7g44                                    | 0.000000   | 0.000000 |           0.080765 |        1.000000 |
    |                 |                   | kube-proxy-rrzls                                      | 0.007513   | 1.000000 |           0.067617 |        1.000000 |
    |                 | monitoring        | promstack-prometheus-node-exporter-4jqk7              | 0.020661   | 1.000000 |           0.065739 |        1.000000 |
    |                 | kube-system       | kube-proxy-8t48n                                      | 0.005635   | 1.000000 |           0.063861 |        1.000000 |
    |                 | ocne-system       | ui-5f59d8454b-p9tz4                                   | 0.007513   | 1.000000 |           0.052591 |        1.000000 |
    |                 | kube-system       | kube-proxy-4q5gk                                      | 0.003757   | 1.000000 |           0.046957 |        1.000000 |
    |                 | monitoring        | promstack-prometheus-node-exporter-z5vfx              | 0.001878   | 1.000000 |           0.033809 |        1.000000 |
    |                 | ocne-system       | ocne-catalog-8c94cc49f-vnhpx                          | 0.000000   | 0.000000 |           0.026296 |        1.000000 |
    |                 | monitoring        | promstack-prometheus-node-exporter-q7hm7              | 0.000000   | 0.000000 |           0.026296 |        1.000000 |
    |                 |                   | promstack-prometheus-node-exporter-dfj4k              | 0.000000   | 0.000000 |           0.022539 |        1.000000 |
    +-----------------+-------------------+-------------------------------------------------------+------------+----------+--------------------+-----------------+
    | SUMMED          |                   |                                                       | 578.906797 |          |        1170.664263 |                 |
    +-----------------+-------------------+-------------------------------------------------------+------------+----------+--------------------+-----------------+
    

Nächste Schritte

In diesem Tutorial haben Sie die Verwendung von OpenCost mit Oracle CNE vorgestellt. Es kratzt nur an der Oberfläche, wie es Ihnen helfen kann, die Kosten Ihrer Oracle CNE-Infrastruktur und des Anwendungs-Deployments zu verwalten. Weitere Details finden Sie in der Opencost-Dokumentation.

Weitere Lernressourcen

Sehen Sie sich andere Übungen zu docs.oracle.com/learn an, oder greifen Sie im Oracle Learning YouTube-Channel auf weitere kostenlose Lerninhalte zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.

Die Produktdokumentation finden Sie im Oracle Help Center.