Certificacion DevOps Master PDF
Certificacion DevOps Master PDF
Certificacion DevOps Master PDF
Bienvenida e Introducción
Temas Básicos
Bienvenida e Introducción 3
Registro, Asistencia y Evaluación
Asistencia Controlada
Curso Evaluado en la Ultima Sesión
Alumno Evaluado en la Ultima Sesión con un Examen
Para aprobar el curso se debe aprobar este examen
Diploma por Asistencia/Aprobación
Independiente de la evaluación se puede optar a la
Certificación
La Certificación puede ser realizada en cualquier
institución acreditada
Bienvenida e Introducción 4
Horario de Clases en Modalidad 6 Sesiones
Cinco Sesiones
Inicio: 18:00 hrs.
Término: 22:00 hrs.
Un break de 0:15 hrs. por sesión
Bienvenida e Introducción 5
Celulares, Tablets y Notebooks
Dedicados al curso
Si van a estar en el trabajo en otro lado … mejor no estén el curso
Bienvenida e Introducción 6
Principios Básicos
Bienvenida e Introducción 7
Kit del Participante
La correcta preparación para aprobar el examen comienza con una revisión cuidadosa de la Guía
de Preparación del Curso
Bienvenida e Introducción 8
Antes de Comenzar …
Principios Básicos
Intentar pasarlo bien aprendiendo
Buenas vibras
Cubrir lo básico
Afianzar lo aprendido
Pensar y actuar
¿Preguntas?
Bienvenida e Introducción 9
Agenda del Curso en Modalidad de 5 Días
DIA 1
Bienvenida
Módulo 1: Adopción de DevOps
DIA 2
Módulo 2: Planificación, Requerimientos y Diseño
DIA 3
Módulo 3: Desarrollo y Despliegue
DIA 4
Módulo 4: Operación y Escalado
Módulo 5: Fin de la Vida Útil
DIA 5
Módulo 6: Actividades Prácticas
Módulo 7: Preparación de Examen
Cierre
Bienvenida e Introducción 10
Certificación DevOps Master
Objetivos y Agenda del Curso
Esta certificación pretende aportar competencias prácticas al conocimiento con el fin de que una
persona con la certificación DevOps Master pueda implementar el modelo DevOps de forma
satisfactoria en un equipo y promover sus principios en la empresa.
B Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment
Automation
Jez Humble, David Farley
ISBN-13: 978-0321601919 or ISBN-10: 0321601912
Addison-Wesley Professional; 1 edition (August 6, 2010)
E Other sources:
http://newrelic.com/devops
http://devops.com/
DevOps tiene como objetivo establecer una cultura y un entorno donde construir, probar y liberar
software y servicios puede ocurrir rápidamente, con frecuencia y con un mínimo de apoyo, con el
fin de aumentar continuamente la ventaja del negocio y la satisfacción del cliente.
1 MENTALIDAD DEVOPS
Hay varios anti patrones comunes que impiden un proceso de versión fiable, sin embargo son tan
comunes como para ser norma en nuestra industria.
Otros anti-patrones:
Cultura de la culpa
Silos
Análisis de causa raíz - se centran en una causa raíz en lugar de muchos factores contribuyentes
Error humano - el error humano siempre está dentro del contexto, no culpar a un individuo
Diseño
Diseño,
Construcción,
Constru Setup del Prueba, Setup del
cción Deploy
Release Release, Deploy,
Feedback
Prueba
2 ANTI PATRONES
Un negocio sostenible y exitoso es más que los equipos de desarrollo y operaciones. Limitar
nuestro pensamiento sólo a aquellos equipos que escriben software o lo implementan en
producción puede arriesgar a todo el negocio.
El Informe 2015 State of Devops, publicado por Puppet, encontró que las empresas que están
haciendo DevOps superan a los que no lo hacen. Que el énfasis en tener equipos e individuos
trabajando juntos es mejor para los negocios que los silos llenos de ingenieros que no juegan bien
con otros. Las organizaciones de alto desempeño desarrollan el código con más frecuencia, tienen
menos fallos, se recuperan de esos fallos más rápido y tienen empleados más felices. Tendencia de
centrarse en los resultados más que en las personas y los procesos.
Centrarnos en la cultura y los procesos estimula la iteración y la mejora de cómo y por qué
hacemos las cosas. Cuando cambiamos nuestro enfoque de qué a por qué, se nos da la libertad y
la confianza para establecer la significación y el propósito de nuestro trabajo, que es un elemento
clave de la satisfacción en el trabajo.
La introducción de DevOps ha cambiado nuestra industria centrándose en las personas y los
procesos a través de los papeles para alentar la colaboración y la cooperación, en lugar de competir
con la especialización.
Como dijimos, nuestro objetivo como profesionales de software es entregar software útil y de
trabajo a los usuarios lo más rápido posible. La velocidad es esencial porque hay un costo de
oportunidad asociado con la no entrega de software. Sólo puede empezar a obtener un retorno de
su inversión una vez que su software se libera.
DevOps no es sólo soporte IT. La exploración de DevOp también se utiliza para apoyar la
estrategia del negocio y para mejorar procesos del negocio.
Las empresas que utilizan DevOps están superando a los que no lo usan
Cambiar el enfoque de qué a por qué - cuestionar, innovar, colaborar
Repetible, confiable y predecible
Respuesta más rápida a las necesidades empresariales
Mayor rentabilidad de la inversión en software
Los principios de DevOps también pueden aplicarse al negocio
El software que creamos no existe por separado de las personas que lo utilizan y de las personas
que lo crean. Devops trata de encontrar maneras de adaptarse e innovar la estructura social, la
cultura y la tecnología para trabajar más eficazmente.
Existen muchas metodologías de desarrollo de software, pero se centran principalmente en la
gestión de necesidades y su impacto en el esfuerzo de desarrollo. Hay muchos libros excelentes
que cubren en detalle diferentes enfoques para el diseño, desarrollo y pruebas de software; pero
cubren sólo un fragmento de la cadena de valor que entrega valor a las personas y organizaciones
que patrocinan nuestros esfuerzos.
¿Qué sucede una vez que se identifican los requisitos, las soluciones diseñadas, desarrolladas y
probadas?
¿Cómo se unen y coordinan estas actividades para hacer que el proceso sea tan eficiente y
confiable como podamos hacerlo?
¿Cómo podemos permitir que los desarrolladores, probadores, personal de construcción y
operaciones trabajen juntos de manera efectiva?
DevOps describe un patrón eficaz para obtener el software desde el desarrollo hasta la liberación.
Describimos técnicas y prácticas recomendadas que ayudan a implementar este patrón y muestran
cómo este enfoque se relaciona con otros aspectos de la entrega de software.
El patrón central es la canalización (pipeline) de despliegue. Una canalización de despliegue
es, en esencia, una implementación automatizada del proceso de creación, implementación, prueba
y liberación de la aplicación. Cada organización tendrá diferencias en la implementación de sus
pipeline de despliegue, dependiendo de su valor
DevOps es un movimiento cultural que cambia la forma en que los individuos piensan acerca de su
trabajo, valora la diversidad del trabajo realizado, apoya procesos que aceleran la valorización de
las empresas y mide el efecto del cambio social y técnico. Es una forma de pensar y una forma de
trabajar que permite a individuos y organizaciones desarrollar y mantener prácticas de trabajo
sostenibles.
Es un marco cultural para compartir historias y desarrollar empatía, permitiendo a personas y
equipos practicar sus actividades de manera efectiva y duradera.
Uno de los fundamentos del es la necesidad de retroalimentación rápida.
DevOps no es una sola herramienta, metodología, conjunto de habilidades u organización. DevOps
es un marco que combina todas estas para que las organizaciones establezcan procesos de flujo
continuo que permitan al negocio operar más rápido y reaccionar a los cambios más rápidamente.
DevOps también puede permitir la madurez utilizando el Ciclo Plan-Do-Check-Act de Deming.
DevOps no sólo es una mejora del desarrollo ágil y entrega continua, sino también la gestión de
servicios de TI y gestión de aplicaciones para permitir el crecimiento del negocio y mantener la
continuidad del negocio.
Frecuente entrega de código utilizable, moviéndose hacia implementaciones más pequeñas, más
frecuentes en lugar de grandes, infrecuentes;
Mejora reflexiva, o utilizando reflexiones sobre lo que funcionó bien y lo que funcionó mal en
trabajos anteriores para ayudar a guiar el trabajo futuro; y comunicación osmótica entre los
desarrolladores -la idea de que si los desarrolladores están en la misma sala, la información fluirá a
través del fondo para ser recogida informalmente, como por ósmosis.
XP es el desarrollo ágil que fue diseñado para ser más sensible a los requisitos cambiantes que las
metodologías de software de desarrollo anteriores, y es reconocido por sus ciclos de lanzamiento
cortos, pruebas extensas y programación de pares.
Los practicantes de DevOps han descubierto que para alcanzar estos objetivos -bajo tiempo de
ciclo y alta calidad- se necesita hacer liberaciones frecuentes y automatizadas del software.
• Mejora continua
• Eliminación de
Lean actividades
innecesarias
Agile
• Respuesta a las necesidades
cambiantes
Devops
• Ciclos de liberación más
cortos
• Colaboración
Módulo 1 Adopción de DevOps 42
ACTIVIDAD [PAGINA 2]
3 CASO DE NEGOCIO
4 LOS 4 PILARES
La combinación de loa cuatro pilares permitirá abordar los aspectos culturales y técnicos de la
organización. Tiene sentido que la organización se centre en uno o dos pilares a la vez mientras
intenta hacer cambios, pero en última instancia, es la combinación de los cuatro trabajando juntos
lo que permitirá un cambio duradero y efectivo.
Es importante no pasar por alto los dos primeros pilares, que cubren las normas y valores de
culturales y las interacciones interpersonales, en vez de saltarse directamente a las herramientas o
al escalado.
El uso efectivo de herramientas es necesario para una transformación de DevOps exitosa, pero no
suficiente, si fuera el caso, podríamos simplemente usar una lista de las mejores prácticas para
Chef o Docker. Sin embargo, para la resolución de los conflictos interpersonales e inter temas que
surgen dentro de las organizaciones es fundamental fomentar las relaciones duraderas que en
última instancia, se logran en un ambiente de DevOps.
Se debe buscar:
Aprender de los errores, no culpar
Retroalimentación positiva, frecuente y constructiva
Comunicación, escucha activa
Las mentalidades son nuestras creencias personales sobre nosotros mismos, y cómo nos
acercamos a nuestras posibilidades.
Con una mentalidad fija, las personas creen que los talentos y habilidades son rasgos innatos y
fijos, o bien son naturalmente buenos en algo o no lo son, y ese estado es inmutable.
En una mentalidad de crecimiento, los talentos y habilidades se aprenden y mejoran con
esfuerzo y práctica.
Las mentalidades pueden tener un gran impacto en la forma en que la gente trabaja, aborda
desafíos y lidia con el fracaso.
5 MENTALIDAD
Colaboración
Alcanzar
Devops
Confianza los Mindset
objetivos
Empatía
6 SUPERHEROES
El capital social, o el valor de las redes sociales de las personas y las interacciones, funcionan a
través de un mayor flujo de información, reciprocidad y utilidad, e interdependencia y confianza.
Un equipo que se centra en torno a un empleado de superestrella, donde la ayuda y la información
es probable que fluyan sólo en una dirección, no presenta interdependencia, y es probable que
haya muy poca confianza.
El capital social toma tiempo para desarrollarse, y sus beneficios se hacen cada vez más evidentes
a medida que avanza el tiempo.
Para conseguir equipos productivos y las organizaciones que queremos, debemos dejar de
centrarnos en los empleados de la "superestrella" que erosionan la confianza y el capital social, y
en cambio nos centramos en la empatía creciente entre nuestros equipos existentes y trabajando
hacia la cooperación en lugar de la competencia.
Para que un equipo trabaje mejor hacia sus metas, sus miembros deben ser capaces de trabajar
juntos.
Los equipos con más colaboración son más productivos en su conjunto, así como vistos más
favorablemente por sus miembros
Debido a que una menor rotación suele ser mejor para la moral y la productividad del equipo, se
trata de un ciclo de refuerzo positivo.
Colaboración 1
Responsable individual
Coordinación de otros
Colaboración 2
Dos o más trabajando juntos
Trabajando continuamente hacia el objetivo
Ambos son métodos válidos apropiados para diferentes escenarios.
Muchos conceptos erróneos acerca de la colaboración en última instancia tienen que ver con las
preocupaciones acerca de cuánta gente está dispuesta o es capaz de aprender y crecer dentro de
sus roles o en la organización en general.
Las nuevas habilidades requieren tiempo y práctica para todos. No asuma que cualquier persona
mayor que usted, diferente de usted, o con un fondo diferente del suyo es incapaz de aprender.
7 PROBLEMAS
Cada uno de nosotros tiene un fondo cultural diferente con experiencias únicas que informan
nuestras opciones de cómo y por qué trabajamos.
Respetar nuestras diferencias individuales puede ayudar a construir la comprensión mutua y
resolver conflictos de una manera que es crucial para el compacto de DevOps.
Hay grandes beneficios que pueden obtenerse de diversos equipos en términos de creatividad,
resolución de problemas y productividad, pero esta diferenciación puede conducir a conflictos
interpersonales a corto plazo, ya sea personal o profesionalmente.
Aumentar la diversidad de un equipo significa asegurar una gama más amplia de antecedentes
personales.
Incluyendo aspectos como el género, la sexualidad, la raza, la clase, el idioma primario, la habilidad
y el nivel educativo, diversos antecedentes personales pueden aumentar la fuerza de una
organización basada en la ingeniería, centrada en el producto o en el apoyo al cliente al aportar un
mayor número de experiencias y puntos de vista a la mesa.
Una fuerza laboral diversa beneficia a los equipos, las organizaciones y la industria en su conjunto.
Los estudios han demostrado que los equipos más diversos a menudo verán más conflictos en el
corto plazo, estos efectos se equilibran no sólo por el hecho de que la creatividad y la solución de
problemas beneficios a largo plazo superan estos costos, sino también por el hecho de que el
equipo Los miembros aprenderán a colaborar y trabajar bien con una variedad más amplia de
personas.
Devops no está tan rígidamente definido como para prohibir cualquier metodología en particular.
Si bien DevOps nace de la administración del sistema Ágil y la cooperación entre los equipos de
desarrollo y operaciones, los detalles de su práctica son únicos por medio ambiente. Una parte
clave de DevOps es poder evaluar y evaluar diferentes herramientas y procesos para encontrar los
más eficaces para su entorno.
Cascada - Las etapas originales fueron la especificación de requisitos, diseño, implementación,
integración, pruebas, instalación y mantenimiento, y el progreso fue visualizado como fluyendo de
una etapa a otra (de ahí el nombre).
Valores ágiles:
Individuos e interacciones por sobre procesos y herramientas
Software que funciona por sobre documentación
Colaboración del cliente por sobre la negociación del contrato
Respuesta al cambio por sobre el seguimiento de un plan
Devops adopta y extiende los principios ágiles y los aplica a toda la organización, no sólo al proceso
de desarrollo.
Devops tiene implicaciones culturales
Más allá de Agile y un enfoque que es más amplio que la velocidad de entrega.
ITSM apoya la disponibilidad continua y el mantenimiento de los servicios para asegurar la entrega de
valor y los resultados deseados del servicio
Procesos tales como:
Gestión de Incidentes y Problemas
Disponibilidad y gestión de la continuidad del servicio
Gestión de Niveles de Servicio
Gestión de proveedores
Mejora continua
La metodología más utilizada es ITIL® que cubre la estrategia de servicio, el diseño del servicio, la
transición del servicio, la operación del servicio y la mejora continua del servicio
(Aptitud para el propósito) de un servicio. Si la continuidad del servicio no puede ser mantenida y /
o restaurada de acuerdo con los requisitos del negocio, entonces el negocio no experimentará el
valor que se ha prometido. Sin continuidad la utilidad (aptitud para el propósito) del servicio no
puede ser alcanzada.
Es necesario pensar en cómo reducir la carga de trabajo de gestión. Es necesario realinear ITSM
para DevOps, creando ITSM ligero que está estrictamente centrado en la continuidad del negocio
con un conjunto de información mínima requerida (MRI). El MRI fijado para cada organización
depende de su negocio.
8 ITIL y DevOps
LEAN
Busca la maximización del valor del cliente y la minimización de los residuos
Cuando usar
• Para mostrar un cuadro general del proceso de
punta a punta
• Para identificar fuentes de desperdicio
• Para identificar problemas y mejoras
• Para presentar un marco común de discusión
Se muestra cada
Se muestra el tiempo real del paso del proceso
Se muestra información acerca de los proceso vs el tiempo de valor con su
tiempos del proceso descripciòn
9 VSM
¿Qué principio de DevOps aboga para renovar la forma de prestación de servicios de los equipos ?
a) Automatizar todo lo que pueda
b) Mejora continua
c) Crear con el fin en mente
d) Equipos autónomos multifuncionales
¿Cuáles son las razones clave que debe incluir al crear un caso de negocio para DevOps?
1. Eliminar los desechos rompiendo los silos.
2. Expandir la cartera de productos a los clientes.
3. Aumentar el rendimiento.
4. Impulsar la innovación y la creatividad de sus empleados.
a) 1, 2 y 3
b) 1, 2 y 4
c) 1, 3 y 4
d) 2, 3 y 4
¿Qué aspecto de la fuerza de motivación facilita a los miembros del equipo para actuar más oportuna
y eficazmente?
a) Autonomía
b) Dominio
c) Propósito
d) Autonomía y dominio
¿Qué elemento cultural de DevOps requiere que los equipos descarten métodos improductivos e
inventen métodos más optimizados?
a) Mejora Continua
b) Valor
c) Experimentación
d) Armado de Equipos
¿En qué fase del método DMAIC se garantiza que las partes interesadas acuerden el alcance de un
problema determinado?
a) Analizar
b) Definir
c) Mejorar
d) Medir
¿Cuáles son las pautas arquitectónicas para el uso del micro servicios?
a) Construir una aplicación compuesta por el menor número posible de servicios.
b) Construcción de servicios que sean capaces de entregar valor comercial independiente de
otros servicios.
c) Construcción de servicios con alto acoplamiento y baja cohesión.
d) Construcción de aplicaciones con un gran número de módulos pequeños.
¿Cuáles de los siguientes temas requieren información para configurar un equipo DevOps?
a) Cliente, pila tecnológica, conocimiento
b) Cliente, organización, arquitectura
c) Punto de desacoplamiento, conocimiento, arquitectura
d) Modelo operativo, gobernanza, cliente
Hay muchos libros sobre DevOps, pero desafortunadamente, la mayoría describe el uso de DevOps
para el desarrollo web y de productos. Hay muy poca información sobre el uso de DevOps para el
sistema empresarial.
Las empresas poseen tanto el Sistema de Compromiso (SoE) como el Sistema de Registro
(SoR).
El SoE se centra en la velocidad.
El SoR se centra en la continuidad del negocio.
El problema es cómo el SoR puede adaptarse rápidamente a los cambios en el SoE para mantener la
continuidad del negocio. Gartner lo llama el desafío Bimodal.
El SoR en la mayoría de las empresas está luchando con el uso de aplicaciones / sistemas heredados
y puede ser ayudado con el uso de DevOps que construye procesos alineados por flujo con conceptos
just-in-time (JIT).
DevOps para los Sistemas Empresariales no sólo es una mejora del desarrollo ágil y entrega continua,
sino también la gestión de servicios de TI y gestión de aplicaciones para permitir el crecimiento del
negocio y mantener la continuidad del negocio.
El objetivo de DevOps es establecer procesos de negocio just-in-time (JIT) alineados en flujo. DevOps
tiene como objetivo maximizar los resultados del negocio, aumentar las ventas y la rentabilidad,
mejorar la velocidad del negocio o minimizar los costos operativos al alinear los procesos
empresariales just-in-time (JIT).
DevOps significa establecer la cadena de suministro de servicios de TI en el negocio de la misma
manera que la cadena de suministro para otros productos está incrustada en el negocio. Es un gran
cambio de paradigma desde la entrega de software hasta la prestación de servicios de TI.
Desde una perspectiva de arquitectura, DevOps necesita establecer un sistema de despliegue rápido
automatizado. Hay muchas metodologías y herramientas que pueden ser utilizadas. DevOps no tiene
una plantilla para la implementación; Cada organización tiene que pensar y construir su propio
proceso de DevOps para mejorar el negocio. Por lo tanto la comprensión de los conceptos de DevOps
es importante para el personal para llevar a cabo los procesos de manera eficiente siguiendo los
procesos correctos.
Un equipo de desarrollo Agile disciplinado es clave para el éxito de una implementación de DevOps.
Un ciclo de lanzamiento más frecuente y más rápido de los servicios de TI para reaccionar ante los
cambios del negocio depende de la velocidad de desarrollo. La calidad del trabajo es el elemento más
importante y esto puede ser apoyado dividiendo el trabajo en pequeñas tareas
El concepto de Ji-Koutei-Kanketsu (JKK) ³, que significa el 100% de la terminación de un artículo,
ayuda a mantener una alta calidad de trabajo. La Definición de Hecho o finalización debe definirse
claramente para todos. El propietario del producto puede cambiar su misión de no sólo la gestión de
atrasos de productos, sino también la planificación de los costos de operación del servicio de TI que
fue hecho por los ingenieros en jefe de Toyota.
La creación de una cadena de suministro de servicios de TI alineada es difícil porque hay muchos
elementos y es necesario cambiar su mentalidad del ciclo de desarrollo existente familiar y sus
metodologías.
Los conceptos de TPS, que incluye JIT y automatización, pueden ayudar.
JIT significa construir una cadena de suministro con flujo de una pieza. Y la automatización significa
automatizar todo lo posible y detener todo el proceso cuando se produce un defecto. El proceso debe
ser diseñado y el personal educado para los dos conceptos anteriores.
La otra cuestión clave es el ciclo de gestión de Desarrollo y Operación. Esto necesita ser cambiado
para trabajar de una manera ágil incluyendo la sincronización entre el desarrollo y la operación sobre
una base semanal o diaria.
Dirige el equipo y facilita, este papel es el mismo que "Scrum Master" en Scrum. Implementa el
control visual a lo largo de todo el proceso y tiene un fuerte énfasis en establecer un proceso fluido
con flujo de una sola pieza.
Control visual significa "¿Todo el mundo entiende fácilmente la situación simplemente mirando las
tablas sin explicación?" No muestra el estado. Se puede expresar los problemas ocurridos o no.
Experiencia requerida: Scrum Master, Agile Project Leader.
Supervisar los servicios en el proceso de despliegue y tratar los problemas con el servicio durante su
ejecución.
Supervisa el estado del proceso para asegurar que el equipo de desarrollo esté siguiendo
estrictamente las reglas de CI (Continuous Integration) y CD (Continuous Delivery).
Supervisar y administrar el flujo de tuberías de construcción complejas.
Tenga una misión para mejorar el proceso de la prueba.
Experiencia requerida: Pruebas, Herramientas, Garantía de calidad.
Uno de los factores clave de éxito para DevOps es la construcción de un equipo ágil disciplinado. Los
equipos ágiles disciplinados se comprometen a cumplir con los planes de lanzamiento y la calidad con
un ritmo sostenible.
Experiencia requerida: Desarrollo, Ágil.
Adoptar ITSM ligero y apoyar el diseño, implementación, operación y mejora de estos servicios dentro
del contexto de una estrategia global.
Utilizar "* KAIZEN Advance" ⁷ que es una práctica de KAIZEN en TPS.
Experiencia requerida: Operaciones, KAIZEN.
Es útil organizar el equipo de DevOps en una oficina de administración de servicios para dar soporte
al maestro de servicio.
Hay dos tipos de estructura organizativa recomendadas:
Agrupando expertos y asignándolos a cada uno de los maestros de servicio como un equipo.
La idea para esta organización matricial vino del Jefe-Ingeniero en TOYOTA.
Para crear procesos fluidos, JKK es el método más efectivo para guiar el comportamiento del equipo
de DevOps.
JKK es una forma de trabajar con calidad que significa una comprensión clara de los objetivos, la
comprensión de la forma correcta de trabajar, conseguir el trabajo correcto para completar el 100% y
luego mantener la calidad necesaria sin inspecciones.
El servicio de TI tiene una estrecha relación con la estrategia y el plan de negocio. El maestro de
servicio debe asistir a las sesiones de planificación de negocios y hacer recomendaciones sobre cómo
obtener ventajas empresariales de los servicios de TI.
El maestro de servicio debe discutir con el negocio cómo obtener ventajas de los servicios de TI. El
maestro de servicio identifica a los clientes de los servicios de TI, reúne los requisitos con valor
comercial y acepta un plazo.
El maestro de proceso acepta cómo visualizar todo el proceso. Un método es usar Obeya que se
puede configurar para todo el proceso.
Obeya es una sala de guerra que tiene dos propósitos: la gestión de la información y la toma de
decisiones sobre el terreno. Hay muchas herramientas de gestión visual en ella.
Los miembros del equipo pueden ver rápidamente dónde están en cada aspecto del programa.
Cuando el equipo multifuncional trabaja en conjunto, el sistema Obeya permite una toma de
decisiones rápida y precisa, mejora la comunicación, mantiene la alineación, acelera la recolección de
información y crea un importante sentido de integración del equipo.
El maestro de servicio organiza la oficina de gestión de servicios (SMO) y define reglas básicas para el
equipo.
El maestro de servicio crea la visón, el objetivo y el valor del proyecto y, a continuación, reúne a los
miembros del equipo DevOps.
La infraestructura de tiempo de ejecución definida en esta etapa. Se diseña un mapa de flujo de valor
de todo el proceso.
El maestro de servicio define los atrasos y las prioridades del producto. El equipo de DevOps utiliza
los atrasos de productos para definir historias
Historia del usuario: rol, función, valor / razón comercial y condiciones de operación.
Historia de prueba: casos de prueba de aceptación y criterios de aceptación del servicio.
Historia de la operación: establecer las prioridades de los servicios de TI y las condiciones de
operación para la continuidad del negocio. Crear acuerdos de nivel de servicio y de nivel operativo.
El maestro de servicio decide el final de la vida del servicio de TI, incluyendo las condiciones para
cuando y cómo sucederá.
El siguiente diagrama muestra una configuración de muestra de DevOps.
Existen 3 tipos de implementación de DevOps que dependen del modelo de negocio de la empresa.
Manera de TOYOTA: (Complejo y Avanzado)
Colaboración: (Estándar)
Entrega continua: (Básica)
Se centra en las versiones rápidas y frecuentes de software y es dirigida por el propietario del
producto.
Es más adecuado para los proveedores de productos digitales.
En la sección de Gestión del Ciclo de vida de Aplicaciones o Servicios el alumno será capaz de:
explicar cómo DevOps añade valor a la Gestión moderna del Ciclo de Vida de las Aplicaciones
explicar cómo DevOps mejora la experiencia del cliente cuando se usa para la Gestión del Ciclo de
Vida del Servicio
Aplicación Servicio
• Gestión del ciclo de • Gestión del ciclo de
vida vida
• Centrarse en el • Centrarse en la
desarrollo de la preparación para la
aplicación prestación de servicios
• El funcionamiento y el durante el desarrollo
mantenimiento de la de la aplicación
aplicación es un ciclo • La prestación de
del ciclo de vida de la servicios tiene su
aplicación que entrega propio ciclo de vida:
el servicio estrategia, diseño,
transición, operación,
mejora
DevOps mejora la experiencia del cliente cuando se utiliza para la gestión del ciclo de vida del servicio
Realinear ITSM para DevOps, creando una ITSM ligera que se centra estrictamente en la
continuidad del negocio con un conjunto de información mínima requerida
El dueño del servicio y el gestor de continuidad son responsables de recolectar la retroalimentación
del cliente para aumentar el valor para ellos, por ejemplo, problemas operativos, experiencia del
usuario y problemas de calidad. Si se aprueban, estos elementos se agregan al Product Backlog
como solicitudes de cambio
En la sección de Plan de Proyecto (Defining Scope) y Gestión Visual el alumno será capaz de:
explicar cómo se determina el ámbito de un proyecto DevOps
explicar por qué la Gestión Visual de un proyecto DevOps facilita las prácticas
El Service Master (u otro similar) debe cumplir el siguiente rol en la definición del alcance:
Asiste a la planificación de negocio para entender las metas del negocio y recomienda cómo utilizar
los servicios de TI para alcanzar los objetivos
Crea la visón, la meta y el valor del proyecto, y luego reúne a los miembros del equipo DevOps
Identifica a los clientes de los servicios de TI, reúne los requisitos con valor comercial y acuerda un
marco de tiempo
Los gerentes, los administradores, el personal de ventas, los diseñadores, los desarrolladores, los
operadores y el personal de soporte al cliente son un equipo y comparten toda la información
comercial en las juntas visuales
Control visual significa "¿Todo el mundo entiende fácilmente la situación simplemente mirando las
tablas sin explicaciones?"
Permite ver rápidamente el progreso y la identificación de problemas
El objetivo de DevOps es que todos los entornos de prueba (incluidos los entornos de integración
continua) sean productivos, sobre todo en la forma en que se administran.
Un entorno son todos los recursos que su aplicación necesita para trabajar y su configuración. Los
siguientes atributos describen el entorno:
La configuración de hardware de los servidores que forman el entorno (como el número y el
tipo de CPUs, la cantidad de memoria, los husos, las NIC, etc.) y la infraestructura de red que
las conecta
La configuración del sistema operativo y del middleware (como los sistemas de mensajería, los
servidores de aplicaciones y web, los servidores de bases de datos) necesarios para admitir las
aplicaciones que se ejecutarán en él
El término general infraestructura representa todos los entornos de su organización, junto con los
servicios que los soportan, como servidores DNS, firewalls, routers, repositorios de control de
versiones, almacenamiento, aplicaciones de supervisión, servidores de correo, etc. De hecho, la
frontera entre el entorno de una aplicación y el resto de la infraestructura de su organización puede
variar desde muy claramente definido (en el caso del software embebido, por ejemplo) hasta muy
difuso (en el caso de las arquitecturas orientadas al servicio, compartida por las aplicaciones).
Esta combinación de aprovisionamiento automatizado y mantenimiento autonómico garantiza que
la infraestructura se pueda reconstruir en un tiempo predecible en caso de fallo.
3 AUTOMATIZACION
5 PUNTO DE DESACOPLAMIENTO
En general, la virtualización es una técnica que agrega una capa de abstracción encima de uno o
más recursos de la computadora. Nos enfocaremos principalmente en la virtualización de
plataformas.
La virtualización de plataformas significa simular un sistema de computadora entero para ejecutar
múltiples instancias de sistemas operativos simultáneamente en una sola máquina física.
En esta configuración, hay un monitor de máquina virtual (VMM), o hipervisor, que tiene control
total de los recursos de hardware de la máquina física. Los sistemas operativos invitados se
ejecutan en máquinas virtuales, que son administradas por el VMM.
La virtualización del entorno implica simular una o más máquinas virtuales, así como las conexiones
de red entre ellas.
La virtualización fue originalmente desarrollada por IBM en la década de 1960 como una alternativa
a la creación de un sistema operativo multitarea de tiempo compartido. La principal aplicación para
la tecnología de virtualización es la consolidación de servidores. De hecho, hubo un período
IBM evitó recomendar su familia VM a sus clientes, ya que se traduciría en menores ventas de
hardware. Sin embargo, hay muchas otras aplicaciones de esta poderosa tecnología. Se puede
utilizar en una amplia gama de situaciones, como la simulación de sistemas informáticos históricos
en hardware moderno (una práctica común en la comunidad de retro juegos), o como un
mecanismo para apoyar la recuperación de desastres,
O como parte de un sistema de gestión de configuración para soportar la implementación del
software.
La característica definitoria del cloud computing es que los recursos informáticos que usa, como
CPU, memoria, almacenamiento, etc., pueden expandirse y contraerse para satisfacer sus
necesidades, y sólo paga por lo que utiliza. La computación en nube puede referirse tanto a los
servicios de software como a los entornos de hardware y software en los que se ejecutan.
Virtualización
Rápido aprovisionamiento de entornos
Reducir el tiempo de implementación del software
Más fácil de ofrecer infraestructura "como servicio"
Normalización de hardware
Computación en la nube
Acceso rápido, fácilmente escalable
Desplegar en una pila completamente estandarizada - no hay necesidad de preocuparse por la
configuración o el mantenimiento de pruebas, entornos o entornos de producción o imágenes de
máquinas virtuales
Las historias se utilizan para recopilar, definir y priorizar los requisitos de nivel de servicio y los
acuerdos de nivel de servicio
El equipo de DevOps utiliza lhistorias para documentar requisitos y acuerdos de nivel de servicio:
Historia del usuario: rol, función, valor / razón comercial y condiciones de operación.
Historia de prueba: casos de prueba de aceptación y criterios de aceptación del servicio.
Historia de la operación: establecer las prioridades de los servicios de TI y las condiciones
de operación para la continuidad del negocio. Crear acuerdos de nivel de servicio y de nivel
operativo.
La prueba es una actividad multifuncional que involucra a todo el equipo, y debe hacerse
continuamente desde el inicio del proyecto.
Se debe lograr calidad al escribir pruebas automatizadas en múltiples niveles (unidad, componente
y aceptación) y ejecutarlos como parte del pipeline de despliegue, que se activa cada vez que se
realiza un cambio en su aplicación, su configuración o la pila de entorno y software
Las pruebas manuales son también una parte esencial de la calidad de la construcción: las pruebas
de usabilidad y las pruebas exploratorias deben realizarse continuamente durante todo el proyecto.
Construir calidad también significa trabajar constantemente para mejorar su estrategia de pruebas
automatizadas.
En nuestro proyecto ideal, los probadores colaboran con desarrolladores y usuarios para escribir
pruebas automatizadas desde el inicio del proyecto. Estas pruebas se escriben antes de que los
desarrolladores comiencen a trabajar en las características que prueban. En conjunto, estas
pruebas forman una especificación ejecutable del comportamiento del sistema, y cuando pasan,
demuestran que la funcionalidad requerida por el cliente se ha implementado completa y
correctamente.
El conjunto de pruebas automatizado es administrado por el sistema de configuración cada vez que
se hace un cambio en la aplicación-lo que significa que también sirve como un conjunto de pruebas
de regresión.
Las pruebas de aceptación son fundamentales en un entorno ágil porque responden a las
preguntas "¿Cómo sé cuando termino?" Para los desarrolladores y "¿Conseguí lo que quería para
los usuarios?"
8 PRUEBAS DE ACEPTACION
Las pruebas de aceptación deben ser escritas, e idealmente automatizadas, antes de que el
desarrollo comience en una historia. Las pruebas de aceptación, como los criterios de aceptación,
pueden probar todo tipo de atributos del sistema que se está construyendo, incluyendo
funcionalidad, capacidad, usabilidad, seguridad, modificabilidad, disponibilidad, etc.
En general, para cada historia o requisito hay un solo camino canónico a través de la aplicación en
términos de las acciones que el usuario realizará. Esto se conoce como el camino feliz. Esto se
expresa a menudo con la forma "Dado [algunas características importantes del estado del sistema
cuando comienza la prueba], cuando [el usuario realiza un conjunto de acciones], entonces
[algunas características importantes del nuevo estado del sistema] . Esto a veces se denomina el
modelo "dado-cuando-entonces" para las pruebas.
Sin embargo, cualquier caso de uso, en todos los sistemas, excepto el más simple, permitirá
variaciones en el estado inicial, las acciones a realizar y el estado final de la aplicación. A veces,
estas variaciones constituyen casos de uso distintos, que se conocen entonces como caminos
alternos. En otros casos, deben causar condiciones de error, resultando en lo que se denomina
caminos tristes.
Las pruebas muestran cuándo la historia ha llegado a la etapa de 'hecho' para los desarrolladores y
'¿Conseguí lo que quería?' para los usuarios
Historias de usuarios - se pueden probar usando el camino feliz - 'dado x, cuando y, entonces z'
Historias de prueba - Principios INVEST - Independiente, Negociable, Valiosa, Estimable, Small y
Testeable, con criterios de aceptación
Historias de operaciones: compruebe que el despliegue funcionó
Utilizando estas prácticas, incluso las grandes organizaciones con aplicaciones complejas pueden
entregar nuevas versiones de su software de forma rápida y confiable. Eso significa no sólo que las
empresas pueden obtener un retorno más rápido de su inversión, sino que pueden hacerlo con
riesgos reducidos y sin incurrir en el costo de oportunidad de ciclos de desarrollo largos, o peor,
entregando software que no es adecuado para el propósito.
Para utilizar una analogía con la fabricación lean, el software que no se está entregando con
frecuencia es como el inventario almacenado en un almacén. Le ha costado dinero fabricar, pero
no le está haciendo dinero-de hecho, le está costando dinero para almacenarlo.
1 ENTREGA CONTINUA
2 ANALISIS DE MADUREZ
3. Implementar los cambios. Crear un plan de implementación. Comenzar con una prueba de
concepto seleccionando una parte de su organización que realmente está sufriendo
4. Una vez realizados los cambios, utilice los criterios de aceptación para medir si los cambios
tuvieron el efecto deseado. Realizar una reunión retrospectiva de todos los interesados y
participantes para averiguar qué tan bien se ejecutaron los cambios y dónde están las
áreas potenciales de mejora.
5. Repita estos pasos, basándose en su conocimiento. Desarrollar las mejoras de forma
incremental y distribuirlas en toda la organización.
El cambio organizacional es difícil, y el consejo más importante que se puede ofrecer es
implementar el cambio de forma incremental y medir el impacto a medida que avanza. Si se
intenta pasar del nivel uno al nivel cinco en toda la organización en un solo paso, se fallará.
Cambiar las grandes organizaciones puede llevar varios años.
Ejemplos de problemas:
Desarrollos Infrecuentes o con Errores
Mala calidad de la aplicación
Proceso de Integración Continua gestionado deficientemente
Mala gestión de la configuración
3 ESCENARIO DE MEJORA
La integración continua requiere que cada vez que alguien realice algún cambio, se ejecuta
un conjunto completo de pruebas automatizadas. Crucialmente, si falla el proceso de
construcción o prueba, el equipo de desarrollo detiene lo que está haciendo y corrige el
problema inmediatamente.
El objetivo de la integración continua es que el software esté en un estado de trabajo todo
el tiempo. La integración continua representa un cambio de paradigma. Sin integración
continua, el software se rompe hasta que alguien demuestre que funciona, por lo general
durante una prueba o etapa de integración. Con la integración continua, el software está
probado para funcionar (asumiendo un conjunto suficientemente completo de pruebas
automatizadas) con cada nuevo cambio, y se sabe el momento en que se rompe y puede
arreglarlo de inmediato. Los equipos que utilizan la integración continua con eficacia son
capaces de entregar software mucho más rápido, y con menos errores, que los equipos que
no lo hacen. Los errores se capturan mucho antes en el proceso de entrega cuando son más
baratos de arreglar, proporcionando ahorros significativos en costos y tiempo. Por lo tanto,
consideramos que es una práctica esencial para los equipos profesionales.
Compruebe que los requisitos para asegurar la integración continua están en su lugar:
Comprobar el código regularmente (idealmente dos veces al día)
Crear una completa suite de pruebas automatizadas
Mantenga el proceso de construcción y prueba corto
Gestión de su espacio de trabajo de desarrollo
4 VSM
User
acceptance
testing
Commit stage
Complete unit Production
Acceptance
test
test stage
Analysis
Build installers Capacity
testing
Faster feedback
El despliegue de las compilaciones puede ser para probar o para entornos reales. En un nivel
abstracto, una tubería de despliegue es una manifestación automatizada del proceso para obtener el
software desde el control de versiones y dejarlo en manos de sus usuarios. Cada cambio en el
software pasa por un proceso complejo en su camino a ser lanzado. La fase de confirmación afirma
que el sistema funciona a nivel técnico. Compila, pasa un conjunto de pruebas automatizadas
(principalmente a nivel de unidad) y ejecuta el análisis de código.
Las pruebas de aceptación automatizadas afirman que el sistema funciona a nivel funcional y no
funcional, que responde de manera conductiva a las necesidades de sus usuarios y las
especificaciones del cliente.
Las pruebas manuales aseguran que el sistema es utilizable y cumple con sus requerimientos,
detectar cualquier defecto que no sea detectado por las pruebas automatizadas y verificar que
proporciona valor a sus usuarios. Estas etapas pueden incluir típicamente entornos de pruebas
exploratorias, entornos de integración y UAT (user acceptance testing).
La etapa de lanzamiento entrega el sistema a los usuarios, ya sea como software empaquetado o
desplegándolo en un entorno de producción o de puesta en escena (un entorno de ensayo es un
entorno de prueba idéntico al entorno de producción).
5 SCRIPTS
Mantenga el objetivo final en mente todo el tiempo, es decir, el objetivo de compartir el mismo
mecanismo de implementación entre desarrollo, pruebas y producción, pero no se coloque demasiado
en ese pensamiento al principio de la creación de sus herramientas.
Los scripts son partes de primera clase de su sistema. Deben vivir toda su vida. Deben estar
controlados por versiones, mantenerse, probarse y refactorisarse, y ser el único mecanismo que
utilice para implementar su software.
Muchos equipos tratan su sistema de construcción como una idea posterior; los sistemas de
construcción y despliegue son casi siempre la parte debil cuando se trata de diseño. Como resultado,
estos sistemas mal mantenidos son a menudo la barrera para un proceso de liberación sensible y
repetible, en lugar de su fundamento. Los equipos de entrega deben dedicar tiempo y atención a
obtener correctamente los scripts de creación y despliegue.
Despliegue continuo: despliegue todos los cambios que pasen sus pruebas automatizadas a la
producción
Planes de iteración: se proponen implementar en la primera iteración para probar lo que se puede
hacer y probar la implementación
Crear una estrategia de versión antes de cualquier planificación de la versión y mucho antes de la
primera iteración
Las personas que realizan la implementación deben participar en la creación del proceso de
implementación
Registro de Actividades de despliegue
No borre los archivos antiguos, muévalos
El despliegue es responsabilidad de todo el equipo
Tener un período de calentamiento para una nueva implementación
Fallas rápidas
No realice cambios directamente en el entorno de producción
6 ANALISIS DE DESPLIEGUES
En la sección de Ji-Kotei-Kanketsu, Ritmo, Work-in-Progress (WIP) y Flujo de una pieza el alumno será
capaz de:
explicar los conceptos Ji-Kotei-Kanketsu, Ritmo, Work-in-Progress (WIP) y Flujo de una pieza
analizar un escenario buscando un problema al utilizar los conceptos de Ji-KoteiKanketsu, Ritmo,
Work-in-Progress (WIP) y Flujo de una pieza y encontrar una solución adecuada
JKK
Clara comprensión de los objetivos, garantizar la alta calidad del trabajo, los defectos nunca pasó
al siguiente proceso, la definición de hecho es vital
Ritmo
El ritmo en el que el equipo de DevOps trabaja y se despliega a la producción
Trabajo en curso (WIP)
Reducir el WIP para reducir los cuellos de botella y mejorar el tiempo de ciclo
Flujo de una sola pieza
Trabajar en un elemento a la vez para completar como un individuo o un equipo, ritmo rápido,
flujo suave
JKK - Toyota - Con este método de acercamiento, que significa "asegurar que no se produzcan
defectos en las líneas y que los elementos defectuosos nunca se pasen al siguiente proceso", se
toman las acciones necesarias para lograr el objetivo de "cero defecto" en todos procesos de
producción.
Un flujo continuo de una sola pieza puede tener lugar en un solo equipo trabajando como una unidad
de punto fuerte, en una sola celda de trabajo (o equipo Scrum), para aplicar varias transformaciones
a trabajos en curso (que se limita a una sola pieza a la vez ).
El equipo hace un pequeño análisis, un poco de diseño, un pequeño construcción, y un poco de
prueba de una vez en ciclos muy cortos.
Limitar la cantidad de WIP que se tiene (en otras palabras, la cantidad de trabajo que ha comenzado
pero aún no se ha completado) es una excelente manera de aumentar el rendimiento en el pipeline
de desarrollo de software.
7 JKK
Controles útiles:
¿Se han pasado los defectos al proceso siguiente?
¿Está clara la definición de hecho?
¿Hay un ritmo constante para el despliegue?
¿Cuánto trabajo en curso?
¿Cuántas personas están trabajando en más de un artículo?
La entrega continua y el despliegue continuo libra personal para centrarse en lo que importa.
Ciclos de retroalimentación automatizados y automatización de la construcción con pruebas
proporcionan confianza adicional y visión del sistemas.
La instalación de un servidor es la automatización de la configuración y configuración de servidores
individuales.
La automatización de la infraestructura se logra proporcionando elementos de la infraestructura a
través del tratamiento de código al igual que el resto de su software, con la capacidad de
recuperar negocios a través de copias de seguridad de datos, repositorio de código y recursos de
cálculo.
Se tienen la opción de invertir en la infraestructura de la nube.
Las herramientas de automatización de compilación de hoy generalmente especifican cómo se va a
construir el software (qué pasos hay que hacer y en qué orden) y qué dependencias se requieren
(qué otro software necesita estar presente para que la generación tenga éxito).
Monitoreo - Con el tiempo, usted querrá sintonizar y ajustar su monitoreo y alerta a medida que
aprenda más sobre el verdadero impacto de sus problemas y eventos.
Dirección
Cultura Herramientas
Mentalidad
La forma en que se utilizan las herramientas y la facilidad con que se pueden utilizar influye en la
aceptación y proliferación de aspectos específicos de la cultura.
Cuando hablamos de herramientas de desarrollo, nos referimos tanto a las propias herramientas
como a la manera de su uso
Las herramientas no están completamente separadas de los otros tres pilares de DevOpss
efectivos.
Las herramientas pueden impactar y ser impactadas por la forma en que trabajamos e
interactuamos, y todos estos factores e interacciones deben ser considerados para lograr un
cambio significativo y duradero.
Pruebas
automatizadas
Prueba manual
Realimentación
Hecho
8 AUTOMATIZACION
Demasiados proyectos dependen únicamente de pruebas de aceptación manual para verificar que
una pieza de software se ajusta a sus requisitos funcionales y no funcionales.
Incluso donde existen pruebas automatizadas, a menudo se mantienen mal y se des actualizan y
requieren completar con pruebas manuales extensivas.
Construir pruebas automatizadas en múltiples niveles (unidad, componente y aceptación) y
ejecutarlos como parte de la tubería de despliegue, que se activa cada vez que se realiza un
cambio en su aplicación, su configuración o la pila de entorno y software
Las pruebas manuales son también una parte esencial de la calidad de la construcción: las pruebas
de usabilidad y las pruebas exploratorias deben realizarse continuamente durante todo el proyecto.
Construir calidad también significa trabajar constantemente para mejorar la estrategia de pruebas
automatizadas.
En muchos proyectos, las pruebas se tratan como una fase distinta realizada por especialistas.
Un software de alta calidad sólo es posible si las pruebas se convierten en la responsabilidad de
todos los que participan en la entrega de software y se practica desde el comienzo del proyecto y a
lo largo de su vida.
Las pruebas se ocupan principalmente de establecer bucles de retroalimentación que impulsen el
desarrollo, el diseño y la liberación.
Las pruebas están fundamentalmente interconectadas con su definición de "hecho", y su estrategia
de pruebas debe centrarse en poder ofrecer esa característica de comprensión por características y
asegurarse de que las pruebas sean omnipresentes a lo largo de su proceso.
• Dado
Criterios de
• Cuando
aceptación
• Entonces
Las pruebas de aceptación son una etapa crucial en el despliegue del pipeline: Toman equipos de
entrega más allá de la integración continua básica.
Una vez que haya realizado las pruebas de aceptación automatizadas, se deben probar los criterios
de aceptación, es decir, validar que proporcionan funcionalidad valiosa a los usuarios.
Una prueba de aceptación individual está destinada a verificar que los criterios de aceptación de
una historia o requisito se han cumplido.
Los criterios de aceptación vienen en muchas variedades diferentes; pueden ser funcionales o no
funcionales.
Los criterios de aceptación no funcionales incluyen cosas como capacidad, rendimiento,
modificabilidad, disponibilidad, seguridad, usabilidad, etc.
¿Qué tipo de tareas se caracterizan por una alta variabilidad y una alta capacidad de análisis?
a) Rutina
b) Manuales
c) Ingeniería
d) No rutinarias
¿Cuál de los siguientes ofrece retroalimentación sobre la calidad externa del software?
a) Resultados de la ejecución automatizada del despliegue
b) Resultados de las pruebas automatizadas de carga
c) Resultados del análisis automatizado de código estático
d) Resultados de las pruebas unitarias automatizadas
Los datos y su gestión y organización plantean un conjunto particular de problemas para los procesos
de prueba y despliegue por dos razones.
Primero, el volumen de información que generalmente está involucrado. Los bytes asignados para
codificar el comportamiento de la aplicación -su código fuente e información de configuración-
suelen ser ampliamente superados por el volumen de datos que registran su estado.
En segundo lugar, el hecho de que el ciclo de vida de los datos de aplicación difiere del de otras
partes del sistema. Es necesario conservar los datos de la aplicación; de hecho, los datos
sobrepasan generalmente las aplicaciones que se utilizaron para crear y acceder a ella.
Es crucial que los datos se conserven y migren durante las nuevas implementaciones o retrocesos de
un sistema.
Al igual que con cualquier otro cambio en el sistema, cualquier cambio en cualquier base de datos
utilizada como parte de su proceso de generación, despliegue, prueba y liberación debe ser
gestionado a través de procesos automatizados.
Esto significa que la inicialización de la base de datos y todas las migraciones necesitan ser
capturadas como scripts y verificadas en el control de versiones.
Debido a su ciclo de vida, la gestión de los datos presenta una colección de problemas diferentes
de los que hemos discutido en el contexto de la tubería de despliegue.
Versión de base de datos y utilizar una herramienta para gestionar las migraciones de forma
automática.
Esforzarse por conservar la compatibilidad hacia adelante y hacia atrás con los cambios de
esquema
Asegúrese de que las pruebas creen los datos en los que dependen como parte del proceso de
configuración
Reservar el intercambio de configuración entre las pruebas sólo para los datos necesarios para
iniciar la aplicación
Intentar utilizar API pública de aplicación para configurar el estado correcto para las pruebas
siempre que sea posible
En la mayoría de los casos, no utilizar volcados del dataset de producción para propósitos de
prueba. Crear conjuntos de datos personalizados seleccionando cuidadosamente un subconjunto
más pequeño de datos de producción, o de pruebas de aceptación o de capacidad
Un entorno son todos los recursos que su aplicación necesita para trabajar y su configuración. Los
siguientes atributos describen el entorno:
La configuración de hardware de los servidores que forman el entorno (como el número y el tipo
de CPUs, la cantidad de memoria, los husos, las NIC, etc.) y la infraestructura de red que los
conecta.
La configuración de del sistema operativo y del middleware (tales como sistemas de mensajería,
servidores de aplicaciones y web, servidores de bases de datos) necesarios para soportar las
aplicaciones que se ejecutarán dentro de él.
1 APROVISIONAMIENTO DE SERVIDORES
1 APROVISIONAMIENTO DE SERVIDORES
Enfoque holístico para administrar toda la infraestructura, basado en los siguientes principios.
El estado deseado de su infraestructura debe especificarse mediante una configuración controlada
por versiones.
La infraestructura debe ser autónoma, es decir, debe corregirse automáticamente al estado
deseado.
Siempre debe conocer el estado real de su infraestructura a través de la instrumentación y el
monitoreo.
Hay cuatro áreas a considerar al crear una estrategia de monitoreo para su infraestructura y
aplicaciones:
Instrumentación de sus aplicaciones y su infraestructura para que pueda recopilar los datos que
necesita
Almacenar los datos para que puedan ser recuperados fácilmente para el análisis
Creación de cuadros de mando que agregan el Datos y presentarlo en un formato adecuado para
las operaciones y para el negocio
Configuración de notificaciones para que las personas puedan averiguar sobre los eventos que les
importan
¿Qué es un componente?
Este es un término horriblemente sobrecargado en el software, por lo que trataremos de hacer lo
más claro posible lo que queremos decir con él.
Cuando hablamos de componentes, nos referimos a una estructura de código razonablemente
grande en una aplicación, con una API bien definida, que podría ser intercambiada para otra
implementación.
Un sistema de software basado en componentes se distingue por el hecho de que la base de
código se divide en partes discretas que proporcionan comportamiento a través de interacciones
bien definidas y limitadas con otros componentes.
Hay varias razones por las que los componentes hacen que el proceso de desarrollo de software sea
más eficiente:
1. Divide el problema en trozos más pequeños y más expresivos.
2. Los componentes a menudo representan diferencias en las tasas de cambio de diferentes partes
del sistema, y tienen diferentes ciclos de vida.
3. Nos animan a diseñar y mantener un software con una delimitación clara de responsabilidades, lo
que a su vez limita el impacto del cambio y facilita la comprensión y el cambio de la base de
código.
4. Pueden proporcionarnos grados adicionales de libertad para optimizar nuestro proceso de
creación y despliegue.
Reports
Engine
Portfolio
Settlement
Framework management
Engine Application
Pricing
Library
Engine
Ejemplo:
La aplicación de gestión de cartera depende de un motor de fijación de precios, un motor de
liquidación y un motor de informes.
Estos, a su vez, dependen de un marco.
El mecanismo de fijación de precios depende de una biblioteca de CDS (credit default swap) que
es proporcionada por un tercero (ahora en dificultades).
En general, nos referimos a un componente más a la izquierda del diagrama como una
dependencia "aguas arriba", y un componente más a la derecha como una dependencia "aguas
abajo".
Por lo tanto, el motor de precios tiene dos dependencias ascendentes, la biblioteca de precios CDS
y el marco, y una dependencia descendente, la aplicación de gestión de cartera.
La restricción más importante en estos escenarios es que la aplicación de gestión de cartera sólo
debe construir en contra de una versión del marco.
En particular, no queremos terminar con una versión de (digamos) el motor de precios construido
contra una versión del framework, y el motor de liquidación construido contra otra versión.
Este es el clásico problema de la "dependencia del diamante", que es el análogo de tiempo de
construcción del problema de "infierno de dependencia" de tiempo de ejecución.
Una dependencia se produce cuando una pieza de software depende de otra para construir o
ejecutar.
En cualquiera de las aplicaciones más triviales, habrá algunas dependencias.
La mayoría de las aplicaciones de software tienen, como mínimo, una dependencia de su entorno
operativo principal.
4 PIPELINE A PRODUCCION
4 PIPELINE A PRODUCCION
Gestión de la configuración se refiere al proceso por el cual todos los artefactos relevantes para su
proyecto, y las relaciones entre ellos, se almacenan, recuperan, identifican de forma única y se
modifican.
Aunque los sistemas de control de versiones son la herramienta más obvia en la administración de
la configuración, la decisión de usar uno (y cada equipo debe usar uno, no importa cuán pequeño)
es sólo el primer paso en el desarrollo de una estrategia de administración de configuración.
Los sistemas de control de versiones, también conocidos como control de código fuente, sistemas
de administración de código fuente o sistemas de control de revisiones, son un mecanismo para
mantener múltiples versiones de sus archivos, de modo que al modificar un archivo todavía puede
acceder a las revisiones anteriores.
También son un mecanismo a través del cual las personas involucradas en la entrega de software
colaboran. Una razón por la que usamos el control de versión de término en preferencia al control
de código fuente es que el control de versión no es sólo para código fuente.
Cada artefacto relacionado con la creación de su software debe estar bajo control de versiones.
El objetivo es tener todo lo que pueda cambiar en cualquier momento de la vida del proyecto
almacenado de manera controlada.
Esto le permite recuperar una instantánea exacta del estado de todo el sistema, desde el entorno
de desarrollo hasta el entorno de producción, en cualquier momento de la historia del proyecto.
Este nivel de gestión de la configuración garantiza que, siempre que mantenga el repositorio
intacto, siempre podrá recuperar una versión de trabajo del software.
Si su sistema crece o tiene componentes de los que dependen varios proyectos, puede considerar
dividir los componentes de sus componentes en tuberías separadas.
Si lo hace, es importante tener dependencias binarias entre sus pipelines en lugar de las
dependencias de origen.
Recompilar las dependencias no sólo es menos eficiente; también significa que está creando un
artefacto potencialmente diferente del que ya probó.
El uso de dependencias binarias puede dificultar el rastreo de una rotura del cambio de código
fuente que lo causó, pero un buen servidor de CI le ayudará con este problema.
Datos
Infraestr
uctura
Compon
entes
Control de Versiones
Por último, es aceptable crear una versión de corta duración cuando necesite realizar un cambio
grande en la aplicación que no sea posible con cualquiera de los métodos descritos, lo cual es un
escenario extremadamente raro si su base de código está bien estructurada. El único objetivo de
esta rama es conseguir que la base de código llegue a un estado en el que se puedan realizar
cambios adicionales de forma incremental a través de una versión por abstracción.
Problema: la infraestructura de red entre los sitios de desarrollo es lenta y poco fiable
Crear un repositorio local para el equipo y fusionar los cambios del equipo a la línea principal todos
los días
Problema: Proyecto muy grande con ramas paralelas
Desarrollar una estrategia de fusión claramente descrita con un servidor de integración continua
independiente para cada una de estas ramas relativamente largas y un pequeño equipo de fusión
dedicado para administrar el proceso
Problema: ramas separadas para cada cliente de un producto y pruebas en un repositorio de control
de versiones separado de su código
Utilice un repositorio de control de versión común para el código y las pruebas para que puedan
estar claramente vinculados
6 CLOUD O NO CLOUD
La empresa posee tanto el Sistema de Compromiso (SoE) como el Sistema de Registro (SoR). El
SoE se centra en la velocidad. El SoR se centra en la continuidad del negocio. El problema es cómo
el SoR puede adaptarse rápidamente a los cambios en el SoE para mantener la continuidad del
negocio.
DevOps no sólo es una mejora del desarrollo ágil y entrega continua, sino también la gestión de
servicios de TI y gestión de aplicaciones para permitir el crecimiento del negocio y mantener la
continuidad del negocio.
Como la tecnología es un componente básico de la mayoría de los procesos de negocio, la
disponibilidad continua o alta de los servicios de TI es crítica para la supervivencia del negocio en
su conjunto. Esto se logra introduciendo medidas de reducción del riesgo y opciones de
recuperación.
Al igual que todos los elementos de la administración de servicios de TI, la implementación exitosa
del proceso de continuidad del servicio sólo puede lograrse con el compromiso de la alta dirección
y el apoyo de todos los miembros de la organización.
El mantenimiento continuo de la capacidad de recuperación es esencial para que siga siendo
eficaz. La continuidad del servicio es una parte esencial de la garantía (aptitud para el propósito)
de un servicio.
Si la continuidad del servicio no puede ser mantenida y / o restaurada de acuerdo con los
requisitos del negocio, entonces el negocio no experimentará el valor que se ha prometido. Sin
continuidad la utilidad (aptitud para el propósito) del servicio no puede ser alcanzada.
Las mejores prácticas de gestión de servicios de TI (ITSM) tradicionales, como ITIL, parecen
pesadas y no son adecuadas para los procesos rápidos de DevOps. Es necesario pensar en cómo
reducir la carga de trabajo de gestión.
Es necesario realinear ITSM para DevOps, creando ITSM ligero que está estrictamente centrado en
la continuidad del negocio con un conjunto de información mínima requerida (MRI). El MRI fijado
para cada organización depende de su negocio.
DevOps es fundamental para desarrollar fuerza, equilibrio y agilidad dentro de una gran empresa
como lo es en organizaciones más pequeñas.
Es la aplicación o aplicación de los principios que difieren en las organizaciones más grandes, no
los principios mismos.
Los investigadores descubrieron que los principios culturales de DevOps podrían aplicarse a
organizaciones de cualquier tamaño y que los principios técnicos como la entrega continua y el
mejoramiento de los procesos de implementación podrían aplicarse a cualquier proyecto de
software bien diseñado y con adecuada arquitectura, incluso a los antiguos.
Un nuevo proyecto basado en microprocesos no va a tener éxito porque es nuevo y tiene micro
servicios, tiene que estar bien diseñado, comprobable y fácilmente desplegable.
Estos principios se aplican a todos los proyectos de software, antiguos y nuevos.
Scale up
Scale down
Los proyectos Vampiro (que se alimentan de los recursos y la energía de otros proyectos) y los
zombies (tomar tiempo y recursos) pueden ser muy difíciles, porque hay individuos básicos cuya
sangre es esencialmente alimentar el proyecto.
Es posible que ni siquiera se dan cuenta de cuánto de un drenaje del proyecto es en general para
la empresa.
Cuando se acercan a la realidad del proyecto, pueden sentir que están siendo atacados
personalmente.
Convencer a un individuo para abandonar el "precioso" proyecto al que ha dado tanto tiempo y
esfuerzo será un desafío, pero puede tener retornos inmensos.
Las personas que se apasionan por los proyectos, ya tienen pasión: no hay que instalar pasión en
ellos, hay que redirigir esa pasión a algo que tiene valor para su compañía.
Tan penetrante como el Internet es en estos días, cada pieza de software desarrollado debe ser
diseñada para estar disponible 24/7/365 o para tener contenido constantemente actualizando.
Comprender y sopesar la importancia y complejidad de los proyectos y sus lanzamientos con el fin
de averiguar qué ciclo de lanzamiento tiene más sentido para cada uno.
Diferentes proyectos en toda la organización podrían funcionar mejor con cadencias de liberación
diferentes.
Problema: Reducir la escala, pero algunos grandes proyectos están ocupando recursos y costos
Reconocer proyectos que no agreguen valor a la organización reducida y cancelarlos
Problema: la escala produce descargas muy frecuentes y todo el software es imposible de mantener
con los niveles actuales de recursos
Analizar qué software se requiere para estar disponible 24/7/365 o para tener constantemente la
actualización de contenido y que no lo es. Aplicar diferentes ciclos de liberación para cada uno
Con el fin de hacer crecer una empresa pasado un cierto punto, usted tendrá que averiguar cómo
hacer que los equipos queden distribuidos de trabajo.
Si no lo hace, disminuirá su capacidad para responder y reaccionar ante los cambios que afectan a
su organización, lo cual conducirá a la duplicación de esfuerzos y disminuir la satisfacción
individual y del equipo a medida que la gente se esfuerce por superar estas distancias de manera
efectiva.
Estructuras organizacionales que bloquean a las personas en roles o que son impulsados por el
miedo puede conducir a un enfoque en la optimización de trabajo para mí, no para nosotros.
La elección de procesos y herramientas que favorezcan a un individuo puede conducir a ganancias
a corto plazo que no son sostenibles para el equipo u organización a largo plazo.
Más que contratar a personas que simplemente saben acerca de la automatización de la
infraestructura o la nube o los contenedores, las organizaciones y los equipos necesitan centrarse
en la evaluación de sus necesidades específicas y abordar los aspectos interpersonales y culturales
de contratación que son clave para crear y mantener una cultura DevOps.
En la sección de Condiciones de Fin de la Vida Útil para un producto o servicio el alumno será capaz
de:
explicar qué condiciones se deben satisfacer antes de terminar un producto o servicio.
El fin de la vida útil es tratado como una historia como otras condiciones
La historia dirá por qué, por ejemplo, no más necesidad del negocio, reemplazo por un servicio
más barato / más simple / más eficaz
La historia indicará cuáles son las condiciones, por ejemplo,
Qué sucede con cualquier información / documentación / herramientas / otros componentes
Cómo asegurarse de que cualquier servicio de reemplazo esté listo antes de cerrar el viejo
Cuándo cerrar y en qué secuencia
1 FIN DE VIDA
El cumplimiento de asignaciones prácticas es parte de los requisitos de certificación del EXIN DevOps
Master.
Cada Actividad se encuentra compuesta de cuatro sub actividades que miden distintas capacidades y
habilidades
1. el alumno planea las actividades dentro de la asignación, a menos que se indique lo contrario.
2. el alumno se comunica y trabaja con otros cuando sea necesario.
3. Los candidatos ofrecen sus propias soluciones.
4. el alumno contribuye a la calidad de la asignación, especialmente en el trabajo grupal.
5. Las soluciones proporcionadas son realistas y, por tanto, aptas para el escenario o estudio de
caso.
6. Las soluciones proporcionadas coinciden con los objetivos de negocio y TI.
el alumno debe:
Demostrar liderazgo para la construcción e implementación de soluciones de Sistemas de
Información innovadoras a largo plazo.
Asegurar el contenido del SLA.
Analizar sistemáticamente los datos de desempeño y comunicar los hallazgos a los expertos de alto
nivel. Escalar posibles fallos en el nivel de servicio y riesgos de seguridad, recomendando acciones
para mejorar la fiabilidad del servicio. Controlar los datos de confiabilidad contra SLA
Establecer relaciones confiables con los clientes (internos) y ayudarlos a aclarar sus necesidades.
Tema:
Alineación de la Estrategia de TI y la Estrategia de Negocios
Objetivo:
el alumno debe demostrar que sabe cómo
Analizar desarrollos futuros en la aplicación de procesos y tecnologías empresariales
Determinar los requisitos para los procesos relacionados con los servicios TIC
Identificar y analizar las necesidades de los usuarios / clientes a largo plazo
Tema:
Gestión de Niveles de Servicio
Objetivo:
el alumno debe demostrar que sabe cómo
Hacer SLAs y UCs aplicables
Negociar objetivos de nivel de servicio
Tener en cuenta las necesidades y la capacidad de las partes interesadas y las empresas
Tema:
Entrega de Servicios
Objetivo:
el alumno debe demostrar que sabe cómo
Identificar fallas en la entrega de servicios
Interpretar los requisitos de prestación de servicios TIC
Registrar incidentes de servicio
Mantener herramientas de monitoreo y manejo
Recomendar acciones para mejorar la fiabilidad del servicio
Tema:
Identificar Necesidades
Objetivo:
el alumno debe demostrar que sabe cómo
Analizar las necesidades del cliente
Aclarar las necesidades del cliente
Participar en la implementación o proceso de configuración
Ofrecer soluciones para las necesidades del negocio
el alumno debe:
Demostrar liderazgo para la construcción e implementación de soluciones de Sistemas de
Información innovadoras a largo plazo.
Asegurar el contenido del SLA.
Analizar sistemáticamente los datos de desempeño y comunicar los hallazgos a los expertos de alto
nivel. Escalar posibles fallos en el nivel de servicio y riesgos de seguridad, recomendando acciones
para mejorar la fiabilidad del servicio. Controlar los datos de confiabilidad contra SLA
Establecer relaciones confiables con los clientes (internos) y ayudarlos a aclarar sus necesidades.
Tema:
Alineación de la Estrategia de TI y la Estrategia de Negocios
Objetivo:
el alumno debe demostrar que sabe cómo
Analizar desarrollos futuros en la aplicación de procesos y tecnologías empresariales
Determinar los requisitos para los procesos relacionados con los servicios TIC
Identificar y analizar las necesidades de los usuarios / clientes a largo plazo
Tema:
Gestión de Niveles de Servicio
Objetivo:
el alumno debe demostrar que sabe cómo
Hacer SLAs y UCs aplicables
Negociar objetivos de nivel de servicio
Tener en cuenta las necesidades y la capacidad de las partes interesadas y las empresas
Tema:
Entrega de Servicios
Objetivo:
el alumno debe demostrar que sabe cómo
Identificar fallas en la entrega de servicios
Interpretar los requisitos de prestación de servicios TIC
Registrar incidentes de servicio
Mantener herramientas de monitoreo y manejo
Recomendar acciones para mejorar la fiabilidad del servicio
Tema:
Identificar Necesidades
Objetivo:
el alumno debe demostrar que sabe cómo
Analizar las necesidades del cliente
Aclarar las necesidades del cliente
Participar en la implementación o proceso de configuración
Ofrecer soluciones para las necesidades del negocio
el alumno debe:
Demostrar liderazgo para la construcción e implementación de soluciones de Sistemas de
Información innovadoras a largo plazo.
Asegurar el contenido del SLA.
Analizar sistemáticamente los datos de desempeño y comunicar los hallazgos a los expertos de alto
nivel. Escalar posibles fallos en el nivel de servicio y riesgos de seguridad, recomendando acciones
para mejorar la fiabilidad del servicio. Controlar los datos de confiabilidad contra SLA
Establecer relaciones confiables con los clientes (internos) y ayudarlos a aclarar sus necesidades.
Tema:
Alineación de l1 Estrategia de TI y la Estrategia de Negocios
Objetivo:
el alumno debe demostrar que sabe cómo
Analizar desarrollos futuros en la aplicación de procesos y tecnologías empresariales
Determinar los requisitos para los procesos relacionados con los servicios TIC
Identificar y analizar las necesidades de los usuarios / clientes a largo plazo
Tema:
Gestión de Niveles de Servicio
Objetivo:
el alumno debe demostrar que sabe cómo
Hacer SLAs y UCs aplicables
Negociar objetivos de nivel de servicio
Tener en cuenta las necesidades y la capacidad de las partes interesadas y las empresas
Tema:
Entrega de Servicios
Objetivo:
el alumno debe demostrar que sabe cómo
Identificar fallas en la entrega de servicios
Interpretar los requisitos de prestación de servicios TIC
Registrar incidentes de servicio
Mantener herramientas de monitoreo y manejo
Recomendar acciones para mejorar la fiabilidad del servicio
Tema:
Identificar Necesidades
Objetivo:
el alumno debe demostrar que sabe cómo
Analizar las necesidades del cliente
Aclarar las necesidades del cliente
Participar en la implementación o proceso de configuración
Ofrecer soluciones para las necesidades del negocio
En este módulo el alumno rendirá un examen reducido de práctica y apoyado por el instructor en la
revisión de los resultados.
Esta certificación pretende aportar competencias prácticas al conocimiento con el fin de que una
persona con la certificación DevOps Master pueda implementar el modelo DevOps de forma
satisfactoria en un equipo y promover sus principios en la empresa.