Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2
4
5
Notas del instructor:
La automatización cambia el enfoque hacia las tareas de ingeniería
Esta es una dispositiva animada. Presione la tecla Enter para avanzar la dispositiva.
Explica la matriz a los participantes tal como esta en la dispositiva.
• La Tarea para analizar se define como una extensión que cuando se encuentra con
una excepción, se conocen métodos analíticos para tratar con ello.
• La Variedad de tareas se define por el número de excepciones a los procedimientos
estándares estimulados en la aplicación de una tecnología dada.
Tipos de tareas:
• Rutinarias: Caracterizadas por la carencia de excepciones y su profundidad de
compresión. Se realiza la fabricación de tecnología tradicional, como la tarea de la
6
línea de producción que pertenecen a esta categoría.
• De oficio: Caracterizadas por la carencia de excepciones e resultados imprevisibles
que son difíciles de analizar. Las tareas de estructuración que exigen la elaboración
de nuevos diseños para resolver problemas de construcción es uno de los ejemplos
de la tecnología de oficio aplicada.
• La Ingeniería: Caracterizadas por la carencia de excepciones y su profundidad de
compresión. Los métodos estándares y aceptados están disponibles para dar solución
a los problemas. El diseño de Software y tareas de codificación pertenecen a esta
categoría. Contadores, la mayoría de ingenieros y técnicos de laboratorio usan
tecnología de ingeniería.
• No rutinarias: Caracterizadas por muchas excepciones y pobre compresión. Los
problemas aparecen frecuentemente sin ninguna solución existente. Las tareas de
Investigación y desarrollo pertenecen a esta categoría. La ingeniería espacial
comercial es un ejemplo de tecnología no rutinaria.
Esto resulta en un cambio, donde los miembros del equipo de Entrega de Software
ejecutarán principalmente las tareas con alta variabilidad y alta posibilidades de
analizar. En otras palabras, tareas de ingeniería. Esto requiere que una empresa se base
en una estructura orgánica, grandemente autónoma, multidisciplinaria, auto
organizada, y equipos de ingeniería. Las organizaciones deben aplicar los principios de
DevOps.
6
Notas del participante:
La automatización cambia el enfoque hacia las tareas de Ingeniería
Cuando los procesos son altamente programados y automatizados, resultarán con la
productividad prevista y estandarizada. Los procesos automatizados son repetitivos. El
costo del proceso de ejecución es minimizado. Joan Woodward definió la complejidad
técnica como una extensión donde el proceso de producción puede programarse y por
tanto se puede controlar y volverse previsto. En otras palabras, la automatización
resulta con la productividad prevista y estandarizada. Estos conceptos se pueden aplicar
a los procesos de entrega de Software.
7
Notas del participante:
8
• Escribir código
• Escribir casos de prueba
• Compilar código
• Código de prueba
Esta es una diapositiva animada. Pulse la tecla Enter para avanzar la diapositiva. Esta
diapositiva visualiza la implementación de un paquete de software versionado en varios
entornos. Explique a los participantes que la capacidad de implementar el mismo
paquete versionado en varios entornos es importante. Los entornos deben ser
coherentes y los parámetros de configuración específicos deben ser externalizados
utilizando archivos de configuración / diccionarios. Estas capacidades garantizan un
comportamiento uniforme en los entornos y la trazabilidad.
8
Notas del instructor:
Antes de presentar la diapositiva en la clase, pregunte a los participantes cuáles son los
beneficios de la automatización del despliegue. Animar a los participantes a participar
en la discusión y resumir los resultados.
9
Notas del participante:
DevOps permite que los equipos se enfoquen en el Valor de Entrega
El desarrollo de tecnología ha resultado en más y más tipos de tareas que hoy en día
pueden ser automatizadas fácilmente. La automatización, combinada con otros
principios de DevOps garantiza que los equipos se enfoquen en la entrega de valor. Este
deseo de enfoque es el primero de los 14 principios enlistados en el Manifiesto Ágil:
“Nuestra máxima prioridad es satisfacer a los clientes a través de la Entrega Continua y
temprana del valioso Software”. Los equipos se deberían enfocar en entregar valor
empresarial y todo lo que entorpece debe ser eliminado. La automatización se puede
aplicar en muchas actividades en el proceso de entrega del Software. Como resultado,
los equipos de DevOps se enfocan más en las tareas de ingeniería requeridas para la
entrega del valor de Software. Adicionalmente, pueden utilizar la entrega de proceso de
Software el cual Entrega Continuamente nuevas características de Software utilizado un
flujo de optimización.
10
Notas del Instructor:
Por favor explicar los conceptos claves de la definición de la Entrega Continua.
Los equipos que han adoptado la Entrega Continua definida por las características
enlistada en la definición de Jez Humble son altamente efectivas. Han tenido éxito en
lograr:
• Aumentar la velocidad y repetitividad en la automatización
• Agilidad como no hay WIP.
• Flujo en la entrega.
• Manera autónoma de funcionar.
• Hacer las cosas correctas de la manera correcta.
11
Notas del Instructor:
Preguntar a los participantes de los beneficios de la Entrega Continua, que han
observado en su organización. Debate las ventajas claves en la clase.
• Económico porque:
• La elaboración de la tarea automatizada es más fiable que la elaboración de tareas
12
manuales. Los errores en la elaboración manuales son caras y no se podrían
detectar inmediatamente.
• La elaboración de la tarea automatizada es más repetitiva que las tareas de las
elaboración manuales.
• La elaboración de la tarea automatizada no requiere esfuerzo humano (que es más
caro que las maquinaria de tiempo).
• La elaboración de la tarea automatizada necesita estandarización, basados en
mínimos requerimientos. Cada variación requiere procesos y mantenimiento
precisos.
Superior porque:
• La elaboración de la tarea automatizada es predecible, estandarizada, fiable y los
resultados son repetitivos.
• Automatización elimina errores en la elaboración de tareas manuales.
• Automatización (con automatización de prueba) resulta en un rápido feedback, los
defectos son detectados lo más temprano posible.
• Automatización permite evaluación de medidas determinadas de la presentación del
Software entregado.
No es solamente automatización
Sin embargo, automatización existente de las tareas y procedimientos para los
tradicionales procesos de proyectos-determinados y de organizaciones no resultaría en
las características de definición de Entrega Continua. Automatización no solo es una
implementación de actividad técnica. equipos específicos con capacidad, actitud,
agilidad y principios Lean, y comportamiento son requeridos para implementar
exitosamente la Entrega Continua. Estos requerimientos de no automatización deben
de llevar a la actual necesidad de la tarea de automatización e implementación de la
tarea de automatización. Los principios y técnicas fueron en gran parte tratados en el
modulo 5.
12
agregado en las actividades de ingeniería, como escribir códigos para un nueva
función. El equipo identifica pro-activamente y elimina manuales de tarea de suporte
de entrega rutinaria usando automatización.
• El equipo trabaja juntos como una unidad de entrega altamente efectivo, predictible,
con resultados altamente de calidad.
• El equipo se asegura las presentaciones son entregadas correctas desde el primer
comienzo, listas para producción. Que la calidad son este afectada.
• El equipo mejora la velocidad, calidad, fiabilidad, y repetitividad de los procesos
usando automatización.
• El equipo aplica mejora de nomás continuadas. El equipo mide el impacto de las
entregas de las presentaciones, para asegurarse que las mejoras están basadas en
medidas (negocios) resultados (feedbacks).
• El equipo se asegura que las presentaciones requieren esfuerzo limitado para que
sean entregados y lanzados rápidamente en producción.
12
13
Notas del participante:
Entrega Continua puede ser adoptada con tres bases principales:
• Automatización Rigurosa: automatización de entrega de actividades del software,
como ejecución de pruebas y resultados de despliegue, hace que el proceso de
entrega del software sea rápida, económica, y superior. Ejecución de tareas de
automatización no requieren interacción de tiempo en las maquinas manuales
(humano), elimina tiempo de espera como resultado de dependencia en las tareas
manuales , y elimina la necesidad de tareas manuales de la ejecución de las
actividades de validación. Resultados de Automatización son altamente fiables,
repetibles, procesos estandarizados que transforman ideas de negocio en software
funcional en producción.
14
entrega del software y su (software) producto.
14
Notas del participante:
Efectivamente, integración continua es parte de la entrega continua. Dentro de un
proceso de entrega de automatización continua, la integración continua abarca
mayormente la etapa de desarrollo.
Hay una sutil diferencia entre la Entrega Continua y despliegue continuo. Donde la
Entrega Continua tiene un explicito (manual) lanzamiento en la decisión de producción.
Con el Despliegue Continuo , los lanzamientos son automáticamente impulsados a
producción. No hay una decisión humana en el lanzamiento. Desde una perspectiva de
implementación, la Entrega Continua y Despliegue continuo no son realmente
diferentes, ya que la automatización es impulsada a la producción, esta no es difícil de
implementar cuando el software esta hasta ahora impulsado y automáticamente
validados en todos los entorno de prueba.
15
16
17
18
19
Notas del participante:
La entrega continua puede ser adoptada usando seis temas de enfoque. estos son:
• Organización Ágil: Una organización Ágil adopta principios Ágil y Lean combinado
con autonomía, grupos multidisciplinarios. Una organización DevOps con su cultura y
principios, como ya tratado en los módulos anteriores, representa tal ágil
organización y mas.
• Estructura Automatizada: Estructura automatizada esta definida como el proceso
de automatización para transformar cambios en los códigos (comprometida por los
miembros del grupo), automáticamente para la publicación de despliegue de
artefactos, listo para desplegar, y validación en (pruebas) ambientes en una manera
consistente.
• Prueba automatizada: pruebas automatizadas involucra la ejecución de la prueba
automatizada de las pruebas de especificaciones/ pruebas de scripts. Ejemplo de
pruebas son: código estático de calidad de análisis, pruebas unitarias, pruebas
funcionales, y pruebas de carga.
• Despliegue automatizado: Despliegue automatizado es definido como el proceso
para desplegar automáticamente el despliegue de artefactos publicados para la
aplicación de ambientes. Esto incluye pasos para mover despliegue de artefactos
para obtener maquinas (virtual) y pasos para configurar estos ( maquinas virtuales)y
otros servidores/componentes usados por el software.
• Provisión Automatizada: Provisión automatizada se asegura que los componentes,
como la red de componentes, servidores de componentes, y tiempo de ejecución del
20
software se apile , de (pruebas) ambientes que puedan ser creados en demanda
usando un completo sistema de automatización (sistema de aprovisionamiento).
• Arquitectura: La Arquitectura (s), definida en todos los niveles (por ejemplo,
empresa, negocios, aplicación, y técnica) o bien se amplia o perjudica la habilidad de
optimizar el proceso de entrega del software de los grupos. Por ejemplo fuerte
acoplamiento entre grupos resultando en baja autonomía de grupos debido al cruce
de dependencia. Otro ejemplo la arquitectura del software determina la complejidad
de adoptar cambios de código del software.
20
Notas del Instructor:
Explicar el proceso de optimización del desarrollo del Software a los participantes como
se muestra en la diapositiva.
21
que ser llevado a efecto.
• Finalmente, la prueba de tiempo de ejecución y ambientes de producción son
implementadas y manualmente mantenidas.
Para incrementar la fluidez en el proceso, las barreras y perdidas de la fluidez tienen que
ser eliminadas. Por ejemplo:
• No se puede tener una alta cantidad de fluidez sin una rigurosa automatización del
proceso de entrega del Software (Entrega Continua Principio de Base 1),
• Si la (esperado) frecuencia del manual (rutina) de ejecución de tarea es raro en un
momento dado en el proceso de entrega del Software, la ejecución manual de estas
tareas pueden ser justificadas. Un plan de proyecto de un proyecto de tres meses,
puede incluir una cantidad limitada de iteraciones para el despliegue de tarea. Por
ejemplo una iteración para el despliegue de producción de ambientes y menos de
cinco iteraciones para la prueba de despliegue de ambientes. Imagínese que desea
lanzar a producción semanalmente o más. La repetición de la ejecución de
despliegue de tareas serán significativamente más altas. La ambicion de lanzar más
seguido te presiona a tener otra perspectiva en el proceso de entrega del Software.
21
Notas del Instructor:
Explicar el proceso de optimización del desarrollo del Software a los participantes como
se nuestra en la diapositiva
22
Notas del participante:
Un optimizado proceso de entrega del Software es vital para el desempeño grupal de
DevOps. Estos procesos integran un circulo de rápido feedbacks y reiterar las
características de la entrega del Software.
23
Notas del Instructor:
Esta es una diapositiva animada. Presione la tecla Enter para avanzar la diapositiva.
Enseñara ejemplos de feedback (ver las notas de participante) graficado en la parte
superior de la fluidez del proceso de entrega del Software. La fluidez del proceso de
entrega del Software es definida por los rectángulos redondeados y flechas azules.
24
automatizado del usuario con la funcionabilidad de los resultados de prueba o
resultados de prueba de carga automatizada.
• Feedback del Cliente: Por ejemplo, ingreso/tasa de conversión.
24
Notas del Instructor:
Preguntar a los participantes de lo que han absorbido del método de la Entrega
Continua. Resume los debates con temas planteados por los participantes.
25
Notas del instructor:
DevOps versus la Entrega Continua
Anima a los participantes a leer los siguientes libros:
Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment
Automation (Addison Wesley Signature Series) por Jez Humble y David Farley.
The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win
(Hardcover – Importación, 10 de enero del 2013 por Gene Kim, Kevin Behr, y George
Spafford.
26
• La Arquitectura abarca no solamente en las aplicaciones e infraestructuras del paisaje
de TI, sino también abarca aspectos de organización.
Los principios base de la Entrega Continua combinados con los conceptos de temas
centrados estrechamente combina con los principales de DevOPS. Por ejemplo, los
principios clave de DevOps son:
• El Software solo es valioso cuando se encuentra en la etapa de producción
• Unificar la responsabilidad del producto
• De inicio a fina (ciclo de vida completo). La ideología es “Tú lo construiste,, tú lo
ejecutas”
• La completa automatización une la continuidad e innovación
• Lean y la Mejora Continua implica nuevas retrospectivas para evaluar
• Cultura de colaboración y compartir entre equipos.
La Entrega Continua y DevOps acepta los principios, conceptos e implementaciones
incluso cuando no existe un mismo origen y cada de una de ellos se enfoque en ciertos
temas o aspectos. Por esta razón, DevOps y la Entrega Continua deben considerarse
juntos como un complemento de cada uno. La Entrega Continua no se debe observar
como parte de DevOps o de alguna otra manera.
26
Notas del instructor:
Una vez que un miembro del equipo realiza una serie de cambios de código, estos
pueden fusionarse, analizarse, compilarse, probar unidades y agruparse
automáticamente. El proceso automatizado de estructuración puede crear un nuevo
27
paquete de implementación y publicarlo en un archivo de artefactos. De esta manera,
se puede implementar un flujo continuo desde el código comprometido hasta el
paquete de despliegue validado.
• Sistema de control de versión de origen: Por ejemplo, Git, Gitlab, GitHub, Atlassian
Stash, Subversion
• Servidor de integración continua: Por ejemplo, Atlassian Bamboo, Jenkins
• Análisis y Reporte de Calidad de Código: Por ejemplo, Sonarcube
• Archivo de artefactos: Por ejemplo, Nexus o Artefactory
• Herramientas de estructuración: Por ejemplo, Maven, Gradle, Grunt, NPM, Bower,
Ant, Gulp
• Análisis estático: Por ejemplo, FindBugs, CheckStyle, PMD, PHPMD.
• Prueba de unidad de marco: Por ejemplo, Junit y Karma
27
Antipattern: Deploying Software Manually
La mayoría de las aplicaciones modernas de cualquier tamaño son complejas de
implementar, Muchas organizaciones lanzan el software manualmente. Con esto
queremos decir que los pasos requeridos para implementar tal aplicación son tratados
como separados y atómicos, cada uno realizado por un individuo o equipo. Los juicios
deben hacerse dentro de estos pasos, dejándolos propensos al error humano. Incluso si
esto no es el caso, las diferencias en el orden y la oportunidad de estos pasos pueden
conducir a resultados diferentes. Estas diferencias rara vez son buenas.
28
cambio a Configuración de conexión de base de datos o un aumento en el número de
subprocesos en un grupo de subprocesos en un servidor de aplicaciones, se realiza
manualmente en los servidores de producción. Si se mantiene un registro de tal cambio,
es probablemente una entrada en una base de datos de gestión de cambios.
28
29