Comment les services tiers utilisent-ils la plateforme IBM Cloud ?

Un service tiers utilise la plateforme IBM Cloud pour l'authentification, l'accès, la création d'instances en libre-service, le comptage et la facturation. Cette rubrique fournit une vue d'ensemble des composants de la plateforme que votre service utilise, et rassemble ces concepts dans un scénario de provisionnement de bout en bout.

Couche de mise à disposition IBM Cloud

La couche de mise à disposition gère le cycle de vie des ressources IBM Cloud. La couche de mise à disposition a la charge du contrôle et du suivi du cycle de vie des ressources dans un compte client. Les ressources sont des composants physiques ou logiques qui peuvent être créés ou réservés pour une application ou une instance de service. Exemples de ressources : base de données, comptes, limites de processeur, de mémoire ou de stockage. En général, les ressources suivies par la couche de mise à disposition sont conçues de telle sorte que la facturation et les mesures d'utilisation soient associées mais ce n'est pas toujours le cas. Dans la plupart des cas, les ressources peuvent être associées à la couche de mise à disposition afin de garantir que le cycle de vie des ressources peut être géré en même temps que le cycle de vie des comptes.

Gestion du cycle de vie des ressources

La couche de provisionnement fournit des API communes pour contrôler le cycle de vie des ressources, depuis la création (création d'une instance) jusqu'à la suppression (suppression d'une instance), en passant par les identifiants de service (création et suppression des identifiants d'accès). De plus, la plateforme IBM Cloud fournit des interfaces CLI et une interface utilisateur qui peuvent gérer le cycle de vie des ressources pour lesquelles il n'est pas nécessaire de créer vos propres fonctions.

La couche de mise à disposition fournit des API vous permettant de gérer les éléments suivants de votre cycle de vie de ressources :

  • Création d'une instance de ressource
  • Mise à jour d'une instance de ressource
  • Création de données d'identification de service
  • Suppression des informations d'identification des services
  • Clés de ressource
  • Suppression d'une instance de ressource

IBM Cloud Identity and Access Management (IAM)

Identity Access Management (IAM) vous permet d'authentifier de manière sécurisée et de contrôler de façon cohérente l'accès à toutes les ressources d'IBM Cloud. La couche de mise à disposition d'IBM Cloud a adopté IAM pour l'authentification et l'autorisation des actions effectuées dans la couche de mise à disposition. Les fournisseurs de produits tiers utilisent l'IAM pour créer un flux d'authentification ( OAuth ). Pour plus d'informations, voir Qu'est -ce que IAM ?.

Si votre produit utilise les bibliothèques OpenID Connect (OIDC), IAM prend en charge l'intégration OIDC. OIDC est une couche d'authentification construite sur OAuth 2.0, un cadre d'autorisation, et peut contribuer à simplifier le processus d'intégration. Pour plus d'informations sur l'OIDC, voir Open ID Connect.

IBM Cloud catalogue

Le catalogue IBM Cloud stocke et affiche les définitions de produit (descriptions, fonctions, images, URL, mots clés et autres définitions de produit) du produit que vous intégrez. IBM Cloud Partner Center permet de définir tous les aspects des métadonnées requises de votre service. Vous trouverez des informations détaillées sur les zones de métadonnées obligatoires et facultatives dans les onglets Tableau de bord, Détails du produit et Tarification de Partner Center. Ces métadonnées sont publiées et affichées dans le catalogue. Jetez un coup d'œil aux éléments clés suivants pour commencer votre compréhension:

Nom dans le programme
Le nom dans le programme est l'ID unique de votre produit ; il sera utilisé dans tous les services et outils IBM. Ce nom n'est pas le nom d'affichage de votre produit que les clients voient dans le catalogue IBM Cloud. Le nom programmatique est automatiquement généré à partir du nom de votre entreprise et du nom d'affichage de votre produit.
Nom d'affichage
Un nom pour votre service. Ce nom est affiché publiquement dans le catalogue IBM Cloud. Exemple: Compose Redis
ID de service
Un ID de service est utilisé pour identifier votre service lorsqu'il communique avec d'autres services IBM Cloud. Vous devez également créer une clé d'API pour votre ID de service.
Logo de la société ou du produit
Un fichier SVG avec le logo de votre produit.
Brève description
Brève description de votre produit, de sa valeur et de tout autre détail que vous souhaitez voir apparaître dans votre entrée du catalogue IBM Cloud. Vous pouvez ajouter une seule phrase ou expression comme description.
Description détaillée
Cette description est affichée au début de la page de votre produit dans le catalogue. Incluez des mots clés pertinents et considérez au moins deux phrases pour une description détaillée.
URL de la documentation
Lien vers votre documentation IBM Cloud.
Accord de licence pour l'utilisateur final (EULA) URL
Un lien vers le contrat de licence de l'utilisateur final que les utilisateurs doivent accepter pour utiliser votre produit. N'incluez pas de modalités pour la facturation, le paiement ou les taxes dans ce contrat.
Catégorie
Sélection des catégories IBM Cloud disponibles qui décrivent le mieux votre produit. Une seule catégorie peut être sélectionnée.
Keywords
Mots, phrases et autres termes de recherche clés associés à votre produit.
Fonctions
Identificateurs uniques descriptifs courts concernant les attributs de votre produit.
Support
Captures d'écran et vidéos qui montrent votre produit.
Nom du plan
Un nom pour votre plan tarifaire qui n'inclut pas le nom de votre entreprise ou de votre produit. Ces informations sont affichées pour les clients dans le catalogue IBM Cloud. Exemple: Gold
Description du plan
La description du plan tarifaire. Ces informations sont affichées pour les clients dans le catalogue IBM Cloud.
Nom programmatique du plan
Nom technique du plan de tarification généré automatiquement. Vous ne pouvez pas modifier ce nom.

Open Service Broker

Les courtiers de services gèrent le cycle de vie des services. La plateforme IBM Cloud interagit avec les courtiers de services pour créer et gérer des instances de services et des liaisons de services. Les liaisons de service sont la représentation d'une association entre une application et une instance de service, qui inclut souvent les données d'identification utilisées par l'application pour communiquer avec l'instance de service. Le fait de fournir des valeurs de métadonnées valides crée une réponse API REST réussie lorsqu'une demande est effectuée.

IBM Cloud utilise la spécification OSB (Open Service Broker) version 2.12. Lisez et familiarisez-vous avec le site Spécifications de l'API Open Broker, et utilisez le fichier readme comme guide pour en savoir plus.

Lorsque le contrôleur de ressources reçoit une demande de création de ressource, il appelle votre OSB pour valider le type de service, le produit, les plans et la disponibilité des régions. Le contrôleur de ressources valide également la visibilité du plan associé au compte client. IBM Cloud fournit des exemples de courtiers et des documents d'API qui étendent la spécification OSB. Vous pouvez trouver plus d'informations sur le développement et l'hébergement de votre courtier lorsque vous parcourez les procédures détaillées de développement d'intégration de facturation.

Service de mesure IBM Cloud

Si un service inclut un plan mesuré, les utilisateurs IBM Cloud sont facturés en fonction de la quantité de ressources qu'ils utilisent. Par exemple, les utilisateurs IBM Cloud ayant recours à des services de base de données peuvent être facturés en fonction de la quantité de stockage utilisée par leurs applications. La soumission de l'utilisation doit être effectuée de telle sorte que l'utilisation soit convertie en enregistrement facturable.

Tous les services de facturation intégrée proposant un plan mesuré doivent utiliser le service de mesure IBM Cloud pour transmettre les données d'utilisation.

Vous devez automatiser la soumission de l'utilisation horaire en utilisant l'API de service de mesure si vous proposez un plan mesuré.

Pour plus d'informations sur l'opération de mesure, voir Intégration des mesures. Pour plus d'informations sur la soumission de l'utilisation mesurée, voir Soumission de l'utilisation pour les plans mesurés.

Scénario de création : L'assemblage de tous les éléments

En prenant en compte tous les concepts, examinons le processus de création d'instance de service via la plateforme IBM Cloud.

Scénario
d'instances de serviceComment la plateforme gère la création d'instances de service

Création d'une instance de service à l'aide de la console

Lorsqu'un utilisateur veut créer une instance de service, il peut sélectionner le service, le plan et utiliser l'opération Create.

La plateforme IBM Cloud valide le fait que l'utilisateur dispose des droits lui permettant de créer l'instance de service en utilisant IBM Cloud IAM. Après cette validation, le point final de création de votre courtier de services (PUT /v2/resource_instances/:resource_instance_id) est lancé. Pour que l'instance soit créée, les règles suivantes doivent être respectées :

  • Le contexte IBM Cloud doit être inclus dans la variable de contexte
  • L'élément X-Broker-API-Originating-Identity a l'ID IBM IAM de l'utilisateur à l'origine de la demande
  • La section des paramètres inclut l'emplacement demandé (et des paramètres supplémentaires requis par votre service).

Exemple de demande de création d'une instance:

    PUT /v2/service_instances/crn%3Av1%3Abluemix%3Apublic%3Acompose-redis%3Aus-south%3Aa%2F46aa677e-e83f-4d17-a2b6-5b752564477c%3A416d769b-682d-4833-8bd7-5ef8778e5b52?accepts_incomplete=true HTTP/1.1
    Host:  https://broker.compose.cloud.ibm.com
    Authorization: basic dXNlcjpwYXNzd29yZA==
    X-Broker-Api-Version: 2.12
    X-Broker-API-Originating-Identity: ibmcloud aWJtaWQtNDU2MzQ1WA==
    {
      "service_id": "0bc9d744-6f8c-4821-9648-2278bf6925bb", // your service's GUID from onboarding
      "plan_id": "ecc19311-aba2-49f7-8198-1e450c8460d4", //your plan's GUID from onboarding
      "context": {
        "platform": "ibmcloud",
        "account_id": "003e9bc3993aec710d30a5a719e57a80",
        "crn": "crn:v1:bluemix:public:compose-redis:us-south:a/003e9bc3993aec710d30a5a719e57a80:416d769b-682d-4833-8bd7-5ef8778e5b52",
        "resource_group_crn": "crn:v1:bluemix:public:resource-controller::a/003e9bc3993aec710d30a5a719e57a80::resource-group:b4570a825f7f4d57aa54e8e1d9507926",
        "target_crn": "crn:v1:bluemix:public:resource-catalog::a/e97a8c01ac694e308ef3ad7795c7cdb3::deployment:e62e2c19-0c3b-41e3-b8b3-c71762ecd489:us-south38399"
      },
      "parameters": {
        "location": "us-south",
        "optional-param":"parameter required by your service"
      }
    }

Création d'une instance de service à l'aide de l'interface de programmation

Lorsqu'un utilisateur souhaite créer une instance de service, il peut utiliser ibmcloud cli [ ibmcloud resource service-instance-create NAME SERVICE_NAME SERVICE_PLAN_NAME LOCATION ].

La plateforme IBM Cloud valide le fait que l'utilisateur dispose des droits lui permettant de créer l'instance de service en utilisant IBM Cloud IAM. Après cette validation, le point de terminaison de création de votre courtier de services (PUT /v2/resource_instances/:resource_instance_id ) est lancé. Pour que l'instance soit créée, les règles suivantes doivent être respectées :

  • Le contexte IBM Cloud doit être inclus dans la variable de contexte
  • L'élément X-Broker-API-Originating-Identity a l'ID IBM IAM de l'utilisateur à l'origine de la demande
  • La section des paramètres inclut l'emplacement demandé (et des paramètres supplémentaires requis par votre service).

Exemple de demande de création d'une instance:

    PUT /v2/service_instances/crn%3Av1%3Abluemix%3Apublic%3Acompose-redis%3Aus-south%3Aa%2F46aa677e-e83f-4d17-a2b6-5b752564477c%3A416d769b-682d-4833-8bd7-5ef8778e5b52?accepts_incomplete=true HTTP/1.1
    Host:  https://broker.compose.cloud.ibm.com
    Authorization: basic dXNlcjpwYXNzd29yZA==
    X-Broker-Api-Version: 2.12
    X-Broker-API-Originating-Identity: ibmcloud aWJtaWQtNDU2MzQ1WA==
    {
      "service_id": "0bc9d744-6f8c-4821-9648-2278bf6925bb", // your service's GUID from onboarding
      "plan_id": "ecc19311-aba2-49f7-8198-1e450c8460d4", //your plan's GUID from onboarding
      "context": {
        "platform": "ibmcloud",
        "account_id": "003e9bc3993aec710d30a5a719e57a80",
        "crn": "crn:v1:bluemix:public:compose-redis:us-south:a/003e9bc3993aec710d30a5a719e57a80:416d769b-682d-4833-8bd7-5ef8778e5b52",
        "resource_group_crn": "crn:v1:bluemix:public:resource-controller::a/003e9bc3993aec710d30a5a719e57a80::resource-group:b4570a825f7f4d57aa54e8e1d9507926",
        "target_crn": "crn:v1:bluemix:public:resource-catalog::a/e97a8c01ac694e308ef3ad7795c7cdb3::deployment:e62e2c19-0c3b-41e3-b8b3-c71762ecd489:us-south38399"
      },
      "parameters": {
        "location": "us-south",
        "optional-param":"parameter required by your service"
      }
    }

Créer une instance de service en utilisant l'API

Cette action ne peut être effectuée que via l'interface utilisateur ou l'interface de ligne de commande. Pour afficher les étapes, passez aux instructions de l'interface utilisateur ou de l'interface de ligne de commande.

La plateforme IBM Cloud valide le fait que l'utilisateur dispose des droits lui permettant de créer l'instance de service en utilisant IBM Cloud IAM. Après cette validation, le point de terminaison de création de votre courtier de services (PUT /v2/resource_instances/:resource_instance_id ) est lancé. Pour que l'instance soit créée, les règles suivantes doivent être respectées :

  • Le contexte IBM Cloud doit être inclus dans la variable de contexte
  • L'élément X-Broker-API-Originating-Identity a l'ID IBM IAM de l'utilisateur à l'origine de la demande
  • La section des paramètres inclut l'emplacement demandé (et des paramètres supplémentaires requis par votre service).

Exemple de demande de création d'une instance:

    PUT /v2/service_instances/crn%3Av1%3Abluemix%3Apublic%3Acompose-redis%3Aus-south%3Aa%2F46aa677e-e83f-4d17-a2b6-5b752564477c%3A416d769b-682d-4833-8bd7-5ef8778e5b52?accepts_incomplete=true HTTP/1.1
    Host:  https://broker.compose.cloud.ibm.com
    Authorization: basic dXNlcjpwYXNzd29yZA==
    X-Broker-Api-Version: 2.12
    X-Broker-API-Originating-Identity: ibmcloud aWJtaWQtNDU2MzQ1WA==
    {
      "service_id": "0bc9d744-6f8c-4821-9648-2278bf6925bb", // your service's GUID from onboarding
      "plan_id": "ecc19311-aba2-49f7-8198-1e450c8460d4", //your plan's GUID from onboarding
      "context": {
        "platform": "ibmcloud",
        "account_id": "003e9bc3993aec710d30a5a719e57a80",
        "crn": "crn:v1:bluemix:public:compose-redis:us-south:a/003e9bc3993aec710d30a5a719e57a80:416d769b-682d-4833-8bd7-5ef8778e5b52",
        "resource_group_crn": "crn:v1:bluemix:public:resource-controller::a/003e9bc3993aec710d30a5a719e57a80::resource-group:b4570a825f7f4d57aa54e8e1d9507926",
        "target_crn": "crn:v1:bluemix:public:resource-catalog::a/e97a8c01ac694e308ef3ad7795c7cdb3::deployment:e62e2c19-0c3b-41e3-b8b3-c71762ecd489:us-south38399"
      },
      "parameters": {
        "location": "us-south",
        "optional-param":"parameter required by your service"
      }
    }

Comprendre le paramètre IBM Cloud context

Dans l'exemple précédent, vous pouvez voir les métadonnées renvoyées dans le paramètre context. Le contexte pour IBM Cloud renvoie ce qui suit :

  • platform : Identifie la plateforme sous le nom ibmcloud

  • " account_id": Renvoie l'ID du compte dans IBM Cloud qui crée l'instance de service.

  • crn: Lorsqu'un client crée votre service dans IBM Cloud, une instance de service est créée et cette instance est identifiée par son nom de ressource IBM Cloud (CRN). Le CRN est utilisé dans tous les aspects de l'interaction avec IBM Cloud, y compris la création d'instances, la liaison (création d'informations d'identification et de points d'extrémité), la mesure, l'affichage du tableau de bord et le contrôle d'accès. Du point de vue du fournisseur de produits, le CRN peut être traité comme une chaîne opaque à utiliser avec les API de IBM Cloud. Il peut également être décomposé en utilisant la structure suivante :

    crn:version:cname:ctype:service-name:location:scope:service-instance:resource-type:resource
    

    Dans l'exemple de mise à disposition, le nom CRN du service compose-redis est :

    crn:v1:bluemix:public:compose-redis:us-south:a/46aa677e-e83f-4d17-a2b6-5b752564477c:416d769b-682d-4833-8bd7-5ef8778e5b52::
    

    Dans cet exemple, cette instance compose-redis fait partie du compte IBM Cloud ayant l'ID. L'ID unique de l'instance est 416d769b-682d-4833-8bd7-5ef8778e5b52 et cette dernière est hébergée dans la région us-south de l'élément IBM Cloud public.

  • resource_group_crn : renvoie le groupe de ressources incluant l'instance de service. Pour plus de détails, voir Gestion des groupes de ressources.

    Vous n'êtes généralement pas concerné par le paramètre resource_group_crn, sauf dans de rares circonstances. Contactez votre interlocuteur IBM avant d'utiliser cette zone.