Skip to main content
NetApp Solutions
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Accelerazione dello sviluppo software con la tecnologia FlexClone di NetApp

Collaboratori

Panoramica

La clonazione di un'applicazione distribuita in un cluster Kubernetes è uno strumento molto utile per gli sviluppatori che desiderano accelerare i propri flussi di lavoro condividendo ambienti con i partner o testando nuove versioni di codice in un ambiente di sviluppo senza interferire con la versione su cui stanno attualmente lavorando. La clonazione stateful e coerente con l'applicazione di un'applicazione Kubernetes è una delle funzionalità principali incluse in NetApp Astra Control, insieme al backup e ripristino delle applicazioni. Come bonus, se un'applicazione viene clonata all'interno dello stesso cluster Kubernetes utilizzando lo stesso backend di storage, Astra Control utilizza per impostazione predefinita la tecnologia NetApp FlexClone per la duplicazione di volumi di dati persistenti, accelerando notevolmente il processo. Accelerando questo processo, l'ambiente clonato viene fornito e disponibile per l'utilizzo in pochi istanti, consentendo agli sviluppatori di riprendere il proprio lavoro con una breve pausa rispetto alla ridistribuzione dell'ambiente di test o sviluppo. Come ulteriore comodità, tutte le funzioni disponibili in NetApp Astra Control possono essere chiamate con un'API, che consente una facile integrazione in framework di automazione come Ansible. Pertanto, gli ambienti possono essere gestiti in tempi ancora più rapidi, perché sono necessarie solo modifiche di lieve entità in un manuale o in un ruolo per iniziare la procedura di cloning.

Che cos'è la tecnologia FlexClone di NetApp?

La tecnologia NetApp FlexClone è una copia scrivibile e point-in-time basata su snapshot di un NetApp FlexVol. Vengono forniti quasi istantaneamente, contengono tutti i dati del volume di origine e non consumano spazio di storage aggiuntivo fino a quando i dati nel nuovo volume non iniziano a divergere dall'origine. Vengono spesso utilizzati in ambienti basati su modelli o di sviluppo quando più copie di dati sono utili per scopi di staging e i sistemi storage dispongono di risorse limitate per il provisioning di questi volumi. Rispetto a un sistema storage tradizionale in cui i dati devono essere copiati più volte, con un conseguente consumo di tempo e spazio di storage significativo, la tecnologia NetApp FlexClone accelera le attività dipendenti dallo storage.

Immagine FlexClone

Per ulteriori informazioni sulla tecnologia FlexClone di NetApp, visita la pagina all'indirizzo "Documenti NetApp".

Prerequisiti

  1. Una distribuzione Kubernetes supportata, come Red Hat OpenShift 4.6.8+, Rancher 2.5+ o Kubernetes 1.19+.

  2. NetApp Astra Control Center 21.12+.

  3. Un sistema NetApp ONTAP con un backend di storage configurato tramite NetApp Astra Trident.

  4. Ansible 2.9+.

  5. Modelli per gli ambienti che si desidera clonare come applicazioni gestite in NetApp Astra Control.

Introduzione al caso d'utilizzo

In questo caso di utilizzo, viene visualizzato un aspetto simile al seguente flusso di lavoro:

Immagine del workflow
  1. Un utente esegue il playbook ansible per creare un nuovo ambiente di staging.

  2. Ansible utilizza il modulo URI-API per richiamare Astra Control per eseguire l'operazione di cloning.

  3. Astra Control esegue un'operazione di cloning su un ambiente modello con provisioning anticipato, creando così una nuova applicazione gestita.

    Nota Questo ambiente può essere una singola applicazione standalone in fase di sviluppo o un intero ambiente di sviluppo come una pipeline Jenkins ci/CD.
  4. L'utente quindi estrae una versione del proprio codice nell'ambiente di sviluppo clonato da un repository online come Gitea.

  5. La nuova versione dell'applicazione viene implementata e gestita da NetApp Astra Control.

    Nota Entrambi questi processi possono essere automatizzati.
  6. L'utente può sviluppare nuovo codice in questo ambiente clonato.

  7. Quando l'utente è soddisfatto dei propri sforzi di sviluppo, può reinviare il codice al repository ospitato.

Il caso d'utilizzo qui presentato dipende dall'esistenza di modelli Golden per gli ambienti o le applicazioni che si desidera clonare. Nel nostro ambiente abbiamo creato tre modelli di questo tipo, uno per un'implementazione di WordPress, uno per un'implementazione di Magento e uno per un ambiente ci/CD di Jenkins con Gitea che abbiamo chiamato DevTools.

Immagine dei modelli

Ciascuno di questi ambienti è gestito da NetApp Astra Control, con volumi persistenti attualmente memorizzati su un sistema di storage NetApp ONTAP con un backend NFS fornito da NetApp Astra Trident.

Validazione del caso d'utilizzo

  1. Clonare il toolkit ansible fornito dal team NetApp Solutions Engineering, che include il ruolo di cloning e il manuale di aggiornamento dell'applicazione.

    [netapp-user@rhel7 ~]$ git clone https://github.com/NetApp-Automation/na_astra_control_suite.git
    [netapp-user@rhel7 ~]$ cd na_astra_control_suite
  2. Modifica vars/clone_vars.yml E compila i valori globali che si adattano al tuo ambiente Astra Control.

    astra_control_fqdn: astra-control-center.example.com
    astra_control_account_id: "xxxx-xxxx-xxxx-xxxx-xxxx"
    astra_control_api_token: "xxxxx"
    Nota I valori dell'ambiente globale da compilare sono disponibili sotto l'icona del profilo utente in NetApp Astra Control nel menu API Access.
    API Access Image (immagine accesso API)
  3. Una volta completate le variabili globali, è possibile scegliere i valori per l'applicazione specifica che si desidera clonare. Per clonare l'ambiente devtools in un ambiente personale chiamato alan-devtools, eseguire le seguenti operazioni:

    clone_details:
      - clone_name: alan-devtools
        destination_namespace: alan-dev-namespace
        source_cluster_name: ocp-vmware2
        destination_cluster_name: ocp-vmware2
        source_application_name: devtools-template
    Nota Per sfruttare la tecnologia FlexClone di NetApp nel processo di cloning, src-cluster e. dest-cluster deve essere lo stesso.
  4. È ora possibile eseguire il manuale per clonare l'applicazione.

    [netapp-user@rhel7 na_astra_control_suite]$ ansible-playbook -K clone_app_playbook.yml]
    Nota Il playbook così come è stato scritto deve essere eseguito dall'utente root o da un utente che può eseguire l'escalation attraverso il processo sudo passando l'argomento "-K".
  5. Quando il playbook completa la sua esecuzione, l'applicazione clonata viene visualizzata come disponibile nella console di Astra Control Center.

    Immagine dell'applicazione clonata
  6. Un utente può quindi accedere all'ambiente Kubernetes in cui è stata implementata l'applicazione, verificare che l'applicazione sia esposta con un nuovo indirizzo IP e iniziare il lavoro di sviluppo.

Per una dimostrazione di questo caso di utilizzo e un esempio di aggiornamento di un'applicazione, vedere "qui".