Aprender sobre Heroku Flow y sus funciones
Objetivos de aprendizaje
Después de completar esta unidad, podrá:
- Describir un flujo de trabajo de entrega continua común con Heroku Flow.
- Nombrar las funciones de Heroku Flow y describir el propósito de cada una.
¿Qué es Heroku Flow?
Heroku Flow es un flujo de trabajo estructurado fácil de utilizar para la entrega continua en la plataforma Heroku. Reúne la integración de Canalizaciones de Heroku, Aplicaciones de revisión, Release Phase, Heroku CI, GitHub y Slack para un flujo de trabajo de código a producción visual sencillo.
Un flujo de trabajo de entrega continua común de Heroku tiene una apariencia parecida a esta:
- Un desarrollador o miembro del equipo crea una Canalización de Heroku y empieza a agregar aplicaciones.
- Un desarrollador crea una solicitud de incorporación de cambios para realizar un cambio en la base del código de una aplicación.
- Heroku crea automáticamente una aplicación de revisión para la incorporación de cambios, lo que permite a los desarrolladores probar el cambio.
- Cuando el cambio está listo, se combina en la bifurcación
main
(principal) del código. - La bifurcación
main
(principal) se implementa automáticamente en una aplicación de ensayo para realizar más pruebas. - Si Heroku CI está configurado, se realizan pruebas para comprobar si hay problemas con los cambios en el código. Si Release Phase está configurado, se realizan sus tareas antes de la implementación del código. Un ejemplo de una tarea de Release Phase es gestionar la migración de una base de datos.
- Cuando todo está listo, un desarrollador promueve la aplicación de organización a producción, donde el cambio está disponible para los usuarios finales.
- Si la canalización está integrada con Slack, se publica una notificación en un canal específico cuando se abre una solicitud de incorporación de cambios y el código se combina con
main
(principal). Estas publicaciones actualizan al equipo con el estado y los resultados de las pruebas de CI y las tareas de Release Phase. Los miembros del equipo con los permisos adecuados también pueden implementar aplicaciones en el entorno de organización o promoverlas al entorno de producción desde el canal de Slack.
Es el momento de conocer las funciones de Heroku Flow y comprender el propósito de cada una de ellas.
Canalizaciones de Heroku
Una canalización es un grupo de aplicaciones de Heroku que comparten la misma base de código. Cada aplicación de una canalización representa uno de estos pasos en un flujo de trabajo de entrega continua: revisión, desarrollo, organización y producción.
Integración de GitHub
La conexión de una canalización de Heroku con un repositorio de GitHub hace posible implementar de forma manual o automática una bifurcación en cada distribución de GitHub. Para cada implementación, puede ver la diferencia entre la versión actual y la confirmación anterior en la ficha Activity (Actividad) de la aplicación en el Tablero de Heroku. Si configuró su repositorio de GitHub para utilizar Heroku CI o un servidor de integración continua externo (CI), puede configurar Heroku para implementar automáticamente solo una bifurcación después de que CI pase una confirmación en particular.
Aplicaciones de revisión
Las aplicaciones de revisión le permiten proponer, debatir y decidir si se combinan cambios en su base de código. Para las aplicaciones de Heroku conectadas con GitHub, Heroku puede lanzar de forma manual o automática una aplicación de prueba temporal en una URL exclusiva para cada solicitud de incorporación de cambios (PR) abierta. La aplicación temporal se actualiza automáticamente en cada confirmación; por lo tanto, en vez de adivinar qué hace el código, los revisores pueden probar realmente los cambios en un navegador.
Release Phase
Release Phase hace posible ejecutar tareas antes de que se implemente una versión en producción, eliminando los periodos de mantenimiento y reduciendo el riesgo de las implementaciones. Utilice Release Phase para migrar una base de datos, cargar activos en una red de entrega de contenido (CDN), invalidar una caché o ejecutar cualquier otra tarea que necesite su aplicación para estar lista para producción. Si falla una tarea de Release Phase, la nueva versión no se implementa, y la versión de producción vigente queda sin cambios.
Heroku CI
Heroku CI es un ejecutor de pruebas de baja configuración que se integra con las canalizaciones de Heroku. Heroku CI ejecuta sus secuencias de comandos de prueba con un tipo de cola cero para obtener resultados más rápido, empleando aplicaciones desechables que tienen paridad con sus entornos de organización y producción. Acceda a los resultados de las pruebas desde Heroku o GitHub, automatice implementaciones de forma condicional sobre los resultados de CI y aproveche una interfaz completamente visual para dar cobertura a la función de CI en una entrega continua basada en equipos.
Heroku ChatOps
Heroku ChatOps utiliza el poder de las canalizaciones de Heroku para aportar un flujo de trabajo de implementación colaborativo a Slack. Permite a los desarrolladores implementar en el entorno de organización o promover al entorno de producción desde Slack. Con Heroku ChatOps, los equipos pueden realizar un seguimiento de todos los cambios de código dentro de sus canales de Slack. Las notificaciones de solicitudes de incorporación de cambios, las combinaciones y los resultados de compilación de CI se muestran en Slack. No es necesario el cambio de contexto para ver resultados de compilación o comprobar si la promoción al entorno de producción se realizó correctamente.
Si bien esta unidad le brinda una descripción general de las funciones de Heroku Flow, aprenderá más sobre algunas de ellas en la próxima unidad.