5.12. OADP と 3scale


5.12.1. OADP を使用した 3scale のバックアップと復元

Red Hat 3scale API Management (APIM) を使用すると、内部ユーザーまたは外部ユーザーの API を管理できます。パフォーマンスの向上、顧客の管理、および将来的な成長に留意して構築されたインフラストラクチャープラットフォーム上で、API の共有、保護、配布、制御、および収益化を行います。3scale コンポーネントは、オンプレミス、クラウド、マネージドサービスとして、または要件に応じて任意の組み合わせでデプロイできます。

注記

この例では、OpenShift API for Data Protection (OADP) Operator を使用して、サービスに影響を与えないアプローチで 3scale のクラスター上のストレージをバックアップおよび復元します。3scale をバックアップ元と同じクラスターで復元していることを確認してください。別のクラスターで 3scale を復元する場合は、両方のクラスターが同じカスタムドメインを使用していることを確認してください。

前提条件

5.12.1.1. Data Protection Application の作成

3scale の Data Protection Application (DPA) カスタムリソース (CR) を作成できます。DPA の詳細は、「Data Protection Application のインストール」を参照してください。

手順

  1. 次の設定で YAML ファイルを作成します。

    dpa.yaml ファイルの例

    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: dpa_sample
      namespace: openshift-adp
    spec:
      configuration:
        velero:
          defaultPlugins:
            - openshift
            - aws
            - csi
          resourceTimeout: 10m
        nodeAgent:
          enable: true
          uploaderType: kopia
      backupLocations:
        - name: default
          velero:
            provider: aws
            default: true
            objectStorage:
              bucket: <bucket_name> 1
              prefix: <prefix> 2
            config:
              region: <region> 3
              profile: "default"
              s3ForcePathStyle: "true"
              s3Url: <s3_url> 4
            credential:
              key: cloud
              name: cloud-credentials

    1
    バックアップ保存場所としてバケットを指定します。バケットが Velero バックアップ専用のバケットでない場合は、接頭辞を指定する必要があります。
    2
    バケットが複数の目的で使用される場合は、Velero バックアップの接頭辞を指定します (例: velero)。
    3
    バックアップ保存場所のリージョンを指定します。
    4
    バックアップを保存するために使用しているオブジェクトストアの URL を指定します。
  2. 次のコマンドを実行して DPA CR を作成します。

    $ oc create -f dpa.yaml

次のステップ

  • 3scale Operator をバックアップします。

5.12.1.2. 3scale Operator のバックアップ

Operator リソース、および Secret と APIManager カスタムリソース (CR) をバックアップできます。詳細は、「バックアップ CR の作成」を参照してください。

前提条件

  • Data Protection Application (DPA) を作成した。

手順

  1. 以下の設定で YAML ファイルを作成して、operatorgroupnamespacessubscriptions などの Operator リソースをバックアップします。

    例: backup.yaml ファイル

    apiVersion: velero.io/v1
    kind: Backup
    metadata:
      name: operator-install-backup
      namespace: openshift-adp
    spec:
      csiSnapshotTimeout: 10m0s
      defaultVolumesToFsBackup: false
      includedNamespaces:
      - threescale   1
      includedResources:
      - operatorgroups
      - subscriptions
      - namespaces
      itemOperationTimeout: 1h0m0s
      snapshotMoveData: false
      ttl: 720h0m0s

    1
    3scale Operator がインストールされている namespace。
    注記

    ReplicationControllersDeploymentPod オブジェクトをバックアップおよび復元して、手動で設定されたすべての環境がバックアップおよび復元されるようにすることもできます。復元フローには影響ありません。

  2. 次のコマンドを実行してバックアップ CR を作成します。

    $ oc create -f backup.yaml
  3. 次の設定で YAML ファイルを作成して、Secret CR をバックアップします。

    例: backup-secret.yaml ファイル

    apiVersion: velero.io/v1
    kind: Backup
    metadata:
      name: operator-resources-secrets
      namespace: openshift-adp
    spec:
      csiSnapshotTimeout: 10m0s
      defaultVolumesToFsBackup: false
      includedNamespaces:
      - threescale
      includedResources:
      - secrets
      itemOperationTimeout: 1h0m0s
      labelSelector:
        matchLabels:
          app: 3scale-api-management
      snapshotMoveData: false
      snapshotVolumes: false
      ttl: 720h0m0s

  4. 以下のコマンドを実行してシークレット CR を作成します。

    $ oc create -f backup-secret.yaml
  5. 次の設定の YAML ファイルを作成して、APIManager CR をバックアップします。

    例: backup-apimanager.yaml ファイル

    apiVersion: velero.io/v1
    kind: Backup
    metadata:
      name: operator-resources-apim
      namespace: openshift-adp
    spec:
      csiSnapshotTimeout: 10m0s
      defaultVolumesToFsBackup: false
      includedNamespaces:
      - threescale
      includedResources:
      - apimanagers
      itemOperationTimeout: 1h0m0s
      snapshotMoveData: false
      snapshotVolumes: false
      storageLocation: ts-dpa-1
      ttl: 720h0m0s
      volumeSnapshotLocations:
      - ts-dpa-1

  6. 次のコマンドを実行して APIManager CR を作成します。

    $ oc create -f backup-apimanager.yaml

次のステップ

  • mysql データベースをバックアップします。

関連情報

5.12.1.3. mysql データベースのバックアップ

永続ボリューム要求 (PVC) を作成してアタッチし、指定したパスにダンプされたデータを含めることで、mysql データベースをバックアップできます。

前提条件

  • 3scale Operator をバックアップした。

手順

  1. さらに PVC を追加するには、次の設定で YAML ファイルを作成します。

    ts_pvc.yaml ファイルの例

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: example-claim
      namespace: threescale
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi
      storageClassName: gp3-csi
      volumeMode: Filesystem

  2. 次のコマンドを実行して追加の PVC を作成します。

    $ oc create -f ts_pvc.yml
  3. mysql ダンプを使用するようにシステムデータベースデプロイメントを編集し、システムデータベース Pod に PVC をアタッチしします。

    $ oc edit deployment system-mysql -n threescale
      volumeMounts:
        - name: example-claim
          mountPath: /var/lib/mysqldump/data
        - name: mysql-storage
          mountPath: /var/lib/mysql/data
        - name: mysql-extra-conf
          mountPath: /etc/my-extra.d
        - name: mysql-main-conf
          mountPath: /etc/my-extra
        ...
          serviceAccount: amp
      volumes:
            - name: example-claim
              persistentVolumeClaim:
                claimName: example-claim 1
        ...
    1
    ダンプされたデータが含まれる PVC。
  4. mysql データベースをバックアップするには、次の設定で YAML ファイルを作成します。

    mysql.yaml ファイルの例

    apiVersion: velero.io/v1
    kind: Backup
    metadata:
      name: mysql-backup
      namespace: openshift-adp
    spec:
      csiSnapshotTimeout: 10m0s
      defaultVolumesToFsBackup: true
      hooks:
        resources:
        - name: dumpdb
          pre:
          - exec:
              command:
              - /bin/sh
              - -c
              - mysqldump -u $MYSQL_USER --password=$MYSQL_PASSWORD system --no-tablespaces
                > /var/lib/mysqldump/data/dump.sql 1
              container: system-mysql
              onError: Fail
              timeout: 5m
      includedNamespaces: 2
      - threescale
      includedResources:
      - deployment
      - pods
      - replicationControllers
      - persistentvolumeclaims
      - persistentvolumes
      itemOperationTimeout: 1h0m0s
      labelSelector:
        matchLabels:
          app: 3scale-api-management
          threescale_component_element: mysql
      snapshotMoveData: false
      ttl: 720h0m0s

    1
    データがバックアップされるディレクトリー。
    2
    バックアップするリソース。
  5. 次のコマンドを実行して、mysql データベースをバックアップします。

    $ oc create -f mysql.yaml

検証

  • 次のコマンドを実行して、mysql バックアップが完了したことを確認します。

    $ oc get backups.velero.io mysql-backup

    出力例

    NAME                  STATUS      CREATED   NAMESPACE    POD                    VOLUME          UPLOADER TYPE   STORAGE LOCATION   AGE
    mysql-backup-4g7qn   Completed   30s       threescale   system-mysql-2-9pr44   example-claim   kopia           ts-dpa-1           30s
    mysql-backup-smh85   Completed   23s       threescale   system-mysql-2-9pr44   mysql-storage   kopia           ts-dpa-1           30s

次のステップ

  • バックエンドの Redis データベースをバックアップします。

5.12.1.4. バックエンドの Redis データベースのバックアップ

必要なアノテーションを追加し、includedResources パラメーターを使用してバックアップするリソースをリストすることで、Redis データベースをバックアップできます。

前提条件

  • 3scale Operator をバックアップした。
  • mysql データベースをバックアップした。
  • バックアップを実行する前に、Redis キューが空になっている。

手順

  1. 次のコマンドを実行して、backend-redis デプロイメントのアノテーションを編集します。

    $ oc edit deployment backend-redis -n threescale
  2. 以下のアノテーションを追加します。

    annotations:
    post.hook.backup.velero.io/command: >-
             ["/bin/bash", "-c", "redis-cli CONFIG SET auto-aof-rewrite-percentage
             100"]
           pre.hook.backup.velero.io/command: >-
             ["/bin/bash", "-c", "redis-cli CONFIG SET auto-aof-rewrite-percentage
             0"]
  3. Redis データベースをバックアップするには、次の設定の YAML ファイルを作成します。

    redis-backup.yaml ファイルの例

    apiVersion: velero.io/v1
    kind: Backup
    metadata:
      name: redis-backup
      namespace: openshift-adp
    spec:
      csiSnapshotTimeout: 10m0s
      defaultVolumesToFsBackup: true
      includedNamespaces:
      - threescale
      includedResources:
      - deployment
      - pods
      - replicationcontrollers
      - persistentvolumes
      - persistentvolumeclaims
      itemOperationTimeout: 1h0m0s
      labelSelector:
        matchLabels:
          app: 3scale-api-management
          threescale_component: backend
          threescale_component_element: redis
      snapshotMoveData: false
      snapshotVolumes: false
      ttl: 720h0m0s

  4. 次のコマンドを実行して、Redis データベースをバックアップします。

    $ oc get backups.velero.io redis-backup -o yaml

検証

  • 次のコマンドを実行して、Redis バックアップが完了したことを確認します。

    $ oc get backups.velero.io

次のステップ

  • シークレットと APIManager CR を復元します。

5.12.1.5. シークレットと APIManager の復元

以下の手順に従って、Secrets と APIManager を復元できます。

前提条件

  • 3scale Operator をバックアップした。
  • mysql および Redis データベースをバックアップした。
  • バックアップされたのと同じクラスター上でデータベースを復元しようとしている。

    別のクラスター上で行う場合は、ソースクラスターと同様に、nodeAgent を有効にして宛先クラスターに OADP をインストールし、設定します。

手順

  1. 次のコマンドを実行して、3scale Operator のカスタムリソース定義 (CRD) と threescale namespace を削除します。

    $ oc delete project threescale

    出力例

    "threescale" project deleted successfully

  2. 3scale Operator を復元するには、次の設定で YAML ファイルを作成します。

    restore.yaml ファイルの例

    apiVersion: velero.io/v1
    kind: Restore
    metadata:
      name: operator-installation-restore
      namespace: openshift-adp
    spec:
      backupName: operator-install-backup
      excludedResources:
      - nodes
      - events
      - events.events.k8s.io
      - backups.velero.io
      - restores.velero.io
      - resticrepositories.velero.io
      - csinodes.storage.k8s.io
      - volumeattachments.storage.k8s.io
      - backuprepositories.velero.io
      itemOperationTimeout: 4h0m0s

  3. 次のコマンドを実行して 3scale Operator を復元します。

    $ oc create -f restore.yaml
  4. 次のコマンドを実行して、s3-credentials シークレットオブジェクトを手動で作成します。

    $ oc apply -f - <<EOF
    ---
    apiVersion: v1
    kind: Secret
    metadata:
          name: s3-credentials
          namespace: threescale
    stringData:
      AWS_ACCESS_KEY_ID: <ID_123456> 1
      AWS_SECRET_ACCESS_KEY: <ID_98765544> 2
      AWS_BUCKET: <mybucket.example.com> 3
      AWS_REGION: <us-east-1> 4
    type: Opaque
    EOF
    1
    <ID_123456> を AWS 認証情報 ID に置き換えます。
    2
    <ID_98765544> を AWS 認証情報キーに置き換えます。
    3
    <mybucket.example.com> をターゲットバケット名に置き換えます。
    4
    <us-east-1> をバケットの AWS リージョンに置き換えます。
  5. 次のコマンドを実行して、3scale Operator をスケールダウンします。

    $ oc scale deployment threescale-operator-controller-manager-v2 --replicas=0 -n threescale
  6. シークレットを復元するには、次の設定の YAML ファイルを作成します。

    restore-secret.yaml ファイルの例

    apiVersion: velero.io/v1
    kind: Restore
    metadata:
      name: operator-resources-secrets
      namespace: openshift-adp
    spec:
      backupName: operator-resources-secrets
      excludedResources:
      - nodes
      - events
      - events.events.k8s.io
      - backups.velero.io
      - restores.velero.io
      - resticrepositories.velero.io
      - csinodes.storage.k8s.io
      - volumeattachments.storage.k8s.io
      - backuprepositories.velero.io
      itemOperationTimeout: 4h0m0s

  7. 次のコマンドを実行して、シークレットを復元します。

    $ oc create -f restore-secrets.yaml
  8. APIManager を復元するには、次の設定で YAML ファイルを作成します。

    restore-apimanager.yaml ファイルの例

    apiVersion: velero.io/v1
    kind: Restore
    metadata:
      name: operator-resources-apim
      namespace: openshift-adp
    spec:
      backupName: operator-resources-apim
      excludedResources: 1
      - nodes
      - events
      - events.events.k8s.io
      - backups.velero.io
      - restores.velero.io
      - resticrepositories.velero.io
      - csinodes.storage.k8s.io
      - volumeattachments.storage.k8s.io
      - backuprepositories.velero.io
      itemOperationTimeout: 4h0m0s

    1
    復元しないリソース。
  9. 次のコマンドを実行して、APIManager を復元します。

    $ oc create -f restore-apimanager.yaml
  10. 次のコマンドを実行して、3scale Operator をスケールアップします。

    $ oc scale deployment threescale-operator-controller-manager-v2 --replicas=1 -n threescale

次のステップ

  • mysql データベースを復元します。

5.12.1.6. mysql データベースの復元

mysql データベースを復元すると、次のリソースが再作成されます。

  • PodReplicationController、および Deployment オブジェクト。
  • 追加の永続ボリューム (PV) と関連する永続ボリューム要求 (PVC)。
  • example-claim PVC に含まれる mysql ダンプ。
警告

データベースに関連付けられているデフォルトの PV と PVC は削除しないでください。削除すると、バックアップが削除されます。

前提条件

  • Secret および APIManager カスタムリソース (CR) を復元した。

手順

  1. 次のコマンドを実行して、3scale Operator をスケールダウンします。

    $ oc scale deployment threescale-operator-controller-manager-v2 --replicas=0 -n threescale

    出力例:

    deployment.apps/threescale-operator-controller-manager-v2 scaled

  2. 3scale Operator をスケールダウンするには、次のスクリプトを作成します。

    $ vi ./scaledowndeployment.sh

    出力例:

    for deployment in apicast-production apicast-staging backend-cron backend-listener backend-redis backend-worker system-app system-memcache system-mysql system-redis system-searchd system-sidekiq zync zync-database zync-que; do
        oc scale deployment/$deployment --replicas=0 -n threescale
    done

  3. 次のスクリプトを実行して、すべてのデプロイメント 3scale コンポーネントをスケールダウンします。

    $ ./scaledowndeployment.sh

    出力例:

    deployment.apps.openshift.io/apicast-production scaled
    deployment.apps.openshift.io/apicast-staging scaled
    deployment.apps.openshift.io/backend-cron scaled
    deployment.apps.openshift.io/backend-listener scaled
    deployment.apps.openshift.io/backend-redis scaled
    deployment.apps.openshift.io/backend-worker scaled
    deployment.apps.openshift.io/system-app scaled
    deployment.apps.openshift.io/system-memcache scaled
    deployment.apps.openshift.io/system-mysql scaled
    deployment.apps.openshift.io/system-redis scaled
    deployment.apps.openshift.io/system-searchd scaled
    deployment.apps.openshift.io/system-sidekiq scaled
    deployment.apps.openshift.io/zync scaled
    deployment.apps.openshift.io/zync-database scaled
    deployment.apps.openshift.io/zync-que scaled

  4. 次のコマンドを実行して、system-mysql Deployment オブジェクトを削除します。

    $ oc delete deployment system-mysql -n threescale

    出力例:

    Warning: apps.openshift.io/v1 deployment is deprecated in v4.14+, unavailable in v4.10000+
    deployment.apps.openshift.io "system-mysql" deleted

  5. mysql データベースを復元するには、次の YAML ファイルを作成します。

    restore-mysql.yaml ファイルの例

    apiVersion: velero.io/v1
    kind: Restore
    metadata:
      name: restore-mysql
      namespace: openshift-adp
    spec:
      backupName: mysql-backup
      excludedResources:
        - nodes
        - events
        - events.events.k8s.io
        - backups.velero.io
        - restores.velero.io
        - csinodes.storage.k8s.io
        - volumeattachments.storage.k8s.io
        - backuprepositories.velero.io
        - resticrepositories.velero.io
      hooks:
        resources:
          - name: restoreDB
            postHooks:
              - exec:
                  command:
                    - /bin/sh
                    - '-c'
                    - >
                      sleep 30
    
                      mysql -h 127.0.0.1 -D system -u root
                      --password=$MYSQL_ROOT_PASSWORD <
                      /var/lib/mysqldump/data/dump.sql 1
                  container: system-mysql
                  execTimeout: 80s
                  onError: Fail
                  waitTimeout: 5m
      itemOperationTimeout: 1h0m0s
      restorePVs: true

    1
    データの復元元のパス。
  6. 次のコマンドを実行して、mysql データベースを復元します。

    $ oc create -f restore-mysql.yaml

検証

  1. 次のコマンドを実行して、PodVolumeRestore の復元が完了したことを確認します。

    $ oc get podvolumerestores.velero.io -n openshift-adp

    出力例:

    NAME                    NAMESPACE    POD                     UPLOADER TYPE   VOLUME                  STATUS      TOTALBYTES   BYTESDONE   AGE
    restore-mysql-rbzvm     threescale   system-mysql-2-kjkhl    kopia           mysql-storage           Completed   771879108    771879108   40m
    restore-mysql-z7x7l     threescale   system-mysql-2-kjkhl    kopia           example-claim           Completed   380415       380415      40m

  2. 次のコマンドを実行して、追加の PVC が復元されたことを確認します。

    $ oc get pvc -n threescale

    出力例:

    NAME                    STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
    backend-redis-storage   Bound    pvc-3dca410d-3b9f-49d4-aebf-75f47152e09d   1Gi        RWO            gp3-csi        <unset>                 68m
    example-claim           Bound    pvc-cbaa49b0-06cd-4b1a-9e90-0ef755c67a54   1Gi        RWO            gp3-csi        <unset>                 57m
    mysql-storage           Bound    pvc-4549649f-b9ad-44f7-8f67-dd6b9dbb3896   1Gi        RWO            gp3-csi        <unset>                 68m
    system-redis-storage    Bound    pvc-04dadafd-8a3e-4d00-8381-6041800a24fc   1Gi        RWO            gp3-csi        <unset>                 68m
    system-searchd          Bound    pvc-afbf606c-d4a8-4041-8ec6-54c5baf1a3b9   1Gi        RWO            gp3-csi        <unset>                 68m

次のステップ

  • バックエンドの Redis データベースを復元します。

5.12.1.7. バックエンドの Redis データベースの復元

デプロイメントを削除し、復元しないリソースを指定することにより、バックエンドの Redis データベースを復元できます。

前提条件

  • Secret および APIManager カスタムリソースを復元した。
  • mysql データベースを復元した。

手順

  1. 次のコマンドを実行して、backend-redis デプロイメントを削除します。

    $ oc delete deployment backend-redis -n threescale

    出力例:

    Warning: apps.openshift.io/v1 deployment is deprecated in v4.14+, unavailable in v4.10000+
    
    deployment.apps.openshift.io "backend-redis" deleted

  2. Redis データベースを復元するには、次の設定で YAML ファイルを作成します。

    restore-backend.yaml ファイルの例

    apiVersion: velero.io/v1
    kind: Restore
    metadata:
      name: restore-backend
      namespace: openshift-adp
    spec:
      backupName: redis-backup
      excludedResources:
        - nodes
        - events
        - events.events.k8s.io
        - backups.velero.io
        - restores.velero.io
        - resticrepositories.velero.io
        - csinodes.storage.k8s.io
        - volumeattachments.storage.k8s.io
        - backuprepositories.velero.io
      itemOperationTimeout: 1h0m0s
      restorePVs: true

  3. 次のコマンドを実行して、Redis データベースを復元します。

    $ oc create -f restore-backend.yaml

検証

  • 次のコマンドを実行して、PodVolumeRestore の復元が完了したことを確認します。

    $ oc get podvolumerestores.velero.io -n openshift-adp

    出力例:

    NAME                    NAMESPACE    POD                     UPLOADER TYPE   VOLUME                  STATUS      TOTALBYTES   BYTESDONE   AGE
    restore-backend-jmrwx   threescale   backend-redis-1-bsfmv   kopia           backend-redis-storage   Completed   76123        76123       21m

次のステップ

  • 3scale Operator とデプロイメントをスケーリングします。

5.12.1.8. 3scale Operator とデプロイメントのスケールアップ

3scale Operator と、手動でスケールダウンされた任意のデプロイメントをスケールアップできます。数分後には、3scale インストールが完全に機能し、バックアップされた状態と一致するはずです。

前提条件

  • スケールアップされたデプロイメントや、追加の Pod が実行されていないことを確認した。復元後、デプロイメントから切り離された状態で実行されている system-mysql または backend-redis Pod が存在する可能性がありますが、復元が成功したら削除できます。

手順

  1. 次のコマンドを実行して、3scale Operator をスケールアップします。

    $ oc scale deployment threescale-operator-controller-manager-v2 --replicas=1 -n threescale
  2. 次のコマンドを実行して、3scale Operator がデプロイされたことを確認します。

    $ oc get deployment -n threescale
  3. 次のスクリプトを実行して、デプロイメントをスケールアップします。

    $ ./scaledeployment.sh
  4. 次のコマンドを実行して、3scale UI にログインするための 3scale-admin ルートを取得します。

    $ oc get routes -n threescale

    出力例

    NAME                         HOST/PORT                                                                   PATH   SERVICES             PORT      TERMINATION     WILDCARD
    backend                      backend-3scale.apps.custom-cluster-name.openshift.com                         backend-listener     http      edge/Allow      None
    zync-3scale-api-b4l4d        api-3scale-apicast-production.apps.custom-cluster-name.openshift.com          apicast-production   gateway   edge/Redirect   None
    zync-3scale-api-b6sns        api-3scale-apicast-staging.apps.custom-cluster-name.openshift.com             apicast-staging      gateway   edge/Redirect   None
    zync-3scale-master-7sc4j     master.apps.custom-cluster-name.openshift.com                                 system-master        http      edge/Redirect   None
    zync-3scale-provider-7r2nm   3scale-admin.apps.custom-cluster-name.openshift.com                           system-provider      http      edge/Redirect   None
    zync-3scale-provider-mjxlb   3scale.apps.custom-cluster-name.openshift.com                                 system-developer     http      edge/Redirect   None

    この例では、3scale-admin.apps.custom-cluster-name.openshift.com が 3scale-admin URL です。

  5. この出力の URL を使用して、3scale Operator に管理者としてログインします。バックアップを作成する前に、既存のデータが利用可能かどうかを確認できます。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.