Skip to main content
NetApp Solutions
La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Accélération du développement logiciel avec la technologie NetApp FlexClone

Contributeurs

Présentation

Le clonage d'une application déployée dans un cluster Kubernetes est un outil très utile pour les développeurs qui souhaitent accélérer leurs workflows en partageant des environnements avec des partenaires ou en testant de nouvelles versions de code dans un environnement de développement sans interférer avec la version sur laquelle ils travaillent actuellement. Le clonage avec état et cohérence applicative d'une application Kubernetes est une fonctionnalité majeure incluse avec NetApp Astra Control, ainsi que la sauvegarde et la restauration des applications. Par ailleurs, si une application est clonée dans le même cluster Kubernetes avec le même système back-end de stockage, Astra Control utilise par défaut la technologie NetApp FlexClone pour la duplication des volumes de données persistants, accélérant ainsi le processus de façon significative. En accélérant ce processus, l'environnement cloné est provisionné et peut être utilisé en quelques instants. Les développeurs peuvent ainsi reprendre leur travail avec une courte pause lorsque l'on compare le redéploiement de leur environnement de test et de développement. Pour plus de commodité, vous pouvez appeler toutes les fonctions de NetApp Astra Control avec une API, qui facilite l'intégration dans les frameworks d'automatisation comme Ansible. Ainsi, les environnements peuvent être échelonnés encore plus rapidement, car seules des modifications mineures sont nécessaires dans un manuel de vente ou un rôle pour lancer la procédure de clonage.

Qu'est-ce que la technologie NetApp FlexClone ?

La technologie NetApp FlexClone est une copie Snapshot inscriptible instantanée à partir d'un environnement NetApp FlexVol. Elles sont provisionnées presque instantanément, contiennent toutes les données du volume source et ne consomment aucun espace de stockage supplémentaire tant que les données du nouveau volume ne sont pas nouvelles de la source. Elles sont souvent utilisées dans des environnements de développement ou basés sur des modèles lorsque plusieurs copies de données sont utiles pour la mise en scène ; les systèmes de stockage disposent de ressources limitées pour le provisionnement de ces volumes. Par rapport à un système de stockage traditionnel dans lequel les données doivent être copiées plusieurs fois plus vite et consommation d'espace de stockage important, la technologie NetApp FlexClone accélère les tâches dépendantes du stockage.

Image FlexClone

Pour en savoir plus sur la technologie NetApp FlexClone, consultez la page "Documents NetApp".

Prérequis

  1. Une distribution Kubernetes prise en charge, telle que Red Hat OpenShift 4.6.8+, Rancher 2.5+ ou Kubernetes 1.19+.

  2. NetApp Astra Control Center, 21.12+.

  3. Un système NetApp ONTAP avec un système back-end de stockage configuré via NetApp Astra Trident.

  4. Ansible 2.9+.

  5. Des modèles pour les environnements que vous souhaitez cloner en tant qu'applications gérées dans NetApp Astra Control.

Introduction au cas d'utilisation

Pour cette utilisation, nous visualisons un environnement similaire à celui-ci :

Image de workflow
  1. Un utilisateur exécute ce manuel de vente ansible pour créer un nouvel environnement intermédiaire.

  2. Ansible utilise le module URI-API pour appeler Astra Control afin d'exécuter l'opération de clonage.

  3. Astra Control exécute une opération de clonage sur un environnement modèle préprovisionné, créant ainsi une nouvelle application gérée.

    Remarque Cet environnement peut être une seule application autonome en cours de développement ou dans l'ensemble d'un environnement de développement comme un pipeline ci/CD Jenkins.
  4. L'utilisateur extrait ensuite une version de son code dans l'environnement de développement cloné à partir d'un référentiel en ligne tel que Gitea.

  5. La nouvelle version de l'application est déployée et gérée par NetApp Astra Control.

    Remarque Ces deux processus peuvent être automatisés.
  6. L'utilisateur peut développer un nouveau code dans cet environnement cloné.

  7. Lorsque l'utilisateur est satisfait de ses efforts de développement, il peut renvoyer le code vers le référentiel hébergé.

L'utilisation présentée ici dépend de l'existence de modèles optimisés pour les environnements ou les applications que vous souhaitez cloner. Dans notre environnement, nous avons créé trois de ces modèles, un pour un déploiement Wordpress, un pour un déploiement Magento, et un pour un environnement ci/CD Jenkins avec Gitea que nous avons intitulé DevTools.

Image des modèles

Chacun de ces environnements est géré par le contrôle NetApp Astra, avec des volumes persistants stockés sur un système de stockage NetApp ONTAP avec un back-end NFS fourni par NetApp Astra Trident.

Validation du cas d'utilisation

  1. Clonez le kit ansible fourni par l'équipe NetApp Solutions Engineering, qui comprend le rôle de clonage et le PlayBook de mise à jour des applications.

    [netapp-user@rhel7 ~]$ git clone https://github.com/NetApp-Automation/na_astra_control_suite.git
    [netapp-user@rhel7 ~]$ cd na_astra_control_suite
  2. Modifier vars/clone_vars.yml Et apportez les valeurs globales adaptées à votre environnement Astra Control.

    astra_control_fqdn: astra-control-center.example.com
    astra_control_account_id: "xxxx-xxxx-xxxx-xxxx-xxxx"
    astra_control_api_token: "xxxxx"
    Remarque Les valeurs globales d'environnement à remplir sont disponibles sous l'icône de profil utilisateur de NetApp Astra Control, sous le menu d'accès à l'API.
    Image accès API
  3. Lorsque les variables globales sont terminées, vous pouvez choisir les valeurs de l'application spécifique que vous souhaitez cloner. Pour cloner l'environnement devTools vers un environnement personnel appelé alan-devtools, procédez comme suit :

    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
    Remarque Pour tirer parti de la technologie NetApp FlexClone dans le processus de clonage, src-cluster et dest-cluster doit être identique.
  4. Vous pouvez désormais exécuter le manuel de vente pour cloner l'application.

    [netapp-user@rhel7 na_astra_control_suite]$ ansible-playbook -K clone_app_playbook.yml]
    Remarque Le manuel tel qu'écrit doit être exécuté par l'utilisateur root ou par une personne pouvant faire remonter à travers le processus sudo en passant l'argument « -K ».
  5. Lorsque le manuel de vente termine son exécution, l'application clonée apparaît comme disponible dans la console Astra Control Center.

    Image d'application clonée
  6. Un utilisateur peut ensuite se connecter à l'environnement Kubernetes où l'application a été déployée, vérifier que l'application est exposée avec une nouvelle adresse IP, et lancer son travail de développement.

Pour une démonstration de ce cas d'utilisation et un exemple de mise à niveau d'une application, voir "ici".