Exploración del ciclo de vida de la aplicación de DevOps
Aunque las prácticas de DevOps tienen un amplio ámbito, su objetivo principal es optimizar la administración del ciclo de vida de las aplicaciones. En el ejemplo ficticio de la empresa, la migración de una aplicación existente a una nueva aplicación con características actualizadas requiere volver a revisar cada fase del ciclo de vida de la aplicación. Por lo tanto, obtenga información sobre cómo los principios de DevOps pueden modificar significativamente cómo se implementa cada fase, desde el planeamiento, hasta el desarrollo y la entrega, hasta las operaciones. En esta unidad, realice un recorrido por una visión general de alto nivel de estas implementaciones.
Fases del ciclo de vida de la aplicación
Las fases del ciclo de vida de las aplicaciones incluyen planeamiento, desarrollo, entrega y operaciones.
Planificación
La fase de planificación implica revisar las necesidades de los clientes para describir y definir características y funcionalidades del software que se van a desarrollar. Este software puede oscilar entre microservicios individuales y carteras que constan de varios productos. El resultado define los requisitos de software, el ámbito y los hitos para el desarrollo e implementación de la aplicación. Desde la perspectiva de DevOps, las principales consideraciones durante esta fase incluyen agilidad, enfoque centrado en el cliente, alineación y visibilidad.
Desarrollo
La fase de desarrollo abarca todos los aspectos del desarrollo de código de aplicación. Estos aspectos incluyen la programación, las pruebas y las revisiones de código. Para cumplir con las prácticas de DevOps, el código debe residir en un sistema de control de código fuente, lo que facilita la colaboración y admite el control de versiones. Una versión de trabajo del código se usa para compilar artefactos adecuados para la entrega posterior. Estos artefactos pueden adoptar la forma de archivos binarios ejecutables, bibliotecas de software, imágenes de contenedor, paquetes de instalador, archivos de configuración, scripts de implementación o incluso documentación.
Los cambios en esta fase deben aplicarse en pequeños incrementos a través de pruebas automatizadas y compilación, denominada integración continua (CI), que acelera el proceso de desarrollo y mejora la agilidad.
Entrega
La entrega es el proceso de implementación de los artefactos creados durante la fase de desarrollo en entornos de producción de forma coherente y confiable. Aunque el objetivo final de esta fase es la automatización completa a través de la entrega continua (CD), algunas organizaciones, especialmente en las primeras fases de su adopción de DevOps, pueden optar por implementar aprobaciones manuales o comprobaciones. A medida que crece la confianza en las prácticas de DevOps, normalmente es posible automatizar completamente estas comprobaciones. Por ejemplo, una comprobación desatendida correcta de una implementación en un entorno de ensayo podría servir como base para realizar la transición al entorno de producción. La automatización ayuda a que los procesos de entrega sean escalables, repetibles y, más resistentes (al minimizar la posibilidad de error humano). La clave para una implementación correcta de este enfoque es seguir las prácticas de DevOps, incluidas las pruebas adecuadas, el uso de medidas observables y el aprendizaje continuo.
La entrega también debe tener en cuenta el aprovisionamiento y la configuración de la infraestructura del entorno de destino a través de IaC. El tratamiento de la infraestructura como código ofrece una variedad de ventajas, incluida la coherencia, la reproducibilidad y la agilidad.
Operaciones
La fase de operaciones implica el mantenimiento, la supervisión y la solución de problemas de aplicaciones en entornos de producción. Desde la perspectiva de DevOps, los objetivos principales en esta fase son la estabilidad y confiabilidad, la respuesta rápida a incidentes, la seguridad y el cumplimiento, y la satisfacción del cliente. En cierta medida, alcanzar estos objetivos depende de haber implementado correctamente los resultados medibles. Los procesos de DevOps también se basan en círculos de retroalimentación que proporcionan datos que reflejan el estado actual de la aplicación implementada, como las métricas de rendimiento, la capacidad de respuesta y la experiencia general del usuario, incluida la funcionalidad mejorada o degradada.
Durante esta fase, es importante garantizar los niveles máximos de colaboración entre los equipos de desarrollo, operaciones y seguridad. Esta fase también sirve como fuente esencial del aprendizaje continuo.
¿Cuál es la fase final del ciclo de vida de la aplicación?
Como el nombre indica y la imagen al principio de esta unidad ilustra, el ciclo de vida de la aplicación es, por diseño, un proceso circular. Hay un principio determinista y un final de la vida útil de una aplicación determinados por los eventos de origen y retirada. Sin embargo, después de la implementación inicial (o con frecuencia, incluso antes), los comentarios de los usuarios y los datos de supervisión informan a las actualizaciones posteriores y la evolución de la aplicación.
Nota:
Tenga en cuenta que aunque la seguridad se mencionó solo unas pocas veces en esta unidad, según los principios de DevSecOps, su rol se aplica a lo largo del ciclo de vida de la aplicación. De hecho, se deben tener en cuenta las consideraciones relacionadas con la seguridad durante cada fase, comenzando al principio del planeamiento inicial.