Implementar el código

Implementación de código con Cloud Manager

NOTA

Para obtener información sobre la implementación de código para Cloud Manager en AEM as a Cloud Service, consulte here.

Una vez configurada la canalización de producción (repositorio, entorno y entorno de prueba), estará listo para implementar el código.

  1. Haga clic en Implementación desde Cloud Manager para iniciar el proceso de implementación.

  2. La variable Ejecución de canalización se abre.

    Haga clic en Generar para iniciar el proceso.

  3. El proceso de compilación completa implementa el código.

    En el proceso de compilación participan las siguientes etapas:

    1. Implementación de fase
    2. Prueba de prueba
    3. Implementación de producción
    NOTA

    Además, puede revisar los pasos de varios procesos de implementación consultando los registros o revisando los resultados de los criterios de prueba.

    La implementación por fases incluye los siguientes pasos:

    • Validación: Este paso garantiza que la canalización esté configurada para utilizar los recursos disponibles actualmente, por ejemplo, que la rama configurada exista, los entornos estén disponibles.
    • Prueba de compilación y unidad: Este paso ejecuta un proceso de compilación en contenedores. Consulte Explicación del entorno de compilación para obtener más información sobre el entorno de compilación.
    • Escaneo de código: Este paso evalúa la calidad del código de la aplicación. Consulte Comprender los resultados de la prueba para obtener más información sobre el proceso de prueba.
    • Implementar en fase

    La variable Prueba de prueba, incluye los siguientes pasos:

    • Pruebas de seguridad: Este paso evalúa el impacto de seguridad del código de la aplicación en el entorno AEM. Consulte Comprender los resultados de la prueba para obtener más información sobre el proceso de prueba.
    • Pruebas de rendimiento: Este paso evalúa el rendimiento del código de la aplicación. Consulte Comprender los resultados de la prueba para obtener más información sobre el proceso de prueba.

    La variable Implementación de producción, incluye los siguientes pasos:

    • Solicitud de aprobación (si está activado)
    • Programar implementación de producción (si está activado)
    • Compatibilidad con CSE (si está activado)
    • Implementar en producción

    NOTA

    La variable Programar implementación de producción se habilita al configurar la canalización.

    Con esta opción, puede programar la implementación de producción o hacer clic en Ahora para ejecutar la implementación de producción inmediatamente.

    La fecha y la hora programadas se especifican en términos de la zona horaria del usuario.

    Haga clic en Confirmar para comprobar la configuración.

    Una vez que confirme la programación de implementación, se completará la implementación del código.

    Se muestra la siguiente pantalla cuando Ahora está seleccionada en el paso anterior.

Tiempos de espera

Los siguientes pasos agotarán el tiempo de espera si se deja esperando los comentarios del usuario:

Etapa Tiempo de espera
Prueba de calidad del código 14 días
Pruebas de seguridad 14 días
Pruebas de rendimiento 14 días
Solicitud de aprobación 14 días
Programar implementación de producción 14 días
Compatibilidad con CSE 14 días

Proceso de implementación

En la siguiente sección se describe cómo se implementan los paquetes AEM y Dispatcher en la fase de fase y en la fase de producción.

Cloud Manager carga todos los archivos target/*.zip producidos por el proceso de compilación en una ubicación de almacenamiento. Estos artefactos se recuperan de esta ubicación durante las fases de implementación de la canalización.

Cuando Cloud Manager se implementa en topologías que no son de producción, el objetivo es completar la implementación lo antes posible y, por lo tanto, los artefactos se implementan en todos los nodos de forma simultánea de la siguiente manera:

  1. Cloud Manager determina si cada artefacto es un paquete AEM o dispatcher.

  2. Cloud Manager elimina todos los distribuidores del equilibrador de carga para aislar el entorno durante la implementación.

    A menos que se configure lo contrario, puede omitir los cambios del equilibrador de carga en las implementaciones de desarrollo y ensayo, es decir, separar y adjuntar pasos en ambas canalizaciones que no sean de producción, para entornos de desarrollo y para la canalización de producción, para entornos de ensayo.

    NOTA

    Se espera que esta función la usen principalmente los clientes 1-1-1.

  3. Cada artefacto de AEM se implementa en cada instancia de AEM a través de las API del administrador de paquetes, con dependencias de paquete que determinan el orden de implementación.

    Para obtener más información sobre cómo puede utilizar paquetes para instalar nuevas funciones, transferir contenido entre instancias y realizar copias de seguridad del contenido del repositorio, consulte Cómo trabajar con paquetes.

    NOTA

    Todos los artefactos AEM se implementan tanto en el autor como en los editores. Los modos de ejecución deben aprovecharse cuando se requieran configuraciones específicas de nodos. Para obtener más información sobre cómo los modos de ejecución permiten ajustar la instancia de AEM para un fin específico, consulte Modos de ejecución.

  4. El artefacto de Dispatcher se implementa en cada Dispatcher de la siguiente manera:

    1. Las configuraciones actuales se respaldan y copian en una ubicación temporal
    2. Todas las configuraciones se eliminan excepto los archivos inmutables. Consulte Administrar las configuraciones de Dispatcher para obtener más información. Esto borra los directorios para garantizar que no queden archivos huérfanos.
    3. El artefacto se extrae del httpd directorio. Los archivos inmutables no se sobrescriben. Los cambios que realice en los archivos inmutables del repositorio de Git se ignorarán en el momento de la implementación. Estos archivos son fundamentales para el marco de Dispatcher de AMS y no se pueden cambiar.
    4. Apache realiza una prueba de configuración. Si no se encuentran errores, el servicio se vuelve a cargar. Si se produce un error, las configuraciones se restauran desde la copia de seguridad, el servicio se vuelve a cargar y el error se devuelve a Cloud Manager.
    5. Cada ruta especificada en la configuración de la canalización se invalida o se vacía de la caché de Dispatcher.
    NOTA

    Cloud Manager espera que el artefacto de Dispatcher contenga el conjunto completo de archivos. Todos los archivos de configuración de Dispatcher deben estar presentes en el repositorio de Git. Si faltan archivos o carpetas, se producirá un error de implementación.

  5. Después de la implementación correcta de todos los paquetes de AEM y Dispatcher en todos los nodos, los distribuidores se vuelven a añadir al equilibrador de carga y la implementación se completa.

    NOTA

    Puede omitir los cambios del equilibrador de carga en las implementaciones de desarrollo y fase, es decir, separar y adjuntar pasos en ambas canalizaciones que no sean de producción, para entornos de desarrollador y para la canalización de producción, para entornos de ensayo.

Implementación en fase de producción

El proceso de implementación en topologías de producción difiere ligeramente para minimizar el impacto en los visitantes AEM sitio.

Las implementaciones de producción generalmente siguen los mismos pasos que se describen arriba, pero de forma gradual:

  1. Implemente AEM paquetes para crear.
  2. Desasocie Dispatcher1 del equilibrador de carga.
  3. Implemente AEM paquetes para publicar1 y el paquete de Dispatcher para dispatcher1 en paralelo y vacíe la caché de Dispatcher.
  4. Vuelva a colocar Dispatcher1 en el equilibrador de carga.
  5. Una vez que Dispatcher1 vuelva a estar en servicio, separe Dispatcher2 del equilibrador de carga.
  6. Implemente AEM paquetes para publicar2 y el paquete de Dispatcher para dispatcher2 en paralelo y vacíe la caché de Dispatcher.
  7. Vuelva a colocar Dispatcher2 en el equilibrador de carga.
    Este proceso continúa hasta que la implementación haya llegado a todos los editores y distribuidores de la topología.

Modo de ejecución de canalización de emergencia

En situaciones críticas, es posible que los clientes de Adobe Managed Services necesiten implementar cambios de código en sus entornos de ensayo y producción sin esperar a que se ejecute un ciclo de prueba completo de Cloud Manager.

Para solucionar estas situaciones, la canalización de producción de Cloud Manager se puede ejecutar en una emergencia en el menú contextual. Cuando se utiliza este modo, no se ejecutan los pasos de prueba de seguridad y rendimiento; todos los demás pasos, incluidos los pasos de aprobación configurados, se ejecutan como en el modo de ejecución normal de la canalización.

NOTA

Los ingenieros de éxito del cliente activan la capacidad Modo de ejecución de canalización de emergencia de forma programática.

Uso del modo de ejecución de canalización de emergencia

Al iniciar la ejecución de una canalización de producción, si esta función se ha activado, puede iniciar la ejecución en modo normal o de emergencia desde el cuadro de diálogo, como se muestra en la figura siguiente.

Además, al ver la página de detalles de ejecución de la canalización para una ejecución ejecutada en modo de emergencia, las rutas de exploración en la parte superior de la pantalla muestran un indicador de que el modo de emergencia se ha utilizado para esta ejecución en particular.

La creación de una ejecución de canalización en este modo de emergencia también se puede realizar mediante la API o CLI de Cloud Manager. Para iniciar una ejecución en modo de emergencia, envíe una solicitud de PUT al extremo de ejecución de la canalización con el parámetro de consulta ?pipelineExecutionMode=EMERGENCY o, cuando utilice la CLI:

$ aio cloudmanager:pipeline:create-execution PIPELINE_ID --emergency
IMPORTANTE

Uso --emergency es posible que el indicador deba actualizarse a la última aio-cli-plugin-cloudmanager versión.

Volver a ejecutar una implementación de producción

La reejecución del paso de implementación de producción se admite en ejecuciones en las que se haya completado el paso de implementación de producción. El tipo de finalización no es importante: la implementación podría ser exitosa (solo para programas de AMS), cancelada o fallida. Dicho esto, se espera que el caso de uso principal sean los casos en los que el paso de implementación de producción haya fallado por motivos transitorios. La reejecución crea una nueva ejecución utilizando la misma canalización. Esta nueva ejecución consta de tres pasos:

  1. El paso validate : esto es esencialmente la misma validación que se produce durante la ejecución normal de una canalización.
  2. El paso de compilación : en el contexto de una nueva ejecución, el paso de compilación es copiar artefactos, no ejecutar realmente un nuevo proceso de compilación.
  3. El paso de implementación de producción : utiliza la misma configuración y opciones que el paso de implementación de producción en una ejecución de canalización normal.

El paso de compilación puede tener una etiqueta ligeramente diferente en la interfaz de usuario para reflejar que está copiando artefactos, no reconstruyendo.

Restricciones:

  • La ejecución del paso de implementación de producción solo estará disponible en la última ejecución.
  • La reejecución no está disponible para ejecuciones de reversión.
  • Si la última ejecución es una ejecución de reversión, no es posible la reejecución.
  • Si la última ejecución es una ejecución de actualización push, no es posible la reejecución.
  • Si la última ejecución ha fallado en cualquier momento antes del paso de implementación de producción, la reejecución no es posible.

Volver a ejecutar la API

Identificación de una ejecución de nueva ejecución

Para identificar si una ejecución es una ejecución de nueva ejecución, se puede examinar el campo de déclencheur. Su valor será RE_EXECUTE.

Activación de una nueva ejecución

Para déclencheur de una nueva ejecución, se debe realizar una solicitud de PUT al vínculo HAL http://ns.adobe.com/adobecloud/rel/pipeline/reExecute en el estado del paso de implementación de producción. Si este vínculo está presente, la ejecución se puede reiniciar desde ese paso. Si está ausente, la ejecución no se puede reiniciar desde ese paso. En la versión inicial, este vínculo solo estará presente en el paso de implementación de producción, pero las versiones futuras pueden admitir el inicio de la canalización desde otros pasos. Ejemplo:

 {
  "_links": {
    "http://ns.adobe.com/adobecloud/rel/pipeline/logs": {
      "href": "/api/program/4/pipeline/1/execution/953671/phase/1575676/step/2983530/logs",
      "templated": false
    },
    "http://ns.adobe.com/adobecloud/rel/pipeline/reExecute": {
      "href": "/api/program/4/pipeline/1/execution?stepId=2983530",
      "templated": false
    },
    "http://ns.adobe.com/adobecloud/rel/pipeline/metrics": {
      "href": "/api/program/4/pipeline/1/execution/953671/phase/1575676/step/2983530/metrics",
      "templated": false
    },
    "self": {
      "href": "/api/program/4/pipeline/1/execution/953671/phase/1575676/step/2983530",
      "templated": false
    }
  },
  "id": "6187842",
  "stepId": "2983530",
  "phaseId": "1575676",
  "action": "deploy",
  "environment": "weretail-global-b75-prod",
  "environmentType": "prod",
  "environmentId": "59254",
  "startedAt": "2022-01-20T14:47:41.247+0000",
  "finishedAt": "2022-01-20T15:06:19.885+0000",
  "updatedAt": "2022-01-20T15:06:20.803+0000",
  "details": {
  },
  "status": "FINISHED"

La sintaxis del vínculo HAL href no está previsto que se utilice como punto de referencia. El valor real siempre debe leerse desde el vínculo HAL y no generarse.

Envío de un PUT la solicitud a este extremo dará como resultado un 201 Si la respuesta es correcta, y el cuerpo de respuesta será la representación de la nueva ejecución. Esto es similar a iniciar una ejecución normal a través de la API.

En esta página