Sviluppo, hosting e test dei broker dei servizi
La piattaforma IBM Cloud® interagisce con i service broker per creare e gestire le istanze di servizio e i collegamenti di servizio. È possibile creare il proprio broker utilizzando una combinazione dei nostri esempi di broker di servizi IBM Cloud pubblici, dell'applicazione di riferimento Open Service Broker e della documentazione API Open Service Broker.
Quando esegui l'onboarding del tuo servizio in IBM Cloud, devi creare uno o più broker dei servizi per gestire il ciclo di vita del tuo servizio e la relativa integrazione di misurazione. Per ulteriori informazioni, vedi Integrazione della misurazione.
Che cos’è un broker di servizi?
I broker dei servizi gestiscono il ciclo di vita dei servizi. Le piattaforme interagiscono con i broker di servizi per creare, ottenere l'accesso e gestire i servizi che offrono. L'API Open Service Broker definisce queste interazioni per permettere ai fornitori di software di offrire i propri servizi a chiunque, indipendentemente dalla tecnologia o dall'infrastruttura scelta da tali fornitori di software. Il broker dei servizi agisce come componente middleware che gestisce il provisioning automatico delle istanze del servizio per un prodotto e aiuta con la traccia dell'utilizzo delle istanze del servizio.
Un broker è utile se si sta sviluppando e offrendo software as a service, platform as a service o infrastructure as a service tra più fornitori. Può aumentare il valore di business introducendo il broker di servizi per automatizzare il provisioning e il bind per i clienti. Inoltre, la gestione dei clienti e la traccia dell'utilizzo possono essere più semplici con un componente middleware che gestisce questi problemi trasversali. Tuttavia, un broker dei servizi non è adatto se si dispone di un software personalizzato che può essere distribuito su qualsiasi piattaforma o macchina virtuale.
Quando un utente seleziona il servizio e il suo piano dei prezzi dal catalogo IBM Cloud e crea un'istanza, i dati per il servizio, inclusi il piano dei prezzi e le metriche, vengono inviati al broker dei servizi. Il broker è integrato con il
sistema di backend che gestisce il provisioning delle istanze del servizio e le metriche per un piano dei prezzi selezionato. Se un cliente elimina un'istanza del prodotto, viene inviata una richiesta al broker dei servizi e gestisce l'annullamento
del provisioning dell'istanza.
L'architettura del broker fornisce vantaggi significativi sia per i team di sviluppo che per quelli operativi:
- Gli sviluppatori possono collegare le applicazioni e i contenitori ai servizi di supporto di cui hanno bisogno. L'operazione è la stessa, indipendentemente dal servizio di backup.
- Gli operatori non devono più creare manualmente e delegare l'accesso ai servizi. Configurano invece un marketplace di servizi e piani di servizio. Da lì, gli sviluppatori possono auto - servire, riducendo i costi amministrativi che molte aziende devono affrontare oggi.
Ogni broker dei servizi creato con la specifica API di Open Service Broker ha la stessa serie intuitiva di comandi del ciclo di vita. Questi comandi forniscono utili vantaggi per il broker dei servizi:
- Richiamo del catalogo dei servizi di backup offerti da un broker dei servizi
- Il catalogo descrive tutti i servizi che è possibile creare tramite un broker dei servizi e ogni servizio è formato da piani. I piani generalmente rappresentano i costi e i vantaggi per una determinata variante del servizio. Molti servizi utilizzano piani che rappresentano diversi livelli o configurazioni del prodotto.
- Provisioning di nuove istanze del servizio
- Un'istanza del servizio è un'istanza creata di un servizio e piano come descritto nel catalogo del broker dei servizi.
- Connessione e disconnessione di applicazioni e contenitori da tali istanze del servizio
- Quando viene creata un'istanza del servizio, vuoi che la tua applicazione o contenitore inizi a comunicare con tale istanza. Dal punto di vista di un broker dei servizi, questo viene chiamato bind del servizio.
- Annullamento del provisioning delle istanze del servizio
- Questa azione elimina tutte le risorse create alla creazione iniziale dell'istanza del servizio.
Prima di iniziare
- Registra il tuo servizio nel Centro IBM Cloud partner.
- Definire i dettagli del prodotto del servizio.
- Esamina lo scenario di provisioning per comprendere come funziona la creazione di risorse.
- Leggi e familiarizza con le specifiche dell'API Open Broker e utilizza il file readme come guida per saperne di più. IBM Cloud
utilizza le specifiche dell'API Open
version 2.12Service Broker (OSB).
Creazione di un broker
Configurare e distribuire un broker con le specifiche richieste utilizzando la documentazione e le applicazioni di esempio riportate di seguito:
- Utilizza l 'API IBM Cloud Open Service Broker per impostare le specifiche richieste, inclusi gli endpoint richiesti.
Esaminate il seguente esempio di applicazione:
- Utilizzate l'applicazione di riferimento Open Service Broker basata su NodeJS come guida per creare il vostro broker.
Inclusione degli endpoint richiesti
Tutti i broker dei servizi devono impostare determinati endpoint obbligatori. È richiesta ulteriore logica dell'endpoint per i servizi collegabili e per la disabilitazione e la riabilitazione delle istanze del servizio.
Logica dell'endpoint richiesta per tutti i broker dei servizi
I broker dei servizi devono fornire un insieme standard di valori di metadati che vengono utilizzati dalle API REST e i broker IBM Cloud devono avere la logica per i seguenti endpoint o percorsi dell'API REST:
- catalog (GET)
- Restituisce i metadati del catalogo inclusi nel tuo broker.
- resource instances (PUT)
- Crea la tua istanza del servizio.
- resource instances (DELETE)
- Elimina l'istanza del servizio.
- resource instances (PATCH)
- Aggiorna la tua istanza del servizio.
Nota su catalog (GET): questo endpoint definisce il contratto tra il broker e la piattaforma IBM Cloud per i servizi e i piani supportati dal broker. Questo endpoint restituisce i metadati del catalogo memorizzati nel proprio broker. Questi valori definiscono il contratto minimo tra il tuo servizio e la piattaforma IBM Cloud. Tutti i metadati aggiuntivi del catalogo che non sono obbligatori vengono memorizzati nel catalogo “ IBM Cloud ”. Qualsiasi aggiornamento dei valori di visualizzazione del catalogo, come link e icone, deve essere effettuato nella IBM Cloud console e non deve essere conservato nel proprio broker. Nessuno dei metadati archiviati nel tuo broker viene visualizzato nella console IBM Cloud o nella CLI IBM Cloud. La console e l'interfaccia a riga di comando (CLI) restituiscono i valori impostati in Partner Center Sell e memorizzati nel catalogo " IBM Cloud ". La sezione seguente illustra i valori minimi richiesti restituiti dal comando catalog (GET):
{
"services": [{
"id": "0bc9d744-6f8c-4821-9648-2278bf6925bb",
"name": "ibmcloud-link",
"description": "An IBM provided service that enables aliasing to service instances in the IBM Cloud.",
"bindable": true,
"plan_updateable": false,
"plans": [
{
"id": "da40662d-2f72-4a19-8c79-8c77cf285e1",
"name": "ibmcloud-alias",
"free": true,
"description": "The IBM Cloud alias plan used for linking."
}
]
}]
}
Logica di endpoint richiesta per i servizi associabili
Se il tuo servizio può essere integrato con le applicazioni presenti su IBM Cloud, deve fornire agli utenti del servizio gli endpoint API e le credenziali. Un servizio associabile deve utilizzare le operazioni associabili nella specifica Open Service Broker e implementare i seguenti endpoint o percorsi:
- bindings and credentials (PUT)
- Esegue il bind della tua istanza del servizio a un'applicazione.
- bindings and credentials (DEL)
- Annulla il bind della tua istanza del servizio da un'applicazione.
Endpoint di estensione IBM Cloud richiesti
La specifica OSB non supporta uno stato dell'istanza disabilitato. Uno stato disabilitato include un pagamento mancante o altre situazioni che determinano una sospensione dell'account (ma non ancora l'annullamento) ed è diverso da uno stato dell'istanza eliminato. Al fine di IBM Cloud supportare i clienti che potrebbero trovarsi in uno stato di disabilitazione, IBM Cloud ha definito gli endpoint API estesi che consentono di disabilitare e riabilitare le istanze di servizio. Sono richieste le seguenti estensioni degli endpoint:
- enable and disable instances (GET)
- Stato - restituisce lo stato della tua istanza del servizio.
- enable and disable instances (PUT)
- Abilitare o disabilitare un'istanza del servizio.
È responsabilità del provider di servizi disabilitare l'accesso all'istanza del servizio quando viene avviato l'endpoint di disabilitazione e riabilitare tale accesso quando viene avviato l'endpoint di abilitazione.
Informazioni del broker fornite dalla piattaforma IBM Cloud
Il tuo broker dei servizi riceve le seguenti informazioni dalla piattaforma IBM Cloud:
X-Broker-API-Originating-Identity
L'intestazione relativa all'identità dell'utente viene fornita tramite un'intestazione di identità proveniente dall'API. Questa intestazione di richiesta include l'identità IBM Cloud IAM dell'utente. L'identità IAM è base64
codificata. IBM Cloud Supporta un unico dominio di autenticazione: IBMid. L'area di autenticazione IBMid utilizza un IUI (IBMid Unique ID) per identificare l'identità dell'utente in IBM Cloud. Questo IUI è una
stringa opaca per il provider di servizi.
Esempio:
X-Broker-API-Originating-Identity: ibmcloud eyJpYW1faWQiOiJJQk1pZC01MEdOUjcxN1lFIn0=
Decoded:
{"iam_id":"IBMid-50GNR717YE"}
Versione dell'intestazione API
L' intestazione della versione API è 2.12. Ad esempio: X-Broker-Api-Version: 2.12.
resource instance (PUT) body.context and resource instance (PATCH) body.context
PUT /v2/service_instances/:resource_instance_id e PATCH /v2/service_instances/:resource_instance_id ricevono il seguente valore all'interno di body.context: { "platform": "ibmcloud", "account_id": "tracys-account-id", "crn": "resource-instance-crn" }.
Ulteriori suggerimenti sul broker
Suggerimenti sull'utilizzo delle operazioni asincrone invece di quelle sincrone
L'API OSB supporta entrambe le modalità di operazione sincrone e asincrone. Se le operazioni richiedono meno di 10 secondi, è necessario utilizzare le risposte sincrone. In caso contrario, devi utilizzare la modalità di operazione asincrona.
La modalità asincrona richiede l'endpoint last_operation. Per ulteriori informazioni, vedi Ottieni lo stato di un provisioning in corso per un'istanza del servizio.
Suggerimenti per la gestione dei broker nelle diverse ubicazioni
È importante che gli utenti comprendano l'ubicazione dei loro servizi cloud per la latenza, la disponibilità e la residenza dei dati.
Quando si creano istanze di servizio su IBM Cloud, uno dei parametri obbligatori che gli utenti devono specificare è la posizione in cui desiderano che venga creata l'istanza di servizio. Alcuni servizi consentono di effettuare la creazione in più sedi. Ad esempio, un servizio di database può supportare la creazione in tutte IBM Cloud le regioni oppure può supportarne un sottoinsieme.
Se il tuo servizio basato su API di terze parti è implementato in un altro cloud ed esposto in IBM Cloud, l'ubicazione indica l'ubicazione del servizio nell'altro cloud.
Durante l'onboarding in IBM Cloud, devi implementare almeno un broker OSB. Puoi avere più di un broker in base alla tua strategia di distribuzione e alle ubicazioni che desideri supportare per il tuo servizio. In Partner Center Sell, si stabilisce l'associazione tra il piano dei prezzi e il broker. Le opzioni più comuni consistono nel definire un unico broker che gestisca tutte le sedi del servizio oppure un broker per ogni sede; la scelta spetta al fornitore del servizio.
Per un elenco di ubicazioni disponibili, esamina IBM ubicazioni del catalogo globale. Se il tuo servizio richiede la definizione di più sedi, consulta il team IBM Cloud di onboarding.
Hosting dei tuoi broker
Il tuo broker deve essere ospitato come parte di un'applicazione in grado di rispondere alle chiamate API REST e la tua posizione ospitata deve soddisfare le IBM Cloud linee guida di sicurezza. È possibile ospitare il proprio broker su IBM Cloud oppure, se è accessibile pubblicamente dallo stesso sito IBM Cloud, è possibile optare per un hosting esterno.
Per ospitare il proprio broker al di fuori di IBM, è necessario assicurarsi che soddisfi le seguenti linee guida di sicurezza:
- Deve seguire il protocollo Transport Layer Security ( TLS ) nella versione 1.2. Per ulteriori informazioni, vedere Panoramica del protocollo TLS.
- Deve essere ospitato su un endpoint HTTPs valido accessibile sull'internet pubblico
Verifica del broker del tuo servizio
Devi convalidare il tuo broker eseguendo i comandi curl rispetto ai diversi endpoint che abiliti. È necessaria la posizione in hosting del broker di servizi, nonché URL e le credenziali associate all'applicazione. Per testare il vostro broker, potete utilizzare il metodo seguente:
- La guida del file readme di esempio per il curling dei tuoi endpoint OSB: https://github.com/IBM/sample-resource-service-brokers/blob/master/README.md.
Durante il test del broker di servizi, il controller delle risorse utilizza lo schema di autenticazione configurato per effettuare le richieste al broker. Assicuratevi che il vostro broker implementi uno dei metodi di autenticazione supportati per garantire la corretta convalida e autorizzazione. Per ulteriori informazioni, vedere Schemi di autenticazione per i broker.
Esempio di richiesta curl
Utilizza il seguente esempio per verificare la risposta curl dei tuoi broker:
curl -X PUT https://<sample-service-broker>/v2/service_instances/<encoded-resource-crn> \
-u '<your broker user>:<your broker password>' \
-H 'content-type: application/json' \
-d '{ "context": {"platform": "ibmcloud", \
"account_id": "34ff5928-c3c7-4d46-bbf6-1a5628c325d1", \
"resource_group_crn": "crn:v1:bluemix:public:resource-controller::a/003e9bc3993aec710d30a5a719e57a80::resource-group:b4570a825f7f4d57aa54e8e1d9507926", \
"crn": "<resource-crn>", \
"target_crn": "<target_crn>"}, \
"service_id": "a07f025c-90db-4652-afd1-cf4adfac93c8", \
"plan_id": "fe442cec-2eef-41fe-9f92-58d6c094584f"}'