DevOps Fundamentos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 85

DevOps

Fundamentos
Resumen
La certificación DevOps Certified Expert – DCE
valida su conocimiento sobre
los principios, métodos y prácticas que
fomentan la colaboración, la
comunicación, la integración y la
automatización del flujo de trabajo entre las
áreas de ingeniería de software
(Dev) y operaciones de TI (Ops).
Contenido
Contexto DevOps ✔ Despliegue con procesos fiables y repetitivos
✔ ¿Qué es DevOps? ✔ Supervisión y validación de la calidad operativa
✔ ¿Qué no es DevOps? ✔ Amplificación de los bucles de información
✔ Historia de DevOps
✔ Desarrollo Agile Cultura DevOps
✔ Cascada vs Agile ✔ Adopción de DevOps
✔ Manifiesto para el desarrollo ágil de software ✔ Cultura
✔ Principios del manifiesto Agile ✔ Procesos
✔ Agile y DevOps pueden trabajar juntos ✔ Proceso de gestión de cambios
✔ DevOps vs TI tradicional ✔ Plataformas y herramientas
✔ ¿Por qué DevOps? ✔ Infraestructura como código
✔ ¿Cómo funciona DevOps? ✔ Estrategia de adopción de DevOps

Principios DevOps
✔ Principios
✔ Desarrollar y probar en un entorno similar al de
producción
Contenido
Ciclo de vida DevOps Herramientas DevOps
✔ Ciclo de vida de DevOps ✔ Herramientas DevOps a través del Proceso
✔ Características de DevOps - Arquitectura ✔ Plan
✔ Planificación y medición ✔ Source Code Management – SCM
✔ Desarrollo y pruebas ✔ Build
✔ Lanzamiento de versiones y despliegues ✔ CI
✔ Supervisión y optimización ✔ Analyze
✔ Repository
Canal de distribución ✔ Test
✔ Canal de distribución ✔ Config
✔ Entorno de desarrollo ✔ Release And Deploy
✔ Fase de compilación ✔ Continuos Inspection Monitoring
✔ Repositorio de paquetes
✔ Entorno de pruebas
✔ Entornos de pre-producción y producción
✔ Automatización de despliegue
✔ Gestión de releases
Contexto DevOps
¿Qué es DevOps?
DevOps: una combinación de desarrollo y

operaciones, es una filosofía que se


centra en la comunicación, la colaboración y la

integración entre los


desarrolladores de software y los profesionales de la
tecnología de la información (TI)
• Permite una rápida evolución de productos
o servicios
• Reduce el riesgo, mejora la calidad y
Los desarrolladores de software y los
reduce los costos profesionales en TI trabajan juntos en todo el
ciclo de vida del servicio, desde el diseño hasta el proceso
de despliegue en producción.
¿Qué es DevOps?
Un enfoque holístico permite el mayor logro de velocidad, calidad y agilidad.

► Entrega frecuente del valor del cliente


Procesos y
Cultura Metodos de entrega ágil ► Equipos altamente colaborativos
► Retroalimentación y mejora continua

► Pruebas automáticas continuas


Integración y entrega
Herramientas y ► Detección temprana de problemas
automatización continua ► Código siempre listo para la implementación
DevOps

Arquitectura y
Modernización de ► Acoplamiento y complejidad reducidos
desarrollo aplicaciones ► Componentes y servicios reutilizables

Plataforma como servicio e ► Aprovisionamiento de autoservicio de infraestructura y


Infraestructura infraestructura como plataformas definidas por software
y operaciones
servicio ► Monitoreo y análisis continuo
¿Qué es DevOps?

DEV OPS

DevOps es un conjunto de prácticas que hace hincapié en la comunicación, la colaboración,


la integración, la automatización y la medición de la cooperación entre los
desarrolladores de software y otros profesionales de las tecnologías de la información (TI).
¿Qué no es DevOps?
DevOps NO es “los desarrolladores que operan”. En todo caso, las operaciones están
automatizadas hasta el punto en que se ejecutan en respuesta a las acciones
autorizadas tomadas por otros roles, incluidos los desarrolladores.

DevOps no es una metodología de desarrollo de software: DevOps es lo que ocurre


mientras el desarrollo del software está sucediendo, y en gran parte lo que sucede
cuando se desarrolla el software (o un ciclo de él).

DevOps no es automatización. Sin embargo, no puede tener DevOps sin


automatización. La automatización es quizás el mayor beneficio que operaciones
recibe de DevOps.
Historia de DevOps
IT OPS
BUSINESS
IT OPS

BUSINESS

DEV DEVOPS
DEV BUSINESS

Antes de la evolución actual de A medida que el movimiento ha crecido, también lo ha Estamos en un período de
DevOps, no había conexión directa hecho el concepto. Lo que de una manera simplista se ha transición importante en el
entre el desarrollo y las considerado como un canal de comunicación entre que los ciclos de vida de las
operaciones. Los desarrolladores desarrolladores y TI, se ha expandido para incluir todo el aplicaciones y los despliegues
eran responsables de crear ciclo de vida de desarrollo, con la inclusión de la se acortarán tanto hasta que la
aplicaciones y las operaciones automatización desde el principio del proceso a través de entrega continua no sea el
tenían la responsabilidad de la implementación de la solución en un sistema de atípico, sino la forma estándar
implementar esas soluciones. No construcciones incrementales, como lo ha planteado la de hacer negocios.
había ningún método formal de filosofía Agile. Esta idea ha formado otro término, "entrega
comunicación entre los dos continua", que se ha afianzado, especialmente para las
equipos. aplicaciones dinámicas desplegadas en Internet.
Desarrollo Agile
DevOps está muy ligado con los principios
de la filosofía agile:
• Agile emplea sprints, que van desde una semana
hasta meses como una forma de administrar el
programa de desarrollo, mientras que DevOps se
enfoca en los lanzamientos rápidos que comienzan
con varios por día.
• DevOps promueve un proceso de integración y
despliegue continuo completamente
automatizado para permitir lanzamientos
frecuentes, mientras que Agile ofrece la capacidad de
adaptarse rápidamente a los requisitos
cambiantes y una mejor colaboración entre
diferentes equipos más pequeños.
Problemas de los Equipos de Desarrollo Tradicionales
Silos Organizacionales

Distintas Mentalidades / Implementaciones / Herramientas

Procesos desintegrados

No hay feedback grupal

Falta de interés en aprender otras herramientas

Distintas áreas

Culpar a los demás


Cascada vs Agile
Metodología de desarrollo de Marco de trabajo Agile
cascada
• Es predictivo y se presenta como una • Desarrollo iterativo, altamente adaptable y
serie de fases discretas. racional.

• Cada uno ocurre solo después de que la • Incluye todas las fases de desarrollo dentro de
fase anterior haya finalizado una iteración.

Analysis
Design Design
Coding
Testing
Deploy Start Architecture Plan/Analysis Code Deploy

Testing
Cascada vs Agile

Cascada Agile
Proyecto de desarrollo Proyecto más pequeño y
altamente complejo. entrega incremental
Requisitos bien pensados Flexible, negociable, justo a
Fecha de entrega fija tiempo.
Equipos grandes Fecha de entrega flexible
Equipos más pequeños (<20)
Manifiesto para el desarrollo ágil de software
Colaboración con el
Individuos e interacciones cliente sobre
sobre procesos y negociación contractual
herramientas Esto es, aunque
valoramos los elementos
de la derecha,
3 valoramos más los de la
1 izquierda.
Más información:
2 4 https://agilemanifesto.org/

Software
funcionando sobre Respuesta ante
documentación el cambio sobre
extensiva seguir un plan
Principios del manifiesto Agile
2. Aprovechamos los cambios 3. Entregamos productos funcionales y 4. Trabajamos juntos
1.Satisfacemos al cliente
frecuentemente

7. Medimos los productos 8. Mantenemos un ritmo


5. Permanecemos 6. Conversamos cara a cara
funcionando constante de forma indefinida
motivados

9. Prestamos atención
10. Lo hacemos simple 11. Somos 12. Mejoramos continuamente
continua a la excelencia
auto-organizados
técnica
Agile y DevOps pueden trabajar juntos
Tanto la filosofía Agile y como la filosofía DevOps
pueden funcionar en conjunto.
Agile: se tiene en un enfoque iterativo del
desarrollo
DevOps: Reúne dos prácticas tradicionalmente
separadas, el Desarrollo y las Operaciones, que
normalmente están aisladas.

El objetivo final de las dos


filosofías es crear una mayor
colaboración.
DevOps vs TI tradicional

TI Tradicional

Equipo de desarrollo Equipo de operaciones


• Busca nuevas herramientas y plataformas • Centrado en la estabilidad
• No está contra la innovación, sino contra
• Enfoque centrado en la innovación
la incertidumbre y los riesgos
• Tendencia a reducir factores como escalabilidad, fiabilidad,
• Continuidad del negocio
repetibilidad, etc.

Los desarrolladores Entregado a las El equipo de operaciones se


prueban el código en Correcciones Solucionar Ciclo de
operaciones para enfrenta a problemas de
entornos de desarrollo y sobre la problemas de corrección
la implementación compatibilidad de
control de calidad marcha implementación de errores
de producción producción
Quiere Cambio Quiere Estabilidad

Desarrollo Operaciones
DevOps vs TI tradicional

DevOps

Dev+Ops
► Desarrollo de software consciente ► Monitoreo constante y
de la infraestructura retroalimentación sobre la
► El código está diseñado para auto funcionalidad y las características del software
escalamiento, auto-reparación y
► Entrega acelerada de aplicaciones
recuperación
► Utiliza el modelo de entrega continua ► Aplicaciones escalables
► Satisfacción rápida las demandas empresariales
► Versiones de software más rápidas
¿Por qué DevOps?
Necesidades
Solución: DevOps
✔ Las organizaciones desean crear aplicaciones o DevOps prevé la aplicación y la
servicios innovadores para solucionar problemas de prestación de servicios que empujan
negocio constantemente pequeñas
✔ Un gran número de organizaciones no logran actualizaciones incrementales a los
resultados óptimos con sus proyectos de software, y usuarios, con un mínimo de sobrecarga
sus errores suelen deberse a los retos que se les operacional
presentan a la hora de desarrollar y distribuir el
software Los lanzamientos más pequeños son más
✔ Los equipos de QA y de Operaciones son fáciles de codificar y probar, y con
generalmente equipos separados dentro de TI.
el enfoque correcto, más seguros para
✔ El código pasa de los desarrolladores a QA y
empujar hacia producción de forma
viceversa, hasta que QA verifica y aprueba, para que
luego Operaciones los lleve a los ambientes continua.
productivos
¿Cómo funciona DevOps?
En un entorno de DevOps, las cosas funcionan
de manera diferente:

1 2
Los desarrolladores
codifican y comprueban
En algún momento, el
código actual del
3
Las pruebas, generalmente
automatizadas y creadas por los
4 5
Si las pruebas tienen éxito, la
generación se implementa
Se recopilan los
comentarios de los
su código en un repositorio se extrae y se desarrolladores, se ejecutan, incluidos automáticamente en usuarios, alimentando la
repositorio incorpora a una aplicación los modelos individuales, las pruebas producción siguiente iteración del
de integración e incluso las pruebas de ciclo. (se inicia
aceptación por parte de los usuarios nuevamente con el paso 1)
Principios DevOps
Principios
Principios

Desarrollar y probar en un entorno


similar al de producción

Despliegue con procesos fiables y


repetitivos
Supervisión y validación
de la calidad operativa

Amplificación de los bucles


de información
Desarrollar y probar en un entorno similar al de producción

Principios
El objetivo es permitir que los equipos de
desarrollo y control de calidad (QA)

Desarrollar y probar en un entorno


desarrollen y prueben
similar al de producción sistemas que funcionen como un sistema

Despliegue con procesos fiables y


de producción, para que puedan
comprobar si la aplicación funciona bien antes
repetitivos
Supervisión y validación de que esté lista para su despliegue
de la calidad operativa

Amplificación de los bucles


de información
Despliegue con procesos fiables y repetitivos

✔ Permite que los equipos de


Principios desarrollo y operaciones
cuenten con un proceso de desarrollo de
software ágil
Desarrollar y probar en un entorno
similar al de producción ✔ La automatización es
Despliegue con procesos fiables y fundamental para crear procesos que sean
repetitivos constantes, frecuentes, repetitivos y
fiables, por tanto, la organización debe
crear un canal de distribución
Supervisión y validación
de la calidad operativa
que permita realizar continuos despliegues
Amplificación de los bucles y pruebas automatizadas
de información
Supervisión y validación de la calidad operativa

Principios ✔ Es necesario realizar pruebas


automatizadas de forma anticipada y con
frecuencia para supervisar las características
funcionales y no funcionales de la aplicación.
Desarrollar y probar en un entorno ✔ Cada vez que se implemente y pruebe una
similar al de producción aplicación, las métricas de calidad deben
Despliegue con procesos fiables y capturarse y analizarse.
repetitivos ✔ Una supervisión frecuente avisa de forma
Supervisión y validación de
anticipada sobre problemas operativos y de
la calidad operativa calidad que puedan surgir durante el proceso
de producción.
Amplificación de los bucles
de información
Amplificación de los bucles de información

Principios
✔ Un objetivo de DevOps es permitir
que las organizaciones reaccionen y realicen
cambios de forma más rápida.
Desarrollar y probar en un entorno ✔ En el proceso de entrega de
similar al de producción
software, este objetivo requiere que la
Despliegue con procesos fiables y organización reciba comentarios de forma
repetitivos
inmediata para aprender
Supervisión y validación
de la calidad operativa rápidamente de cada medida
que vaya tomando
Amplificación de los bucles
de información
Cultura DevOps
Adopción de DevOps
DevOps es una función empresarial que
abarca todas las partes interesadas de una
organización, incluidos propietarios, arquitectura,
• Cultura
diseño, desarrollo, control de calidad (QA),
operaciones, seguridad, socios y proveedores. • Procesos
• Plataformas y
Cultura Procesos
herramientas
Plataformas y
herramientas
Cultura
DevOps depende de una cultura de
colaboración que valora la apertura y la
transparencia.
Cultura Procesos
• Compartir libremente información
• Promover la transparencia al tomar Plataformas y
decisiones herramientas
• Fomentar la experimentación mediante la
eliminación del temor a cometer errores
• Implementar un sistema de recompensas que
promueva la confianza y la Adopción de DevOps

colaboración.
Cultura: elementos culturales de DevOps

Cultura
Formación de Equipos Mejora Continua y
y Cooperación Resolución de Plataformas y
Problemas herramientas

Liderazgo y Feedback Coraje y


Experimientación
Cultura: ¿Qué es un Equipo?
Un equipo es un pequeño número de personas con habilidades
complementarias, que están comprometidas con un
Cultura
propósito, un conjunto de metas de desempeño y un
enfoque común, por los cuales se hacen mutuamente Plataformas y
herramientas

responsables"
Katsenback & Smith, The Wisdom of Teams, 1993
Equipos: Beneficios - Problemas
Beneficios Problemas
Combina perspectivas Toma irracional de decisiones
Cooperación diferentes debido al pensamiento de grupo

significa Ambigüedad de roles y


Fortalece la creatividad
"trabajar responsabilidades

juntos para Se beneficia de la sinergia Costo elevado de cooperación


cumplir un
objetivo" Da un balance al momento
de tomar decisiones
Tiempo prolongado para tomar
decisiones

Optimiza los plazos de


¡Gracias!
Conflicto dentro del grupo
entrega
Equipos: Herramientas de Gestión Visual
Una herramienta sólida para estimular la
colaboración y asegurar que los problemas son
identificados
• La herramienta ayuda a asegurar que el
trabajo hecho sea visible: puede ser un
proceso manual o electrónico
• Ayuda a identificar el trabajo y los
impedimentos
• Comunica información importante
• Muestran como realizar una tarea ¡Gracias!
• Muestran planes y prioridades
Cultura: Mejora Continua y Resolución de Problemas
La mejora continua resuelve problemas para
lograr los siguientes objetivos:
• Entregar de manera rápida y económica un mejor
valor a los clientes
• Resaltar el trabajo
• Crear un adecuado ambiente de trabajo

La resolución de problemas es sinónimo de


una cultura de ingeniería

Mentalidad Kaizen
Cultura: Mejora Continua y Resolución de Problemas

¡Gracias!
Procesos
La Implementación de la filosofía DevOps genera
cambios en las unidades de negocio que requieren • DevOps como proceso
trabajo de desarrollo y en los grupos que dan empresarial:
soporte a los usuarios finales
Implica la adopción de funciones desde la
concepción de la idea pasando por los procesos de
desarrollo y pruebas hasta producción.

Cultura
Procesos
• Proceso de gestión de
Plataformas y cambios:
herramientas
El proceso de gestión de cambios que una
organización utiliza es una parte inherente del flujo
de procesos de DevOps
Adopción de DevOps
Procesos - Definiciones
• Ágil: es un enfoque iterativo para el desarrollo de software
que propone la creación de una solución mediante etapas Ágil
incrementales.
• Kanban: La palabra "Kanban" se deriva del japonés y se
puede traducir como "señal visual" o "tarjeta". En Kanban,
los elementos de trabajo se representan como tarjetas o
notas adhesivas y el flujo de trabajo se visualiza en un Kanban
tablero.
• Scrum: es un marco de trabajo ágil para gestionar y
organizarCultura
proyectos complejos. Desde su desarrollo en los
90’ ha ganado gran popularidad en la industria del Scrum
desarrollo de software y otros dominios basados ​en el
conocimiento.Plataformas y
• Lean: Es una metodología
herramientas que se enfoca en minimizar el
desperdicio y maximizar el valor en la producción o entrega
de bienes y servicios. Se originó en las industrias Lean
manufactureras, particularmente del Sistema de Producción
Toyota (TPS), pero desde entonces ha sido adoptado y
adaptado en varias industrias y sectores.
Ágil
1. Definir la visión del proyecto
2. Crear la cartera de productos (backlog)
3. Conformar un equipo multifuncional
4. Definir las iteraciones del proyecto (sprints)
5. Planificar los sprints
6. Ejecutar los sprints
7. Revisar y adaptar
8. Refinar y mejorar
9. Entregar valor iterativamente
10. Mantener y mejorar continuamente
Kanban
• Metodología de visualización de flujo de trabajo y gestión de
proyectos. Se originó en el sistema de producción de Toyota en la
década de 1940
• El tablero generalmente se divide en columnas que representan
diferentes etapas del flujo de trabajo, como "Por hacer", "En
progreso" y "Terminado".
• El principio fundamental de Kanban es limitar el trabajo en curso
(Work In Progress) para optimizar el flujo y mejorar la eficiencia.
• Kanban enfatiza la mejora continua y alienta a los equipos a analizar
su flujo de trabajo regularmente para identificar cuellos de botella,
optimizar procesos y lograr una entrega de trabajo más fluida y
rápida.
• La cantidad de tarjetas permitidas en cada columna está
predeterminada, lo que evita la sobrecarga de tareas y garantiza
que los miembros del equipo se concentren en completar el trabajo
que tienen entre manos antes de asumir nuevas tareas.
• Brinda visibilidad sobre el estado del trabajo, facilita la colaboración
y permite que los equipos establezcan prioridades de manera
efectiva.
¡Gracias!
Scrum
Componentes de la metodología:
1. Product Backlog: es una lista priorizada de
funciones, mejoras y correcciones de errores.
2. Planificación de sprint: al comienzo de cada sprint,
el equipo Scrum selecciona de forma colaborativa
un conjunto de elementos del Product Backlog.
3. Daily Scrum: esta es una breve reunión diaria
(generalmente de 15 minutos) donde el equipo de
desarrollo sincroniza su trabajo. DoD (Definition Of Done) es un concepto
en el desarrollo de software ágil que
4. Revisión de sprint: al final de cada sprint, el equipo describe los criterios que se deben cumplir
presenta el trabajo completo a las partes
interesadas y recibe comentarios. para que una historia de usuario o una
tarea se considere completa y lista para su
5. Retrospectiva de Sprint: esta es una reunión que se entrega.
lleva a cabo después de la Revisión de Sprint, donde
el Equipo Scrum reflexiona sobre el Sprint e
identifica áreas de mejora.
Lean
Los principios básicos son:
1. Eliminación de desperdicios: Estos desperdicios, conocidos como "Muda"
en japonés, incluyen sobreproducción, tiempo de espera, transporte
innecesario, exceso de inventario, movimiento innecesario, defectos y
talento desperdiciado.
2. Mejora continua (Kaizen): las personas y los equipos buscan
constantemente formas de realizar mejoras incrementales en sus
procesos.
3. Respeto por las personas: valorar los conocimientos, habilidades y
contribuciones y buscar crear un ambiente de trabajo de apoyo que
fomente el trabajo en equipo, la colaboración y el desarrollo de los
empleados.
4. Mapeo del flujo de valor: técnica utilizada en los procesos Lean para
mapear visualmente el flujo de materiales, información y actividades
necesarias para entregar un producto o servicio.
5. Sistema de extracción: la producción o el trabajo se basan en la demanda
real o los pedidos de los clientes en lugar de impulsar el trabajo en
función de las previsiones o los cronogramas.
6. Justo a tiempo (JIT): como objetivo minimizar el inventario produciendo o
entregando artículos en el momento preciso en que se necesitan.
Detalle del enfoque Scrum

¡Gracias!
Detalle del enfoque Scrum

¡Gracias!
Detalle del enfoque Scrum

¡Gracias!
Detalle del enfoque Scrum

¡Gracias!
Detalle del enfoque Scrum

¡Gracias!
Detalle del enfoque Scrum

¡Gracias!
Detalle del enfoque Scrum

¡Gracias!
Detalle del enfoque Scrum

¡Gracias!
Proceso de gestión de cambios
Plataformas y herramientas
La selección de herramientas es fundamental
para el éxito de DevOps

Cultura Procesos

Si una organización crea o mantiene


Plataformas y
varias aplicaciones, todos sus herramientas
procesos deben ser repetitivos, de una
forma fiable, para garantizar la calidad de
todas las aplicaciones Adopción de DevOps
Infraestructura como código
Es una función principal de Tipos de herramientas de automatización parar
DevOps que permite a las gestionar una infraestructura como código:

organizaciones gestionar Herramientas centradas en


aplicaciones o middleware: pueden
la escala y la velocidad automatizar completamente tareas a
a la que deben nivel de aplicación y servidor

aprovisionarse y
configurarse los entornos
Herramientas genéricas: no están
para seguir ofreciendo una especializadas para ninguna tecnología
entrega continua. y pueden adaptarse para realizar varios
tipos de tarea
Estrategia de adopción de DevOps
Identificar los cuellos de botella actuales

Finalizar objetivos de alto nivel alineados con la estrategia organizacional

RoadMap para alcanzar objetivos de alto nivel

Identificar las herramientas y prácticas adecuadas para el modelo de DevOps

Establecer procesos, herramientas y procedimientos de DevOps

Implementar proyectos piloto

Aprender, adaptarse y mejorar


¡Gracias!
Ciclo de vida DevOps
Ciclo de vida de DevOps

Desarrollo

Factores de adopción
Retroalime Construcción
ntación

Demanda de una Disponibilidad de Mayor uso de


Agile y otros mayor tasa de infraestructura automatización de
procesos de releases de virtualizada y en la centros de datos y
desarrollo y producción nube herramientas de
metodologías gestión de la
configuración
Monitoreo Pruebas

Despliegue
Características de DevOps - Arquitectura

Propietarios Desarrollo Operaciones


Clientes
empresa /Pruebas /Producción

Innovación, retroalimentación y mejora continua Rutas de adopción:


✔ Planificación y medición
✔ Desarrollo y pruebas
Planificar y medir Desarrollar y probar Lanzar y desplegar
✔ Lanzamiento de versiones y despliegues
✔ Supervisión y optimización
Monitorizar y optimizar
Planificación y medición
• Se centra en las líneas de negocio y
Propietarios Desarrollo Operaciones
Clientes
empresa /Pruebas /Producción sus procesos de planificación empresarial
continua.
• Las organizaciones evalúan y, descubren lo
Innovación, retroalimentación y mejora continua que los clientes realmente quieren y
cambian la dirección actualizando sus

Planificar y medir Desarrollar y probar Lanzar y desplegar


planes empresariales en
consecuencia, permitiéndoles tomar
Monitorizar y optimizar decisiones sobre soluciones
intermedias en un entorno con
recursos limitados con el fin de lograr los
objetivos
Desarrollo y pruebas
Esta ruta de adopción implica dos prácticas:
Desarrollo colaborativo:
• El desarrollo colaborativo
Permite a los equipos trabajar de forma conjunta
• Pruebas continuas. ofreciendo un conjunto común de prácticas y una
plataforma común que pueden utilizar para crear
Propietarios Desarrollo Operaciones y entregar software
Clientes
empresa /Pruebas /Producción

Innovación, retroalimentación y mejora continua Pruebas continuas:


Está basada en la integración continua
• Realizar pruebas y verificaciones continuas de
código
Planificar y medir Desarrollar y probar Lanzar y desplegar
• Comprobar que el código producido e
integrado con el de otros desarrolladores
Monitorizar y optimizar
funciona y obtiene los resultados previstos
• Probar continuamente la aplicación que se
está desarrollando
Lanzamiento de versiones y despliegues

Clientes
Propietarios Desarrollo Operaciones El lanzamiento de versiones y el
empresa /Pruebas /Producción
despliegue continuos llevan el
concepto de la integración continua al siguiente
Innovación, retroalimentación y mejora continua nivel.
La práctica que permite lanzar versiones y
desplegarlas también permite la creación de un
canal de distribución
Planificar y medir Desarrollar y probar Lanzar y desplegar
Este canal facilita el despliegue continuo de
Monitorizar y optimizar
software a QA y después a producción de forma
eficiente y automatizada.
El objetivo del lanzamiento de versiones y de la
implementación continua es presentar nuevas
funciones a los clientes y usuarios lo antes posible.
Supervisión y optimización
Permite a las empresas monitorizar los resultados de las aplicaciones publicadas en producción y la realimentación de los
clientes

Clientes
Propietarios Desarrollo Operaciones Supervisión continua: ofrece datos y métricas al
empresa /Pruebas /Producción
personal de líneas de negocios, desarrollo, control de
calidad y operaciones, así como de otras partes
interesadas, sobre aplicaciones en distintas fases del
Innovación, retroalimentación y mejora continua ciclo de entrega.

Planificar y medir Desarrollar y probar Lanzar y desplegar


Optimización: Se centra en obtener los datos sobre
cómo los clientes utilizan la aplicación y su
Monitorizar y optimizar realimentación.
Estos comentarios permiten que las distintas partes
interesadas tomen las medidas oportunas para
mejorar las aplicaciones y la experiencia de los clientes
Canal de
Distribución
Canal de distribución
Un canal de distribución consta de las fases a las que una aplicación debe someterse, desde
el desarrollo hasta la producción.
Entorno de desarrollo

Desarrollo

Esta fase incluye herramientas que


permiten el desarrollo colaborativo,
como por ejemplo, herramientas para la
gestión de control de fuentes, gestión de
elementos de trabajo, colaboración,
pruebas unitarias y planificación de
proyectos.
Fase de compilación

Versionar

• La fase de compilación es donde el código se


compila para crear y probar los archivos
binarios que se desplegarán
• Las organizaciones de desarrollo suelen
utilizar servidores de compilación para
facilitar el gran número de compilaciones
necesarias para la integración continua
Repositorio de paquetes

Paquetes

• Es un mecanismo de almacenamiento común de


los archivos binarios creados durante la fase de
compilación
• Estos repositorios también necesitan almacenar
los activos asociados a los archivos binarios para
facilitar su despliegue, tales como archivos de
configuración, archivos de infraestructura como
código y scripts de despliegue
Entorno de pruebas

Pruebas

• En este entorno los equipos QA realizan las pruebas reales


• Herramientas, en función de las necesidades de los equipos QA:
• Gestión de los entornos de prueba: facilitan el
aprovisionamiento y la configuración de los entornos de prueba
• Gestión de los datos de pruebas: para las organizaciones que
desean realizar pruebas continuas, es una función esencial
gestionar los datos de prueba
• Herramientas de pruebas de seguridad, rendimiento,
funcionales e integración: Estas herramientas deben integrarse
con un repositorio o herramienta común de gestión de activos
de pruebas donde todos los escenarios de pruebas puedan
almacenarse, y pueda establecerse la trazabilidad atrás hacia el
código, los requisitos y los defectos
Entornos de pre-producción y producción

Pre-Producción
Producción

• En estos entornos se incluyen herramientas de


aprovisionamiento y gestión de entornos
• Los entornos de pre-producción y producción
pueden estar compuestos por cientos o miles de
servidores basados en tecnologías de
virtualización y cloud.
Automatización de despliegue
Automatización

• Las herramientas de automatización de


despliegues son las herramientas principales del
entorno DevOps
• Estas herramientas realizan despliegues
organizados y realizan un seguimiento de qué
versión se implementa en qué nodo en cualquier
fase de la compilación y el canal de distribución
Gestión de releases
Releases

Las herramientas de gestión de lanzamientos


de versiones permiten a las organizaciones
planificar y ejecutar lanzamientos, ofrecer un
único portal de colaboración para todas las
partes interesadas en un lanzamiento y realizar
un seguimiento de una versión y sus
componentes en todas las fases de
compilación y el canal de distribución.
Tecnologías y Herramientas
Herramientas DevOps a través del Proceso

SOURCE RELEASE CONTINUOS


INSPECTION
PLAN CODE BUILD CI ANALYZE REPOSITORY TEST AND CONFIG MONITORING
DEPLOY
PLAN
• Herramientas que ayudan a gestionar la
definición y planificación.
• Características que soportan:
• Métricas de producción, objetos y
comentarios
• Requisitos
• Métricas de negocio
• Plan de release, cronograma y caso
de negocio
• Política y requisitos de seguridad
SOURCE CODE MANAGEMENT – SCM

• Es el software que coordina y


habilita la gestión de código fuente
entre los distintos desarrolladores.
• Provee de gestor de ficheros y
control de versiones para que los
programadores no crucen los
cambios entre si y se mantenga
visible siempre la versión más
nueva
BUILD
Es un gestor de dependencias, tiene la
capacidad de analizar las dependencias que
tiene el proyecto y resolverlas para
compilar posteriormente. A partir de ese
momento compilará y ejecutará los
procesos de calidad (pruebas unitarias,
integración…) que se hayan establecido. Los
beneficios son:
• Mayor control de la correcta generación
de las builds.
• Ejecución automática de los test y
comprobación de los resultados.
CI
Es un orquestador de múltiples procesos
del flujo encargado de realizar las tareas
rutinarias y comprobar si un paso del flujo
para llevar la funcionalidad a producción
ha sido correcto para disparar el siguiente.
Ejemplo: publicación en un entorno de
preproducción de una compilación
ANALYZE
Permite realizar análisis estático de código
fuente de manera automática de acuerdo a
métricas establecidas, buscando patrones con
errores, malas prácticas o incidentes.
Verificaciones comunes:
• Detección de código duplicado.
• Falta de pruebas unitarias, falta de
comentarios.
• Tamaño de archivos de código.
• Tamaño de métodos.
• No adecuación a estándares y convenciones
de código.
• Vulnerabilidades conocidas de seguridad.
REPOSITORY

Centraliza en un único sitio y en un único


espacio de almacenamiento todas las
dependencias de un proyecto y su gestión
durante los ciclos de desarrollo
TEST
Sirve para ejecutar los casos de prueba
establecidos y asegurarse de que el nuevo
código no rompe la funcionalidad recogida
en dichos casos.
RELEASE AND DEPLOY
Las herramientas de esta categoría
típicamente se dividen en dos tipos con
propósitos específicos.
• Gestión de liberación (release
management). Se enfocan en los
aspectos de gestión para asegurar que un
software está listo para ser liberado a
producción.
• Automatización de despliegue
(deployment automation). Se enfocan en
mover y activar los componentes de
software requeridos a los distintos nodos
de cómputo.
CONFIG

Las actividades de configuración se


encuentran en el lado de la operación de
DevOps.
Una vez que se implementa el software,
puede haber actividades adicionales de
aprovisionamiento y configuración de
infraestructura de TI necesarias

Actividades específicas:
• Almacenamiento de infraestructura, bases de datos,
aprovisionamiento de redes y configuración
• Aprovisionamiento y configuración de aplicaciones
CONTINUOS INSPECTION MONITORING
La supervisión es un vínculo importante en una
cadena de herramientas de DevOps. Permite a
la organización de TI identificar problemas
específicos de versiones específicas y
comprender el impacto en los usuarios finales.
Principales actividades:
• Rendimiento de la infraestructura de TI
• Respuesta y experiencia del usuario final
• Métricas y estadísticas de producción
La información de las actividades de supervisión
a menudo afecta a las actividades del Plan
necesarias para los cambios y para los nuevos
ciclos de lanzamiento
¡Gracias!

También podría gustarte