DevOps
O la estrecha colaboración entre desarrollo y operaciones.
Concepto de operaciones
Aquellas actividades que, sin aportar valor, son
necesarias para una correcta ejecución de la
actividad principal.
División clásica en el Mundo TI
Operaciones
Sistemas/infraestructuras
Comunicaciones
Explotación
Calidad
Funcionales (regresión,
unitarias…)
Carga
Seguridad
Dentro de la mente de una persona
de operaciones
Objetivos clásicos Otras tareas de operaciones:
Búsqueda de la estabilidad Monitorizar
Gestión de peticiones de Gestión de la configuración
Desarrollo Despliegue de aplicación
Realizar sus propias tareas de Infraestructura
mantenimiento (cambiar Discos
Despliegue de Código
duros, reinstalar switch,
actualizar versiones del SO y Control de versiones
del JBOSS)
Problemas de relación entre
Desarrollo y Operaciones
Desarrollo(Cocinero) Operaciones(limpia)
Busca el cambio Busca estabilidad
Realiza peticiones Tienesus propios
Busca la proyectos
automatización
Históricamente
Presiona a
poco automatizado
operaciones para que
avancen los proyectos. Se ve a desarrollo
No les ve incorporados como un ladrón de
en el negocio. tiempo
Solución: DevOps
Se desarrolla un conjunto de herramientas que intentan:
Automatizar todo el trabajo
Establecer restricciones
Emerge la figura del DevOps
Permiten dedicarse a “sus” proyectos: Ejemplo AWS, Azure
Dejamos al DevOps crearse sus máquinas/contenedores (¿Qué es un contenedor?)
Se les puede restringir políticas dentro de esos contenedores
Continuar con el Flow: (continuos delivery)
Minimizar Tiempo entre desarrollo y despliegue
Minimizar Tiempo en solución de errores
Minimizar Tiempo en reparación de errores (Crazy Monkey)
Herramientas del ‘DevOps’ero
Monitorizacion Control de Versiones
Configuration Management: Se usa no solo para el código si
no para las librerías, máquinas
Toda la pila de programas se puede y sus archivos de configuración
programar para que se automaticen las que tenemos en producción
tareas
GIT
Cheff, Puppets
Un despliegue rápido de máquinas: Dockers
(virtualización de SO, no de HW como
VmWare)
Application deployment:
Despliegue y pruebas automatizadas por
todos los entornos típicos: Integración, Pre
y Pro.
Jenkins
Control de Versiones
Se usa no solo para el código si no para las librerías, máquinas y sus
archivos de configuración que tenemos en producción
GIT
Integración DevOps y Dev (AWS)
Patrón Anti-Patrón
Aplicaciones 4º Ejercicio
Examen del último año:
Supongamos que nos dan acceso a una
infraestructura externa (cloud de la AGE)
¿Sería necesaria un área entera de infraestructura, o
solo un par de personas?
¿El DevOps, que trabaja con negocio iría en capítulo 6
o el 2?
¿podríamos llamar al área, área de calidad e
infraestructuras, ya que mucho trabajo de
infraestructuras se los lleva la cloud de la AGE?