4.12. OADP および 3scale


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

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

注記

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

前提条件

4.12.1.1. Data Protection Application の作成

3scale の データ保護アプリケーション(DPA)カスタムリソース(CR)を作成することができます。DPA の詳細は、「データ保護アプリケーションのインストール」を参照してください。

手順

  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 をバックアップします。

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

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

前提条件

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

手順

  1. 次の設定で YAML ファイルを作成 Operator グループ、namespace、サブスクリプション などの 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。
    注記

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

  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 データベースをバックアップします。

関連情報

4.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 ダンプを使用するように PVC をシステムデータベース Pod に割り当てます。

    $ 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. 次の設定で YAML ファイルを作成して、mysql データベースをバックアップします。

    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 データベースをバックアップします。

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

必要なアノテーションを追加するか、include Resources パラメーターを使用して バックアップするリソースを一覧表示することで、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. 次の設定で YAML ファイルを作成して、Redis データベースをバックアップします。

    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

次のステップ

  • Secrets および APIManager CR を復元します。

4.12.1.5. シークレットおよび APIManager の復元

次の手順を使用して、シークレットおよび APIManager を復元できます。

前提条件

  • 3scale Operator のバックアップを作成している。
  • mysql データベースと Redis データベースをバックアップしている。
  • バックアップ先の同じクラスターでデータベースを復元します。

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

手順

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

    $ oc delete project threescale

    出力例

    "threescale" project deleted successfully

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

    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 Secret オブジェクトを手動で作成します。

    $ 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 認証情報 KEY に置き換えます。
    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. 次の設定で YAML ファイルを作成し、APIManager を復元します。

    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 データベースを復元します。

4.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. 次の YAML ファイルを作成して、mysql データベースを復元します。

    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 データベースを復元します。

4.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. 次の設定で YAML ファイルを作成して、Redis データベースを復元します。

    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 とデプロイメントをスケーリングします。

4.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-admin ルートを取得し、3scale UI にログインします。

    $ 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.