Pianificazione dell'utilizzo delle aree di lavoro

Pianifica e progetta i tuoi spazi di lavoro utilizzando le seguenti domande come prompt:

  • Come correlare le aree di lavoro ai repository Git ?
  • Di quante aree di lavoro ha bisogno il mio ambiente di applicazione?
  • Come posso riutilizzare i file di configurazione di Terraform in ambienti e spazi di lavoro diversi?
  • Come posso controllare l'accesso e gestire i miei spazi di lavoro?

Spazi di lavoro e repository Git

Gli spazi di lavoro utilizzano modelli Terraform da repository Git pubblici o privati come GitHub, GitLab, Bitbucket e Azure DevOps. La tabella fornisce il formato dell'origine dei repository.

RepositoryGit
Repository Git URL
GitHub https://github.com/<your_user_name>/<repo_name>/tree/<branch_name>/<folder_name>
GitLab https://gitlab.com/<your_user_name>/<project_name>/tree/<branch_name>/<folder_name>
Bitbucket https://bitbucket.org/<your_user_name>/<repo_name>/src/<branch_name>/<folder_name>
https://<username>@bitbucket.org/<workspace_name>/tf_cloudless_sleepy/src/master
Azure DevOps https://azure.com/<your_user_name>/<repo_name>/src/<branch_name>/<folder_name>
https://visualstudio.com/<your_user_name>/<repo_name>/src/<branch_name>/<folder_name>

Di quante aree di lavoro ha bisogno il mio ambiente di applicazione?

Il numero di spazi di lavoro che ti servono in IBM Cloud Schematics è determinato dalla struttura della tua applicazione e dagli ambienti di cui hai bisogno per sviluppare, testare e pubblicare la tua applicazione o il tuo microservizio.

Come regola generale, considera spazi di lavoro separati per ogni microservizio e per gli ambienti che utilizzi. Ad esempio, se si dispone di un'app di prodotto che consiste in componenti di microservizi di ricerca, pagamento e revisione, si consideri la possibilità di creare aree di lavoro separate per ciascun componente di microservizio e i relativi ambienti di sviluppo, staging e produzione. Con spazi di lavoro separati per ogni componente e ambiente, è possibile sviluppare, distribuire e aggiornare i file di configurazione Terraform e le risorse cloud associate senza influire su altri componenti.

Esamina la seguente immagine, osservando la struttura dello spazio di lavoro IBM Cloud Schematics per un'applicazione composta da tre microservizi.

Struttura dello spazio di lavoro per IBM Cloud Schematics
struttura dello spazio di lavoro per IBM Cloud Schematics

Nelle organizzazioni in cui le responsabilità dell'infrastruttura sono distribuite tra più team, non si consiglia di utilizzare uno spazio di lavoro per gestire interi ambienti di staging o di produzione. Quando si distribuiscono tutte le risorse cloud utilizzando un unico spazio di lavoro, può diventare difficile per i vari team coordinare gli aggiornamenti e gestire l'accesso a tali risorse. Spazi di lavoro separati, la condivisione delle definizioni di infrastrutture utilizzando le origini dati dello stato remoto fornisce un meccanismo per creare aree di responsabilità separate.

Come posso strutturare i miei repository di Git per mappare i miei spazi di lavoro?

Struttura il tuo repository di configurazione ( Git ) in modo da avere un repository per tutti i tuoi file di configurazione Terraform che costruiscono il tuo microservizio, e usa variabili di input in rami o directory Schematics o GitHub per differenziare tra i tuoi ambienti di sviluppo, staging e produzione.

Esamina la tabella seguente per trovare un elenco di opzioni su come strutturare il repository di Git per mappare i diversi ambienti di lavoro.

Struttura del repository Git
Opzione Descrizione
Un repo di Git, usa le variabili per distinguere tra ambienti Creare un repository Git in cui archiviare i file di configurazione di Terraform che compongono il componente del microservizio. Crea i tuoi file di configurazione Terraform in modo che siano il più possibile generici, in modo da poter riutilizzare la stessa configurazione tra più ambienti. Per configurare le specifiche del tuo ambiente di sviluppo, di preparazione e di produzione, utilizza variabili di input Terraform nei tuoi file di configurazione. Le variabili di input vengono caricate automaticamente in IBM Cloud Schematics quando crei lo spazio di lavoro. Per personalizzare il tuo spazio di lavoro, immetti i valori specifici dell'ambiente per le tue variabili. Questa configurazione è utile se è un unico team a gestire il ciclo di vita del componente del microservizio e se la configurazione dei tuoi ambienti non differisce notevolmente.
Un repo di Git, usa i rami per distinguere tra ambienti Crea un repository Git per il tuo componente microservice e utilizza diversi rami Git per memorizzare i file di configurazione Terraform per ciascuno dei tuoi ambienti. Con questa configurazione, hai una distinzione netta tra i tuoi ambienti e un maggior controllo su chi può accedere a una determinata configurazione e modificarla. Assicurati di impostare come le modifiche in un file di configurazione vengono popolate tra i rami per evitare di avere configurazioni diverse in ogni ambiente.
Un repo Git, usa le directory per distinguere tra ambienti Per le organizzazioni che preferiscono rami di breve durata e nei casi in cui le configurazioni degli ambienti differiscono notevolmente, valuta la creazione di directory che rappresentino le varie configurazioni dei tuoi ambienti. Con questa configurazione, tutte le tue directory restano in ascolto di eventuali modifiche sottoposte a commit nel ramo master. Assicurati di impostare come le modifiche in un file di configurazione vengono popolate nelle directory per evitare di avere configurazioni diverse in ogni ambiente.
Utilizzare un repo di Git per ogni ambiente Utilizza un repository di Git per ciascuno dei tuoi ambienti. Con questa configurazione, si ha una relazione 1:1 tra l'area di lavoro e l'archivio di Git ed è possibile applicare autorizzazioni separate per ciascuno degli archivi di Git. Assicurati che il tuo team sia in grado di gestire più repository di Git e mantenerli sincronizzati.

Come posso riutilizzare i file di configurazione tra ambienti e spazi di lavoro?

Cerca di ridurre al minimo il numero di file di configurazione Terraform che devi gestire creando modelli Terraform standardizzati e utilizzando variabili per personalizzare l'uso di un modello in base alle tue esigenze.

Ora, puoi utilizzare i moduli Terraform dal registro del modulo Terraform per IBM Cloud.

Con i modelli o i moduli standardizzati di Terraform, è possibile garantire che le migliori pratiche di sviluppo vengano seguite all'interno dell'organizzazione e che tutti i file di configurazione di Terraform abbiano la stessa struttura. Conoscendo la struttura di un file di configurazione Terraform, i tuoi sviluppatori possono capire più facilmente un file, dichiarare le variabili, contribuire al codice e risolvere gli errori.

Come controllo l'accesso ai miei spazi di lavoro?

IBM Cloud Schematics è completamente integrato con IBM Cloud® Identity and Access Management. Per controllare l'accesso a uno spazio di lavoro e stabilire chi può eseguire il tuo codice dell'infrastruttura con IBM Cloud Schematics, vedi Gestione dell'accesso utente.

Di cosa devo essere consapevole quando ho un repository che è stato precedentemente utilizzato con Terraform standalone?

IBM Cloud Schematics, che fornisce Terraform-as-a-Service, consente di riutilizzare i modelli Terraform esistenti con gli spazi di lavoro. A seconda di come vengono scritti i tuoi modelli Terraform e della struttura dei repository Git, potresti dover apportare delle modifiche per utilizzare correttamente IBM Cloud Schematics.

  • Dichiarazione del blocco Provider: poiché IBM Cloud Schematics è integrato con IBM Cloud® Identity and Access Management, la chiave API di IBM Cloud viene recuperata automaticamente per tutte le risorse abilitate per IAM e non è necessario fornire queste informazioni nel blocco provider. Tuttavia, la chiave API non viene recuperata per le risorse infrastrutturali classiche. Per ulteriori informazioni, vedi Configurazione del blocco provider.
  • Riga di comando Terraform e plug-in provider IBM Cloud: per utilizzare IBM Cloud Schematics, non devi installare la riga di comando Terraform o IBM Cloud Provider Plug-in for Terraform. Se si desidera automatizzare l'approvvigionamento delle risorse, provare invece il plug-in della riga di comando IBM Cloud Schematics.

Configurazione di una toolchain di fornitura continua per il tuo workspace

Connetti il tuo repository di origine a una pipeline di fornitura continua in IBM Cloud per generare automaticamente un piano di esecuzione Terraform ed eseguire il tuo codice Terraform in IBM Cloud ogni qualvolta aggiorni i tuoi file di configurazione Terraform.

  1. Se non hai ancora un'istanza del servizio Continuous Delivery nel tuo account, creane una.
    1. Dal catalogo IBM Cloud, apri il servizio Continuous Delivery.
    2. Seleziona la regione IBM Cloud in cui vuoi creare il servizio.
    3. Seleziona un piano dei prezzi.
    4. Immetti un nome per la tua istanza del servizio, seleziona un gruppo di risorse e immetti eventuali tag che desideri associare all'istanza del servizio.
    5. Fai clic su Crea per creare l'istanza del servizio nel tuo account.
  2. Da dashboard spazio di lavoro, selezionare un spazio di lavoro.
  3. Seleziona la scheda Settings.
  4. Nella sezione Riepilogo, fare clic su Abilita distribuzione continua.
  5. Configurare la toolchain.
    1. Immettere un nome per la toolchain e selezionare la regione e il gruppo di risorse in cui si desidera distribuire questa toolchain. La regione e il gruppo di risorse possono essere diversi dalla regione e dal gruppo di risorse che hai utilizzato per il tuo spazio di lavoro Schematics.
    2. Selezionare il tipo di repository di origine in cui sono memorizzati i file di configurazione Terraform. Ad esempio, GitHub.
    3. Rivedere le informazioni per il repository origine. Ad esempio, se i file di Terraform sono archiviati in GitHub, esaminare il server GitHub e il repository per il quale si vuole creare una catena di strumenti di consegna continua. Questi campi sono precompilati in base alla configurazione dello spazio di lavoro.
    4. Facoltativo: scegli se vuoi abilitare i problemi Git e la traccia delle modifiche del codice per la tua toolchain.
  6. Selezionare l'icona Delivery Pipeline per configurare Delivery Pipeline.
    1. Verificare che l'ID dello spazio di lavoro visualizzato sia corretto.
    2. Inserisci una chiave API di IBM Cloud. Se non hai una chiave API, fai clic su Nuovo + per crearne una.
  7. Fai clic su Crea per completare la configurazione della tua toolchain. Vedi una panoramica degli strumenti che sono stati configurati per la tua toolchain.
  8. Aprire il Delivery Pipeline. Delivery Pipeline include fasi per richiamare gli aggiornamenti dal tuo repository di origine, creare un piano di esecuzione Terraform, applicare questo piano ed eseguire un controllo di integrità rispetto al tuo spazio di lavoro.
  9. Aggiorna il file Terraform nel tuo repository di origine e controlla come questa modifica viene elaborata nel tuo Delivery Pipeline. Se una delle fasi ha esito negativo, fare clic su Visualizza log e cronologia per avviare la risoluzione degli errori. Per ulteriori informazioni sulla visualizzazione dei log e della cronologia, vedi Revisione dei dettagli del lavoro Schematics.