I tag aggiunti ai progetti e ai modelli cloud fungono da tag di vincolo quando vengono utilizzati per abbinare i tag di funzionalità alle risorse dell'infrastruttura, ai profili e alle zone cloud. Nel caso dei modelli cloud, Cloud Assembly utilizza questa funzionalità corrispondente per allocare risorse per le distribuzioni.
Cloud Assembly consente di utilizzare i tag di vincolo in due modi principali. Il primo quando si configurano progetti e immagini. È possibile utilizzare i tag come vincoli per associare le risorse al progetto o all'immagine. Il secondo è in modelli cloud in cui i tag specificati come vincoli vengono utilizzati per selezionare le risorse per le distribuzioni. I vincoli applicati in entrambi questi modi vengono uniti nei modelli cloud per creare un set di requisiti di distribuzione che definiscono le risorse disponibili per una distribuzione.
Come funzionano i tag di vincolo nei progetti
Quando si configurano le risorse di Cloud Assembly, gli amministratori del cloud possono applicare i tag di vincolo nei progetti. In questo modo, gli amministratori possono applicare vincoli di governance direttamente a livello del progetto. Tutti i vincoli aggiunti a questo livello vengono applicati a ogni modello cloud richiesto per il progetto applicabile e questi tag di vincolo hanno la precedenza su altri tag.
Se i tag di vincolo nel progetto sono in conflitto con i tag di vincolo nel modello cloud, i tag del progetto hanno la precedenza, consentendo così all'amministratore del cloud di imporre le regole di governance. Ad esempio, se gli amministratori del cloud creano un tag location:london
nel progetto, ma uno sviluppatore posiziona un tag location:boston
nel modello cloud, il primo avrà la precedenza e la risorsa verrà distribuita nell'infrastruttura contenente il tag location:london
.
Sono disponibili tre tipi di tag di vincolo che gli utenti possono applicare ai progetti: rete, storage ed estendibilità. È possibile applicare tutte le istanze di ogni tipo di tag necessarie. I vincoli del progetto possono essere permanenti o temporanei. Per impostazione predefinita sono permanenti. I vincoli permamenti consentono di imporre rigidamente le restrizioni della distribuzione. Se uno o più vincoli permanenti non sono soddisfatti, la distribuzione non riesce. I vincoli temporanei offrono un metodo per esprimere le preferenze che verranno selezionate se disponibili, ma la distribuzione riesce anche se tali vincoli non vengono soddisfatti.
Come funzionano i tag di vincolo nei modelli cloud
Nei modelli cloud è possibile aggiungere tag di vincolo alle risorse come codice YAML in modo che corrispondano ai tag di funzionalità appropriati creati dall'amministratore del cloud in risorse e zone cloud, nonché nei profili di rete e di storage. Sono inoltre disponibili altre opzioni più complesse per l'implementazione dei tag di vincolo. Ad esempio, è possibile utilizzare una variabile per popolare uno o più tag in una richiesta. In questo modo è possibile specificare uno o più tag al momento della richiesta.
Creare tag di vincolo utilizzando l'etichetta tag
sotto un'intestazione di vincolo nel codice YAML del modello cloud. I tag di vincolo dei progetti vengono aggiunti ai tag di vincolo creati nei modelli cloud.
Cloud Assembly supporta una semplice formattazione stringa per semplificare l'uso dei vincoli nei file YAML:
[!]tag_key[:tag_value][:hard|:soft]
Per impostazione predefinita, Cloud Assembly crea un vincolo positivo con imposizione permanente. Il valore del tag è facoltativo, ma consigliato, come nel resto dell'applicazione.
Il seguente esempio di WordPress con MySQL mostra i tag di vincolo YAML che specificano le informazioni sulla posizione delle risorse di elaborazione.
name: "wordPressWithMySql" components: mysql: type: "Compute" data: name: "mysql" # ... skipped lines ... wordpress: type: "Compute" data: name: "wordpress" instanceType: small imageType: "ubuntu-server-1604" constraints: - tag: "!location:eu:hard" - tag: "location:us:soft" - tag: "!pci" # ... skipped lines ...
Per ulteriori informazioni sull'utilizzo dei modelli cloud, vedere Parte 3: progettazione e distribuzione del modello di Cloud Assembly di esempio.
Come funzionano vincoli permanenti e temporanei in progetti e modelli cloud
I vincoli dei progetti e dei modelli cloud possono essere permanenti o temporanei. Il frammento di codice precedente mostra esempi di vincoli permanenti e temporanei. Per impostazione predefinita, tutti i vincoli sono permanenti. I vincoli permamenti consentono di imporre rigidamente le restrizioni della distribuzione. Se uno o più vincoli permanenti non sono soddisfatti, la distribuzione non riesce. I vincoli temporanei esprimono le preferenze che vengono applicate se disponibili, ma non causano la mancata riuscita di una distribuzione se non vengono soddisfatti.
Se in un tipo di risorsa specifico è presente una serie di vincoli permanenti e temporanei, i vincoli temporanei possono essere utilizzati anche come mezzi risolutivi. Ovvero, se più risorse soddisfano un vincolo permanente, i vincoli temporanei vengono utilizzati per selezionare la risorsa effettivamente utilizzata nella distribuzione.
Ad esempio, si supponga di creare un vincolo di storage permanente con un tag location:boston
. Se nessuno storage nel progetto soddisfa questo vincolo, qualsiasi distribuzione correlata non riesce.