Continuous delivery

13
CONTINUOUS DELIVERY CAPITULO 2

Transcript of Continuous delivery

Page 1: Continuous delivery

CONTINUOUS DELIVERYCAPITULO 2

Page 2: Continuous delivery

INTRODUCCIÓN: CONFIGURACIÓN ADMINISTRATIVA• Configuración administrativa: se refiere al proceso por el cual todas las

partes relevantes de su proyecto, y las relaciones entre ellos, son almacenadas, obtenidas, identificadas de manera única y modificadas.

• La estrategia que tomes para la configuración administrativa determinara como se manejaran todos los cambios que pacen dentro del proyecto.

Page 3: Continuous delivery

USANDO CONTROL DE VERSIÓN

• Es un mecanismo para mantener múltiples versiones de tus archivos, para que cuando se modifique un archivo, aun se pueda acceder a la versión anterior.

• El objetivo de estos sistemas se puede dividir en 2:• Conserva y provee acceso a cada versión de cada archivo que ha sido

alguna vez almacenado en este. También provee una forma de metadata.• Permite a equipos, que están distribuidos a través del tiempo y el espacio,

colaborar.

Page 4: Continuous delivery

MANTÉN TODO EN EL CONTROL DE VERSIÓN

• No se le dice control de fuente ya que control de versión abarca un campo mayor.

• Este sistema se utiliza para almacenar TODO: el código fuente, las pruebas, los scripts de las bases de datos, la documentación, las librerías, la configuración de archivos para tu aplicación, el compilador, etc.

• El objetivo es tener todo lo que pueda cambiar en algún momento de vida del proyecto almacenado de una forma controlada.

• Esta estrategia ofrece el máximo control y un comportamiento asegurado.

Page 5: Continuous delivery

REGISTRO REGULAR: PROBLEMAS Y VENTAJAS

• Ya que registrar es una forma de publicación, es importante el estar seguro que el trabajo que se tiene, sea lo que sea, este listo para el nivel de publicidad que esto implicaría.

• Si se registra el progreso de un desarrollador, este se vuelve publico para todos los que tengan acceso al sistema, y podría llegar a una etapa de prueba, o incluso de producción.

• Hacer registros regulares permite que otros vean tu trabajo y verifiquen que este no afecte lo que se tiene.

• Una solución usada (pero no recomendada) es crear una rama diferente dentro del control de versión para nuevas funcionalidades.

Page 6: Continuous delivery

UTILIZA MENSAJES DE COMMIT SIGNIFICATIVOS• Mucha gente tienen el mal habito de no agregar este mensaje cuando

realizan un commit.• El motivo mas importante para hacer esto es que con un buen mensaje

(explicando que hizo), es posible identificar quien y cuando daño lo que se lleva y como lo daño.

• Un mensaje con múltiples párrafos es un estilo que puede ser muy útil: el primer párrafo tiene el resumen de lo que se hizo, mientras que los otros son mas detallados del paso a paso.

Page 7: Continuous delivery

ADMINISTRANDO DEPENDENCIAS

• La dependencia externa mas común dentro de tu aplicación son las librerías de terceros que utiliza y las relaciones entre componentes o módulos en desarrollo por otros equipos dentro de la organización.

• Las librerías nunca son cambiadas por tu equipo de desarrollo y son raramente actualizadas.

• Componentes o módulos mantienen bajo constante desarrollo y cambian de forma frecuente.

Page 8: Continuous delivery

ADMINISTRANDO LA CONFIGURACIÓN DE SOFTWARE.• Configuración es una de las tres partes clave que comprende una

aplicación, junto con sus datos y sus binarios.• Información de configuración puede ser usada para cambiar el

comportamiento de la aplicación durante el tiempo de construcción, despliegue y ejecución.

• Los equipos de entrega deben considerar cuidadosamente que opciones de configuración deben estar disponibles, como manejarlas durante su tiempo de vida y como asegurar que la configuración es manejada de manera consistente a través de los componentes, aplicaciones y tecnologías.

Page 9: Continuous delivery

CONFIGURACIÓN Y FLEXIBILIDAD

• La mayoría prefiere un software flexible, pero esto tiene un costo.• El deseo de lograr flexibilidad puede llevar al común anti patrón de

“Máxima configurabilidad”, que es normalmente establecido como requerimiento del software. En el mejor de los casos, es de poca ayuda, en el peor, puede llevar a la muerte del proyecto.

• Agregarle configurabilidad a un proyecto no es malo, pero se debe tener un control de hasta que nivel se debe llevar y hacerlo de forma consistente.

Page 10: Continuous delivery

TIPOS DE CONFIGURACIÓN

Hay varios momentos durante el ciclo de vida de una aplicación en el que información de configuración podría ser inyectada en este: durante la construcción, empaquetado, el despliegue, las pruebas o el proceso de salida.Es considerado una mala practica el inyectar información de configuración durante el tiempo de construcción y empaquetado. Esto se debe al principio de que se debe poder desplegar lo mismo para todos los entornos y así asegurar que lo que se saca es lo mismo que se probo.

Principios de configuración de aplicaciones.

Page 11: Continuous delivery

MANEJANDO TUS ENTORNOS

• Ninguna aplicación es una isla. Toda aplicación depende de un hardware, software, infraestructura y sistema externo para funcionas. A todo esto se le conoce como el entorno de la aplicación.

• Lo principal a tener en cuenta cuando manejas el entorno que usara tu aplicación es la configuración de ese entorno. Por ejemplo, la configuración del sistema operativo. Si se necesitan un gran numero de manipuladores de archivos, pero estos no están configurados para esa cantidad, la aplicación no servirá.

• Se debe tener cuidado con estas configuraciones.11

Page 12: Continuous delivery

HERRAMIENTAS PARA MANEJAR ENTORNOS

• Puppet y CfEngine son dos ejemplos de herramientas que hacen posible el manejo de la configuracion del sistema operativo de una manera “automática”.

• Virtualización también puede mejorar la eficiencia del manejo del entorno. En lugar de crear un entorno desde cero usando una proceso automatizado, se puede simplemente tomar una copia de cada parte de tu entorno y almacenarla como una base. También permite consolidar y estandarizar el hardware.

Page 13: Continuous delivery

CIBERGRAFIA

• http://www.johnchukwuma.com/training/ContinuousDelivery.pdf