Automatizar la administración de soluciones

Completado

En este módulo ha aprendido cómo las soluciones pueden ser muy útiles para realizar un seguimiento de las piezas de la aplicación y cambiarlas manualmente de un lugar a otro. Ahora vamos a profundizar en cómo la automatización puede fortalecer aún más la administración de la aplicación a través de algo llamado administración del ciclo de vida de las aplicaciones (ALM). ALM no sirve solo para crear la aplicación; abarca todo, desde el establecimiento de reglas (como requisitos) hasta el desarrollo y el mantenimiento fluido de todos los aspectos. Las soluciones son elementos clave en la estrategia de ALM, junto con otras herramientas de gran utilidad como Azure DevOps o GitHub.

En general, un arquitecto de soluciones trazará el plan de ALM en su proyecto y alguien con conocimientos de DevOps configurará la automatización. Como miembro del equipo, su trabajo es mantenerse implicado en el proceso utilizando la herramienta elegida para administrar las tareas y supervisar la aplicación y los cambios de flujo utilizando soluciones. Cuando termine su parte, la automatización de ALM se hará cargo. Iniciará una serie de acciones que llevan automáticamente los cambios del desarrollo a las pruebas y, posteriormente, a producción. Es posible que cada paso requiera algunas aprobaciones para garantizar que todo va según lo previsto. Imagine el ciclo de vida de la aplicación como un ciclo interminable de desarrollo de aplicaciones que incluya planificación, creación, prueba, implementación, ejecución, supervisión y aprendizaje de lo que descubre a lo largo del recorrido.

Diagrama del proceso de desarrollo del ciclo de vida de la aplicación.

Si bien todas las acciones se pueden realizar manualmente, la automatización garantiza que se hagan de manera uniforme cada vez que se realicen. También pueden ocurrir si, por ejemplo, la persona que realiza las acciones manuales está enferma. Las herramientas centradas en DevOps como Azure DevOps o GitHub proporcionan la automatización, pero también proporcionan seguimiento de elementos de trabajo y control de código fuente.

Soluciones y control de código fuente

El control de código fuente, que se puede encontrar en herramientas como Azure DevOps y GitHub, es como un súper rastreador de versiones de todas las partes del proyecto. Imagine que está trabajando en una Power App y que realiza cambios. Cada vez que haga eso será como crear una nueva versión del proyecto. También puede utilizar 'elementos de trabajo' para anotar los cambios que ha realizado, y estas notas se pueden vincular a la versión. Esto ayuda a su equipo a mantener un registro de cuándo se han realizado cambios y permite deshacer cualquier cambio que haya ocasionado problemas. Mientras su equipo está ocupado creando una versión más reciente, puede seguir utilizando la versión actual.

El control de código fuente es muy importante en la administración del ciclo de vida de las aplicaciones (ALM), ya que es la fuente definitiva de verdad del proyecto. Aunque se produzca un bloqueo en su entorno de desarrollo, no se preocupe. Puede reconstruirlo utilizando la información almacenada en el control de código fuente. En cierto sentido, el control de código fuente hace que los entornos de desarrollo sean reemplazables. Cuando se envía algo a prueba o producción, se está enviando lo que está en control de código fuente, no simplemente algo aleatorio del espacio de desarrollo.

Sin embargo, esta es la calve: cuando exporta una solución desde su entorno, es como si empaquetara todo en un gran archivo. Si simplemente sitúa ese archivo en el control de código fuente, solo podrá indicar que algo ha cambiado, pero no qué ha cambiado exactamente en cada parte. Por tanto, para que resulte más útil, agregamos un paso al proceso de automatización. Este paso toma la solución desde el espacio de desarrollo, la descomprime (como abrir una maleta llena) y crea archivos separados para cada parte. Estos archivos separados se colocan a continuación en control de código fuente. De este modo podrá realizar un seguimiento detallado de todos los cambios. Además, abre la posibilidad de disponer de múltiples entornos de desarrollo que sigan los cambios en el control de código fuente, lo que reduce la posibilidad de que un cambio eche a perder otro.

Automatización con herramientas DevOps

La automatización es importante porque aporta coherencia a lo que de otro modo sería un proceso manual. Una vez creadas, las automatizaciones pueden ejecutarse a petición, según una programación o en función de un evento de registro. Si bien hay muchas herramientas, puede usar para implementar la automatización de Azure Pipelines y GitHub Actions; ambas incluyen compatibilidad con las tareas y acciones de Power Platform de Microsoft.

¿Qué puede automatizar?

Existe una amplia gama de lo que se puede automatizar, ya que la automatización solo ejecuta tareas o acciones. Piense en ello como algo similar a los flujos de Power Automate, pero más específico para trabajar con la administración y las implementaciones de aplicaciones. A continuación, se muestran algunas de las automatizaciones comunes que se pueden encontrar en proyectos de Power Platform:

  • Crear un nuevo entorno de desarrollo e instalar soluciones desde el control de código fuente

  • Tomar cambios del entorno de desarrollo y actualizar el control de código fuente

  • Ejecutar el comprobador de soluciones para identificar problemas de calidad

  • Aprovisionar y desaprovisionar entornos

  • Ejecutar pruebas automatizadas que incluyen pruebas de Power Apps Test Studio

  • Crear soluciones administradas desde el control de código fuente para la implementación en entornos posteriores

  • Implementar en entornos posteriores como los de prueba y producción

La automatización se adapta a los requisitos de cada proyecto, pero comúnmente tiene automatizaciones de inicio, compilación y lanzamiento.

Objeto visual para mostrar las fases de implementación, creación y lanzamiento.

Cuando trabaje en un proyecto que usa la automatización, tenga en cuenta los procesos generales que se llevan a cabo. Sin embargo, la creación de la automatización suele realizarse mediante un recurso centrado en DevOps.

Power Platform Build Tools

Microsoft Power Platform Build Tools son como una caja de herramientas diseñada para administrar aplicaciones en Microsoft Power Platform. Estas herramientas son un conjunto de acciones útiles que evitan tener que buscar herramientas especiales y escribir complicados scripts para gestionar distintas tareas en el ciclo de vida de la aplicación. Puede utilizarlas una a una para realizar tareas específicas, como llevar una aplicación a un entorno nuevo, o puede utilizarlas juntas en una secuencia para realizar las tareas automáticamente.

Ahora, en función de si está utilizando Azure DevOps o acciones de GitHub para automatizar el trabajo, la terminología puede cambiar un poco. En Azure DevOps, llamamos a estas acciones 'tareas', mientras que en acciones de GitHub las llamamos 'acciones'.

Las siguientes son algunas de las operaciones más comunes:

  • Comprobador de Power Platform: ejecuta un análisis estático en su solución y le permite detectar problemas con anticipación al agregarla a la automatización.

  • Exportar solución: exporta una solución como no administrada, administrada, o ambas cosas, desde un entorno.

  • Importar solución: importa una solución a un entorno.

  • Desempaquetar solución: divide un archivo de solución comprimido en archivos individuales para cada componente con el fin de permitir su verificación en el control de código fuente.

  • Solución de paquete: empaqueta una solución representada en el control de código fuente en un archivo solution.zip que se puede importar a otro entorno.

  • Establecer la versión de la solución: permite actualizar el número de versión de la automatización e implementar una estrategia de control de versiones consistente.

  • Crear, eliminar y copiar entornos: permite la automatización de la administración del entorno como parte de las automatizaciones.

¿Por qué molestarse con la automatización? Es una forma inteligente de asegurarse de que el proceso de creación de aplicaciones es coherente y fiable. Si su equipo todavía hace todo manualmente, le conviene explorar algunas automatizaciones. De este modo su trabajo no solo será más coherente, sino que también le ayudará a crear mejores aplicaciones e implementarlas con mayor calidad.