Skip to main content
NetApp Solutions
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

Acelere el desarrollo de software con la tecnología FlexClone de NetApp

Colaboradores

Descripción general

El clonado de una aplicación puesta en marcha en un clúster de Kubernetes es una herramienta muy útil para los desarrolladores que desean acelerar sus flujos de trabajo al compartir entornos con partners o probar nuevas versiones de código en un entorno de desarrollo sin interferir con la versión en la que trabajan actualmente. El clonado con estado y consistente con las aplicaciones de una aplicación Kubernetes es una de las principales funciones que se incluyen en Astra Control de NetApp, junto con el backup y la restauración de aplicaciones. Si una aplicación se clona en el mismo clúster de Kubernetes con el mismo back-end de almacenamiento, Astra Control utiliza de forma predeterminada la tecnología FlexClone de NetApp para la deduplicación de volúmenes de datos persistentes, lo que acelera considerablemente el proceso. Al acelerar este proceso, el entorno clonado se aprovisiona y está disponible para su uso en pocos momentos, lo que permite a los desarrolladores reanudar su trabajo con una breve pausa en comparación con la nueva puesta en marcha de su entorno de pruebas o desarrollo. Además, para una mayor comodidad, todas las funciones disponibles en Astra Control de NetApp se pueden llamar con una API, que permite una integración sencilla en marcos de automatización como Ansible. Por lo tanto, los entornos se pueden almacenar en niveles incluso más rápido porque solo se necesitan cambios menores en un libro de aplicaciones o un rol para comenzar el procedimiento de clonación.

¿Qué es la tecnología FlexClone de NetApp?

La tecnología FlexClone de NetApp es una copia editable, basada en copias Snapshot de un momento específico de un FlexVol de NetApp. Se aprovisionan casi al instante, contienen todos los datos del volumen de origen y no consumen espacio de almacenamiento adicional hasta que los datos del nuevo volumen empiecen a desviarse del origen. A menudo se utilizan en entornos basados en desarrollo o en plantillas cuando varias copias de datos son útiles para fines de configuración y los sistemas de almacenamiento tienen recursos limitados para aprovisionar estos volúmenes. En comparación con un sistema de almacenamiento tradicional en el que los datos deben copiarse varias veces, por lo que se consume un tiempo y un espacio de almacenamiento considerable, la tecnología FlexClone de NetApp acelera las tareas dependientes del almacenamiento.

Imagen de FlexClone

Si quiere más información sobre la tecnología FlexClone de NetApp, visite la página en "Documentos de NetApp".

Requisitos previos

  1. Una distribución de Kubernetes compatible, como Red Hat OpenShift 4.6.8 o posterior, Rancher 2.5 o Kubernetes 1.19 o posterior.

  2. NetApp Astra Control Center 21.12+.

  3. Un sistema ONTAP de NetApp con un back-end de almacenamiento configurado mediante la Astra Trident de NetApp.

  4. Ansible 2.9 o posterior.

  5. Plantillas para los entornos que le gustaría clonar como aplicaciones gestionadas en Astra Control de NetApp.

Introducción a casos de uso

Para este caso de uso, visualizamos algo similar al siguiente flujo de trabajo:

Imagen del flujo de trabajo
  1. Un usuario ejecuta el libro de estrategia de Ansible para crear un nuevo entorno de almacenamiento provisional.

  2. Ansible utiliza el módulo URI-API para llamar a Astra Control y ejecutar la operación de clonado.

  3. Astra Control ejecuta una operación de clonación en un entorno de plantilla preaprovisionado, creando así una nueva aplicación administrada.

    Nota Este entorno puede ser una única aplicación independiente en desarrollo o en todo un entorno de desarrollo, como una canalización CI/CD de Jenkins.
  4. A continuación, el usuario extrae una versión de su código al entorno de desarrollo clonado desde un repositorio en línea como Gitea.

  5. La nueva versión de la aplicación se pone en marcha y gestiona con Astra Control de NetApp.

    Nota Estos dos procesos se pueden automatizar.
  6. El usuario puede desarrollar código nuevo en este entorno clonado.

  7. Cuando el usuario está satisfecho con sus esfuerzos de desarrollo, puede devolver el código al repositorio alojado.

El caso de uso que se presenta aquí depende de la existencia de plantillas maestras para los entornos o aplicaciones concretas que desee clonar. En nuestro entorno hemos creado tres de estas plantillas, una para la implementación de Wordpress, otra para la implementación de Magento y otra para un entorno CI/CD de Jenkins con Gitea que hemos titulado DevTools.

Imagen de plantillas

Cada uno de estos entornos se gestiona mediante Astra Control de NetApp, con volúmenes persistentes que se almacenan actualmente en un sistema de almacenamiento ONTAP de NetApp con un back-end NFS proporcionado por Astra Trident de NetApp.

Validación de casos de uso

  1. Clone el kit de herramientas de Ansible que proporciona el equipo de ingeniería de soluciones de NetApp, que incluye el rol de clonado y el libro de estrategia de actualización de aplicaciones.

    [netapp-user@rhel7 ~]$ git clone https://github.com/NetApp-Automation/na_astra_control_suite.git
    [netapp-user@rhel7 ~]$ cd na_astra_control_suite
  2. Editar vars/clone_vars.yml Y rellene los valores globales que se ajusten a su entorno de 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 Los valores del entorno global que debe rellenar están disponibles en el icono de perfil de usuario de NetApp Astra Control, en el menú API Access.
    Imagen de acceso API
  3. Una vez completadas las variables globales, puede elegir los valores de la aplicación específica que desea clonar. Para clonar el entorno devtools a un entorno personal llamado alan-devtools, haría lo siguiente:

    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 Para aprovechar la tecnología FlexClone de NetApp en el proceso de clonación, src-cluster y.. dest-cluster debe ser igual.
  4. Ahora puede ejecutar el libro de aplicaciones para clonar la aplicación.

    [netapp-user@rhel7 na_astra_control_suite]$ ansible-playbook -K clone_app_playbook.yml]
    Nota el libro de aplicaciones como escrito debe ser ejecutado por el usuario raíz o por alguien que pueda escalar a través del proceso sudo pasando el argumento "-K".
  5. Una vez que el libro de aplicaciones complete su ejecución, la aplicación clonada aparecerá como disponible en la consola del Centro de control de Astra.

    Imagen de la aplicación clonada
  6. A continuación, un usuario puede iniciar sesión en el entorno Kubernetes en el que se ha puesto en marcha la aplicación, comprobar que la aplicación está expuesta con una nueva dirección IP e iniciar el trabajo de desarrollo.

Para ver una demostración de este caso práctico y un ejemplo de cómo actualizar una aplicación, consulte "aquí".