DevOps para principiantes

  • Published on
    14-Dec-2015

  • View
    36

  • Download
    3

Embed Size (px)

DESCRIPTION

Manual de implementacin de DevOps, Integracin Continua, Entrega Continua, Control y Modelos de Versionamiento

Transcript

<ul><li><p>8-8-2015 </p><p>DevOps para </p><p>principiantes Manual de implementacin </p><p>Yadder Aceituno Gonzalez 201021209 </p></li><li><p>UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA </p><p>Tabla de contenido Qu es DevOps? .......................................................................................................................... 2 </p><p>1. DevOps no es un puesto de trabajo .............................................................................. 3 </p><p>2. DevOps no se trata de resolver un problema de TI ..................................................... 3 </p><p>3. DevOps no es un sinnimo de integracin continua .................................................. 3 </p><p>4. DevOps est aqu para quedarse .................................................................................. 4 </p><p>Los Principios de DevOps ............................................................................................................ 5 </p><p>1. Desarrollar y probar contra sistemas que emulan los de produccin ...................... 6 </p><p>2. Desplegar bajo procesos confiables y repetibles ........................................................ 6 </p><p>3. Monitorear y validar la calidad operacional ................................................................ 6 </p><p>4. Ampliar crculos de retroalimentacin ........................................................................... 7 </p><p>Gestion de Versionamiento ........................................................................................................ 8 </p><p>1. El repositorio ....................................................................................................................... 9 </p><p>2. Modelos de versionado .................................................................................................... 9 </p><p>El problema de compartir archivos .................................................................................. 10 </p><p>La solucin bloquear-modificar-desbloquear ................................................................ 10 </p><p>La solucin copiar-modificar-fusionar .............................................................................. 11 </p><p>Integracin Continua ................................................................................................................ 12 </p><p>1. Las buenas prcticas ...................................................................................................... 13 </p><p>Prctica de desarrollo de software .................................................................................. 13 </p><p>Los miembros del equipo integran su trabajo frecuentemente .................................. 13 </p><p>2. Los pasos para implementar integracin continua ................................................... 14 </p><p>2.1 Conciencia a las personas y da informacin sobre el tema ................................ 14 </p><p>2.2 Tener claro el proceso de desarrollo de la empresa ............................................. 14 </p><p>2.3 Tener clara la poltica de gestin y control de versiones ...................................... 15 </p><p>2.4 Gestin de tareas y trazabilidad ............................................................................... 15 </p><p>2.5 Automatizacin del build ........................................................................................... 15 </p><p>2.6 Definir cual va a ser el pipeline de integracin continua ..................................... 16 </p><p>2.7 Elegir e instalar el servidor de integracin continua .............................................. 16 </p><p>2.8 Automatizar pruebas................................................................................................... 16 </p><p>2.9 Inspeccin continua ................................................................................................... 17 </p><p>2.10 Implementar entrega continua y despliegue continuo ........................................ 17 </p></li><li><p>UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA </p><p>DevOps para principiantes </p><p>Captulo 1 </p><p>Qu es DevOps? Mucho se ha escrito acerca de lo que es DevOps: Un camino para que los desarrolladores y </p><p>directores de operaciones colaboren; un conjunto de mejores prcticas para la gestin de </p><p>aplicaciones en la nube; una idea gil que se basa en la integracin continua, lo que permite </p><p>frecuentes liberaciones de cdigo. </p><p>La definicin de DevOps cubre todas estas cosas y ms. Pero dado que el trmino ha adquirido </p><p>estatus de palabra de moda, puede ser ms interesante preguntarse no lo que es DevOps, sino </p><p>lo que no es. En el artculo SearchSoftwareQuality pregunt a algunos profesionales de software </p><p>exactamente eso. He aqu lo que dijeron. </p></li><li><p>UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA </p><p>1. DevOps no es un puesto de trabajo Publicaciones en sitios de empleo sugieren otra cosa, pero DevOps no es un puesto de trabajo, </p><p>dijo el consultor de Agile, Scott Ambler. "Gestor de DevOps? No s lo que es eso". DevOps no </p><p>debe ser un rol laboral, dijo. "DevOps se trata de que los desarrolladores entiendan la realidad </p><p>de las operaciones y de que el equipo de operaciones comprenda lo que involucra el desarrollo. </p><p>DevOps, el concepto, es un aspecto importante del desarrollo y la entrega de software, dijo </p><p>Ambler. "Pero el puesto de DevOps es un sntoma de que las organizaciones que contratan no </p><p>entienden lo que DevOps es realmente. Ellos no lo entienden todava." </p><p>La postura de Ambler sobre DevOps va en contra de la sabidura convencional. DevOps apareci </p><p>en la lista de 10 ttulos de trabajo que es probable encontrar, de acuerdo con SearchCIO.com. </p><p>2. DevOps no se trata de resolver un problema de TI A pesar de sus muchos significados, DevOps es ampliamente entendido como una forma de </p><p>resolver un problema de TI: permite que el rea de desarrollo y operaciones colaboren en la </p><p>entrega de software. Pero ese no es su objetivo final, dijo Damon Edwards, socio gerente de </p><p>consultora de TI, Soluciones DTO. "El punto de DevOps es permitirle a su empresa reaccionar </p><p>ante las fuerzas del mercado lo ms rpido, eficiente y confiable como sea posible. Sin el </p><p>negocio, no hay otra razn para que estemos hablando de problemas DevOps, mucho menos </p><p>pasar tiempo resolvindolos". </p><p>Kevin Parker, experto de SearchSoftwareQuality, dijo que el nuevo reto que encaran los </p><p>gerentes de DevOps es toda la atencin que el tema obtiene por parte del negocio. "Lo que </p><p>antes era una tarea arcana, de elaborada coordinacin y gestin de proyectos es ahora en parte </p><p>diplomacia, parte protector y una buena cantidad de innovacin." </p><p>3. DevOps no es un sinnimo de integracin continua DevOps se origin en Agile como una forma de apoyar la prctica gil de liberaciones de cdigo </p><p>ms frecuentes. Pero DevOps es ms que eso, dijo Ambler. "El hecho de que se practique la </p><p>integracin continua no significa que se est haciendo DevOps." l ve a los gerentes de </p><p>operaciones como los principales interesados que los equipos giles necesitan trabajar para </p><p>liberar software. </p></li><li><p>UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA </p><p>4. DevOps est aqu para quedarse En el dinmico mundo de la tecnologa, el empleo evoluciona en respuesta a las nuevas </p><p>necesidades. A medida que cambian los requisitos, la demanda de estos nuevos puestos de </p><p>trabajo aumenta. </p><p>Una rama de desarrollo Agile, DevOps desdibuja las lneas entre los desarrolladores y equipos de </p><p>operaciones mediante el fomento de los desarrolladores a tener una comprensin de los </p><p>principios de las operaciones, y alentar a los profesionales de operaciones para reforzar sus </p><p>habilidades de codificacin y automatizacin. </p><p>Como cada vez ms empresas mueven los datos hacia la Nube y necesitan mltiples centros de </p><p>datos de todo el mundo, los roles estratgicos son necesarios, y ah es donde el papel DevOps </p><p>encuentra su nicho. </p><p>El rol de DevOps apela a las empresas, pues est diseado para lograr ms con menos. El punto </p><p>de derribar los silos de TI tradicionales es aumentar la comunicacin entre los empleados. "Hay </p><p>que abrir lneas directas de comunicacin", dijo Robert Stinnett, Ingeniero de Automatizacin del </p><p>Centro de Datos de Columbia, Missouri. </p><p>Stinnett, sin embargo, tuvo unas palabras de advertencia para aquellos interesados en contratar </p><p>a personal de desarrollo en DevOps. </p><p>"Las empresas no deben usar DevOps como una excusa para tener gente haciendo dos o tres </p><p>trabajos diferentes", dijo. "Si usted lo est haciendo para ahorrar dinero, usted va a fracasar." </p></li><li><p>UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA </p><p>DevOps para principiantes </p><p>Captulo 2 </p><p>Los Principios de DevOps DevOps no es solo una palabra nueva en nuestro vocabulario, sino tambin una nueva forma de </p><p>hacer negocios. El nombre "DevOps" (una combinacin de las palabras "desarrollo" y </p><p>operaciones") an no est en el diccionario Webster. Sin embargo, se est convirtiendo </p><p>rpidamente en un esfuerzo popular para la gestin y el uso comn de los administradores de TI </p><p>en la industria del software. </p><p>Entender los principios de DevOps aporta valor a la empresa quien las aplica as como a aquellos </p><p>que utilizan lo que despliegan. He aqu algunos de los principios que presenta esta filosofa. </p></li><li><p>UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA </p><p>1. Desarrollar y probar contra sistemas que emulan los de </p><p>produccin </p><p>El objetivo aqu es permitir que los equipos de desarrollo y de aseguramiento de la calidad </p><p>desarrollen y prueben contra sistemas que se comportan tal como lo hace el sistema en su fase </p><p>de produccin. De esta manera se puede observar cmo se comporta la aplicacin y tambin su </p><p>desempeo, mucho antes de que est lista para su despliegue. </p><p>Se busca probar la aplicacin bajo el ambiente ms parecido al real y simultneamente tambin </p><p>se busca validar los procesos de entrega de aplicaciones. Desde el punto de vista de operaciones </p><p>este principio tiene un enorme valor, ya que permite ver muy temprano en el ciclo cmo se </p><p>comporta el ambiente que debe soportar la aplicacin y permite eventualmente crear las bases </p><p>para poder entonar ese ambiente en funcin de la aplicacin. </p><p>2. Desplegar bajo procesos confiables y repetibles </p><p>Este principio permite a desarrollo y operaciones apoyar un proceso de desarrollo gil e iterativo </p><p>en todas las fases hasta produccin. La automatizacin es esencial para poder crear procesos </p><p>que cumplan con las siguientes condiciones: iterativos, frecuentes, repetibles y confiables. Esto </p><p>le permite a la organizacin crear una cartera de entregables, donde los despliegues y las pruebas </p><p>se pueden realizar en forma automtica y continua. La ejecucin frecuente de despliegues </p><p>tambin permite poner a prueba los procesos de despliegue, limitando los riesgos de fallas en los </p><p>momentos de entrega. </p><p>3. Monitorear y validar la calidad operacional </p><p>Tpicamente las organizaciones son muy buenas monitoreando aplicaciones y sistemas en </p><p>produccin, ya que existen muchas opciones para hacer esto y ellas utilizan herramientas que </p><p>permiten capturar las mtricas de produccin en tiempo real. Sin embargo, este monitoreo es </p><p>realizado sobre aplicaciones individuales, donde las aplicaciones no estn conectadas las unas </p><p>con las otras. DevOps exige que el monitoreo sea realizado ms temprano en el ciclo, requiriendo </p><p>adems que se haga monitoreo de las caractersticas funcionales y de las caractersticas no-</p><p>funcionales de la aplicacin. </p></li><li><p>UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA </p><p>En cualquier momento, a medida que las aplicaciones estn siendo desplegadas y probadas, </p><p>DevOps exige que se capturen mtricas de calidad y que sean analizadas. Este monitoreo </p><p>frecuente provee aviso tempranero sobre temas operacionales y de calidad que podran aparecer </p><p>posteriormente en la etapa de produccin. Adicionalmente, las mtricas deben ser capturadas </p><p>en un formato que sea entendible y utilizable para todos los interesados, incluyendo a los </p><p>responsables de las aplicaciones en las lneas de negocio. </p><p>4. Ampliar crculos de retroalimentacin </p><p>Uno de los principales objetivos de DevOps es permitir a las organizaciones reaccionar y poder </p><p>realizar cambios rpidamente en sus procesos de negocio. En la entrega de software, el objetivo </p><p>se transforma en proveer retroalimentacin en un corto tiempo y adems poder aprender </p><p>rpidamente de cada accin que se toma. Las organizaciones deben crear canales de </p><p>comunicacin que permitan a todas las partes interesadas accesar a la informacin y actuar sobre </p><p>la base de la retroalimentacin y por ello: </p><p> Desarrollo puede actuar ajustando sus planes de proyecto o sus prioridades. </p><p> Produccin (Operaciones) puede actuar mejorando los ambientes de produccin. </p><p> Las Lneas de Negocios pueden actuar modificando sus planes de implementacin. </p></li><li><p>UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA </p><p>DevOps para principiantes </p><p>Captulo 3 </p><p>Gestion de Versionamiento La Gestin de Versiones es la encargada de la implementacin y control de calidad de todo el </p><p>software y hardware instalado en el entorno de produccin. </p><p>La Gestin de Versiones tambin debe mantener actualizada la Biblioteca de Software Definitivo </p><p>(DSL), donde se guardan copias de todo el software en produccin, y el Depsito de Hardware </p><p>Definitivo (DHS), donde se almacenan piezas de repuesto y documentacin para la rpida </p><p>reparacin de problemas de hardware en el entorno de produccin. </p></li><li><p>UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA </p><p>1. El repositorio Un gestor de versionamiento es un sistema centralizado para compartir informacin. En su </p><p>ncleo est un repositorio, que es un almacn central de datos. El repositorio almacena </p><p>informacin en forma de un rbol de archivos (una jerarqua tpica de archivos y directorios). Un </p><p>nmero de clientes se conectan al repositorio, y luego leen o escriben esos archivos. Al escribir </p><p>datos, el cliente hace que la informacin est disponible para los otros; al leer los datos, el cliente </p><p>recibe informacin de los dems. </p><p>Figura 1 </p><p>Cuando un cliente lee datos de un repositorio, normalmente ve nicamente la ltima versin </p><p>del rbol de archivos. Pero el cliente tambin tiene la capacidad de ver estados previos del </p><p>sistema de archivos. Por ejemplo, un cliente puede hacer preguntas histricas, como qu </p><p>contena este directorio el ltimo mircoles?, o quin fue la ltima persona que cambi este </p><p>archivo, y qu cambios hizo? Esta es la clase de preguntas que forman el corazn de </p><p>cualquier sistema de control de versiones: son sistemas que estn diseados para guardar y </p><p>registrar los cambios a los datos a lo largo del tiempo. </p><p>2. Modelos de versionado Todos los sistemas de control de versiones tienen que resolver los mismos problemas </p><p>fundamentales: cmo permitir el sistema compartir informacin entre usuarios, pero evitando </p><p>que ellos accidentalmente se pisen unos a otros? Es demasiado sencillo que los usuarios </p><p>accidentalmente sobre-escriban los cambios del otro en el repositorio. </p></li><li><p>UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA </p><p> El problema de compartir archivos </p><p>Considere este escenario: suponga que tiene </p><p>dos compaeros de trabajo, Harry y Sally. Cada </p><p>uno decide editar el mismo archivo del </p><p>repositorio a la vez. Si Harry graba...</p></li></ul>