TerraHub.io Architettura senza server in azione

Quando abbiamo iniziato a lavorare sulla CLI di TerraHub, il nostro obiettivo iniziale era automatizzare l’esecuzione di terraform e consentire ai clienti di attivare le corse in modalità self-service, come parte delle loro condotte GitHub e Jenkins esistenti. Come qualsiasi team di tecnici che si rispetti che lavora sull’automazione, abbiamo aggiunto casi di test pertinenti per rendere il processo affidabile e sostenibile. Molto orgoglioso del nostro risultato!

Ma … A causa della mancanza di conoscenza o esperienza – e senza incolpare nessuno, specialmente i clienti – i nostri sforzi sono stati inutili e sono stati in qualche modo inosservati, il che è stato un po ‘di delusione per il nostro team. Tuttavia, questa esperienza ci ha aiutato a capire che la rappresentazione visiva del nostro lavoro, sebbene non fosse quasi nulla dal nostro punto di vista, era molto apprezzata e apprezzata dal cliente. Questo è stato il punto di partenza e la vera storia di nascita di TerraHub.io, l’hub DevOps per Terraform.

Abbiamo già fatto un’introduzione a TerraHub.io. In questo articolo vorrei concentrarmi sugli aspetti nascosti di questo ecosistema, che consiste in:

  • TerraHub CLI (ospitato da https://github.com/TerraHubCorp/terrahub)
  • API TerraHub (ospitato da https://www.terrahub.io)
  • TerraHub GUI (ospitato da https://console.terrahub.io)

Imparando dalle lezioni precedenti, volevamo facilitare ai clienti la comprensione e la visualizzazione del nostro lavoro. Pertanto abbiamo escogitato il seguente diagramma di architettura 3D per provare a mostrare ogni componente in azione:

https://github.com/TerraHubCorp/terrahub

TerraHub CLI è una di quelle soluzioni riutilizzabili che volevamo condividere con la comunità devops. Il problema – flusso di lavoro automatizzato per Terraform – è sorprendentemente comune e richiede uno sforzo decente per la personalizzazione per esigenze specifiche. Avanti veloce, siamo finiti con uno strumento di gestione completo che:

  • Gestisce AWS, Google Cloud, Microsoft Azure e altri in un unico posto
  • Gestisce basato su VM, Container, Serverless e altri utilizzando un flusso di lavoro
  • Gestisce TUTTE le risorse cloud in modo sicuro nelle reti private dei clienti
  • Gestisce TUTTE le esecuzioni terraform in un sistema usando un processo CI e CD

TerraHub CLI è sviluppato in Node.js ed è pubblicato su npmjs.com. L’implementazione di questo strumento può essere suddivisa in 4 componenti principali:

  1. Fonte principale (riferimento: https://github.com/TerraHubCorp/terrahub/tree/master/src)
  2. Comandi (riferimento: https://github.com/TerraHubCorp/terrahub/tree/master/src/commands)
  3. Helpers (riferimento: https://github.com/TerraHubCorp/terrahub/tree/master/src/helpers)
  4. Modelli (riferimento: https://github.com/TerraHubCorp/terrahub/tree/master/src/templates)

Ogni script viene interpretato logicamente ed eseguito senza interruzioni sotto l’ombrello unificato dell’interfaccia della riga di comando di terrahub o alias thub . Tutte le dipendenze e i metadati associati sono definiti in package.json.

API TerraHub

Sfortunatamente, non siamo stati in grado di risolvere tutti i limiti del terrenoform tramite l’interfaccia della TerraHub CLI. In particolare, se desidero condividere il mio ambiente terraform con Vlad, dovrei condividere con lui tutte le mie credenziali e replicare la mia configurazione di sicurezza sul suo computer, nonché configurare e distribuire costantemente il mio ambiente cloud sul suo laptop. Per essere chiari, questo è possibile, ma è un sacco di lavoro inutile da inserire nella CLI di TerraHub.

Al fine di evitare questa seccatura, oltre a risparmiare tempo prezioso e grandi quantità di risorse informatiche sia sul mio computer che sul laptop di Vlad, abbiamo sfruttato il valore e la bellezza del cloud. Abbiamo creato una raccolta riutilizzabile di API TerraHub (al momento della stesura, i documenti API sono ancora in corso).

TerraHub.io è l’hub DevOps per Terraform. Forniamo servizi gestiti che semplificano la gestione delle risorse cloud tramite terraform. Se questo è di tuo interesse e desideri saperne di più, non esitare a contattarci tramite e-mail, Twitter o LinkedIn. Saremo felici di aiutarti!