Docs Menu
Docs Home
/ /
Desarrollar e implementar aplicaciones

Configurar una canalización de CI/CD

Muchos desarrolladores utilizan canales de integración, entrega e implementación continuos Para probar y publicar automáticamente sus aplicaciones cada vez que realizan cambios. Esto es más común y útil para aplicaciones grandes donde varias personas trabajan en el código base en paralelo mediante un sistema de control de versiones compartido como Git.

Esta guía abarca las etapas generales comunes a la mayoría de los pipelines de CI/CD y describe qué puede hacer en cada etapa. Además, incluye una lista de tareas y acciones comunes que puede realizar en sus pipelines para configurar y probar sus aplicaciones de Atlas App Services.

Tip

Vea un ejemplo real con GitHub Actions

Si desea ver un ejemplo de canalización de CI/CD que administra pruebas, implementaciones y otras tareas para una aplicación real, consulte el artículo Cómo crear canalizaciones de CI/CD para aplicaciones de App Services usando acciones de GitHub en MongoDB Developer Hub.

A un alto nivel, la mayoría de los oleoductos y tuberías comparten un patrón común: pasar por múltiples etapas, cada una de las cuales aborda diferentes cuestiones.

La etapa de desarrollo es el primer paso para crear nuevas funciones y corregir errores en una aplicación. En esta etapa, se trabaja con los archivos de configuración y el código fuente de la aplicación para implementar los cambios deseados.

Para desarrollar nuevas funciones para una aplicación existente:

  1. Bifurque la aplicación principal e implemente una nueva copia de desarrollo. Esta instancia tendrá un ID de aplicación diferente al de la aplicación de producción. También puede usar plantillas de valores de entorno para usar fuentes de datos de desarrollo y otros servicios no vinculados a producción.

  2. Desarrolla tu aplicación. Esto podría implicar actualizar o agregar una pantalla de aplicación cliente, agregar un nuevo activador de base de datos o cualquier otra funcionalidad de aplicación. Puedes usar modo de desarrollo si necesitas hacer cambios en tu esquema de objeto de Realm sincronizado.

  1. Ejecute pruebas automatizadas localmente para garantizar que su código no introduzca nuevos errores. Las pruebas aprobadas localmente no garantizan que su aplicación esté libre de errores de integración, pero aumentan la confianza de que sus cambios no incluyan regresiones ni comportamientos inesperados.

La etapa de staging, también conocida como QA (Control de Calidad), Pruebas o Preproducción, simula los cambios de desarrollo en un entorno lo más similar posible a la producción. Esto proporciona una versión utilizable de la aplicación para su revisión y puede ayudar a detectar errores de integración con servicios en vivo sin afectar los datos de producción.

Los detalles de la implementación de su entorno de pruebas dependen de las necesidades de su aplicación. Sin embargo, puede usar el siguiente procedimiento general para configurarla:

  1. Configure su entorno de pruebas. Utilice servicios y fuentes de datos independientes, que no sean de producción, con configuraciones que reflejen la producción lo más fielmente posible. Por ejemplo, podría usar un clúster Atlas llamado staging que, de lo contrario, tenga la misma configuración que su clúster production. Según su caso de uso, puede tener una aplicación consistente que reutilice para todas las compilaciones de prueba o puede crear una nueva aplicación para cada compilación de prueba.

  2. Crea o usa una compilación de prueba existente. Puedes crear automáticamente una compilación de prueba como parte de tu proceso de CI/CD, por ejemplo, al crear una nueva solicitud de incorporación de cambios. Puedes usar una nueva aplicación para cada compilación de prueba o reutilizar un entorno prediseñado que compartas con otras compilaciones.

  3. Verifique que su aplicación se comporte como se espera. Esto puede implicar ejecutar un conjunto de pruebas automatizadas en su entorno de pruebas, verificar manualmente el comportamiento u obtener la aprobación mediante una prueba de aceptación del usuario.

La etapa de producción es el último paso de implementación, donde la aplicación modificada se implementa en el entorno de producción. Idealmente, en esta etapa ya ha probado los cambios localmente y en el entorno de pruebas para confirmar que es seguro implementarlos. Puede implementar en producción manualmente o automáticamente como parte de su flujo de trabajo de CI/CD actualizando su aplicación de producción.

Esta sección describe las tareas comunes que realizará en su pipeline de CI/CD. Es posible que no siempre realice todas estas tareas según su caso de uso y la etapa del pipeline, pero en general, la mayoría de los pipelines las realizarán todas al menos una vez.

La configuración y el código de tu aplicación deberían ser similares en las distintas etapas de desarrollo. Sin embargo, deberás cambiar el valor de ciertas opciones de configuración según el entorno.

Determine en qué etapa se encuentra la compilación y configure los valores adecuados. Por ejemplo, puede configurar la aplicación con el ID de una aplicación nueva en la etapa de Desarrollo o usar el ID de la aplicación de producción en la etapa de Producción.

# Use the production App ID for the main branch
export REALM_APP_ID="myapp-abcde"
# Use a staging App ID for the QA branch
export REALM_APP_ID="myapp-staging-fghij"
# Use a new App ID for development branches - you'll need to create the app first!
export REALM_APP_ID="myapp-dev-zyxwv"

Tip

Encuentra el ID de tu aplicación

Es posible que no siempre puedas codificar el ID de tu aplicación. Puedes buscar un ID de aplicación específico con la CLI de App Services. Para ver un ejemplo, consulta "Crear una aplicación".

La CLI de App Services es la forma más sencilla de crear, configurar y administrar aplicaciones Atlas mediante programación. Debe instalar y usar la versión más reciente en sus scripts de implementación.

La CLI de App Services está disponible npm en. Para instalarla en su sistema, asegúrese de tener instalado Node.js y ejecute el siguiente comando en su shell:

npm install -g atlas-app-services-cli

También necesitará un par de claves API pública/privada de MongoDB Atlas para autenticarse y usar la CLI. Para obtener más información y una guía sobre cómo obtener una clave API, consulte Claves API programáticas.

Para iniciar sesión, guarde sus claves API en una nueva configuración de perfil con nombre y luego inicie sesión con ese perfil:

~/.config/appservices/.yaml<Profile Name>
<Profile Name>:
public_api_key: "<MongoDB Atlas Public API Key>"
private_api_key: "<MongoDB Atlas Private API Key>"
atlas_base_url: "https://cloud.mongodb.com"
realm_base_url: "https://services.cloud.mongodb.com"
telemetry_mode: ""
appservices login --profile="<Profile Name>"

Tip

Asegúrate de usar el indicador --profile en todos tus comandos; de lo contrario, la CLI de App Services no reconocerá que has iniciado sesión.

Puedes usar la CLI de App Services para crear nuevas aplicaciones y usarlas en desarrollo y pruebas. Si tu pipeline se encuentra en la fase de desarrollo o de prueba, deberías implementar y probar los cambios con una aplicación distinta a la de producción.

Para utilizar una nueva aplicación para su rama de desarrollo o de prueba:

  1. Crear una nueva aplicación

    Envíe una nueva aplicación según su rama de los archivos de configuración de la aplicación:

    cd path/to/realmApp
    appservices push -y --project="<MongoDB Atlas Project ID>" # e.g. --project="609ea544934fe445460219a2"
  2. Guardar el ID de la aplicación

    La nueva aplicación tiene un valor de ID de aplicación único que deberá identificar más adelante en su canalización y en su aplicación cliente. Debe guardar el valor en una variable de entorno, un archivo u otra ubicación.

    # Save to an environment variable
    output=$(appservices app describe)
    app_id=$(echo $output | sed 's/^.*client_app_id": "\([^"]*\).*/\1/')
    export REALM_APP_ID=app_id
    # Save to a file
    echo $REALM_APP_ID > ./clients/ios/realm-app-id.txt

Puedes usar la CLI de App Services para actualizar una aplicación existente, como una aplicación de prueba compartida o tu implementación de producción. La aplicación ya existe, por lo que deberías poder consultar su ID.

Para actualizar una aplicación existente, especifique su ID de aplicación en el indicador --remote:

appservices push --remote=$REALM_APP_ID -y

Tu aplicación debe incluir conjuntos de pruebas unitarias y de integración automatizadas que puedas ejecutar para verificar que todo funciona correctamente. Los detalles de tu configuración de pruebas variarán según la aplicación, pero es posible que necesites ejecutar pruebas en múltiples plataformas utilizando diversos simuladores.

Si tiene pruebas de integración, puede consultar versiones anteriores y ejecutar sus pruebas de integración contra la versión actual de la aplicación para garantizar la compatibilidad con versiones anteriores.

Al final de una etapa o canalización de CI/CD, es posible que desee limpiar los recursos creados específicamente para esa prueba. Por ejemplo, si crea una nueva aplicación de desarrollo o de prueba, puede eliminar las aplicaciones y las bases de datos asociadas una vez fusionados los cambios. Por otro lado, no conviene limpiar su aplicación de producción ni una aplicación de prueba persistente, si la utiliza.

Antes de limpiar, considere qué recursos podrían ser útiles en el futuro. Por ejemplo, podría optar por omitir la eliminación de aplicaciones y sus bases de datos si las pruebas fallan. De esta manera, podrá investigar el problema manualmente y encontrar cualquier configuración o dato de la aplicación que haya causado el fallo.

Volver

Configurar un entorno de aplicación

En esta página