¿Que  demonios  es eso de Devops?    (y porqué debería estar interesado) Jacobo García López de Araujo.
Algunas aclaraciones http://www.flickr.com/photos/bucketfactory/2268006634/
La encuesta
¿Que  demonios  es eso de Devops?    (y porqué debería estar interesado)
¿Que  demonios  es eso de Devops?    (y porqué debería estar interesado) DevOps is a response to the growing awareness that there is a disconnect between what is traditionally considered development activity and what is traditionally considered operations activity.
Un ejemplo. El equipo de desarrollo quiere poner un nuevo site en producción. Developer Sysadmin
Para poner el proyecto en producción el equipo de sistemas realiza las siguientes operaciones: Prepara el script de deployment (si hay script).
Refleja (a mano) los cambios en la configuración necesarios.
Instala las librerias necesarias (con el sistema de paquetes en el mejor caso).
Realiza una carga de datos en la BBDD.
Etc.
Por supuesto. Durante todo ese proceso algo falla y hablamos con el equipo de desarrollo para ver como lo solucionamos.
¿ Y que es lo que nos responde el desarrollador ?
En mi máquina funciona.
 
Un desarrollador nos pide que instalemos el paquete wadus3-dev que no esta en la distro que usamos. Otro ejemplo
¿Cual es nuestra respuesta? Otro ejemplo
 
Both development and operations fundamentally see the world, and their respective roles in it, differently. Each believe that they are doing the right thing for the business... and in isolation they are both correct! So... What Happens?
El concepto.
El concepto. Situación actual. Los (malditos) desarrolladores: No tienen conocimiento sobre el impacto de su código en los sistemas.
Tienen un conjunto de herramientas optimizado para desarrollar rápidamente.
Tienen un sistema operativo optimizado para el uso de escritorio.
Ejecutan el código localmente en una sola máquina. Incluso cuando hay entornos de testing/staging/integración.
Una diferencia clave. Los desarrolladores aportan valor al negocio implementando requisitos funcionales.  Sistemas aporta valor al negocio implementando seguridad, estabilidad y rendimiento.  Ambas metas entran en conflicto ya que poner nuevas funcionalidades en producción implica asumir riesgos.
Una diferencia clave. Sistemas intenta minimizar riesgos intentando evitar el cambio o ralentizandolo.   ¿ Al final qué sucede? Todo el proceso de puesta en producción se ralentiza y se aumenta el riesgo ya que acabamos poniendo en producción grupos de cambios simultáneamente.
We are doing it wrong!
We are doing it wrong! El objetivo de operaciones no es (únicamente) mantener un  sistema seguro, estable y rápido. El objetivo de operaciones es habilitar los objetivos de negocio.  El negocio requiere cambio. Y el cambio es la raiz de la inestabilidad.
We are doing it wrong! Nuestro objetivo es favorecer el cambio según las necesidades del negocio lo requieran, mientras minimizamos los riesgos que implican ese cambio.
El concepto ¿En que consiste?
El Concepto ¿en que consiste? Implementar Agile en el departamento de sistemas.
Definir un conjunto nuevo de procedimientos para operaciones.
Utilizar un conjunto de herramientas que de soporte a los dos puntos anteriores.
Establecer mecanismos de comunicación efectivos entre todas las partes implicadas en la puesta en producción de un producto.
Agile en Sistemas Scrum
Kanban http://www.infoq.com/minibooks/kanban-scrum-minibook
Procedimientos Tenemos que modificar los procedimientos actuales. Una vez más, nuestro objetivo es evitar situaciones como esta:
Procedimientos
Procedimientos Implicación en las primeras fases del de desarrollo.
La configuración es código, separado del codigo de la aplicación.
Herramientas consistentes entre los equipos de operaciones y desarrollo.
Administración abstracta.

Que demonios es eso de Devops (y porquedebería interesarme)

Notas del editor

  • #3 La transparencias son bastante informales y pretenden mostrar mi concepción de devops, basado en mi experiencia + conocimientos. Las transpas son un poco caóticas, parte de la culpa la tiene openoffice y mi desconocimiento sobre software de presentaciones. A última hora se me ha ocurrido llenar la charla de fotos absurdas, la idea es hacer la charla más amena. Algunas de las cosas que voy contar llevan haciendose años, otras son nuevas. Todas son de sentido comun. Las transpas las colgaré mañana por la mañana en slideshare, se anunciará por la lista y twitter. Operaciones y sistemas lo uso intercambiablemente.
  • #4 ¿Quien ha hecho la encuesta? Vamos a verla (preguntar cual es la respuesta correcta) Os felicito! La idea de usar la encuesta básicamente consistía en llamar la atención un poco, bueno, tambien la usaré algo en la charla.
  • #6 Awareness = entendimiento ,conciencia, comprensión, realización Yo me di cuenta de esto en mi primer trabajo como sysadmin.
  • #7 Preguntar: ¿que necesitamos para poner el proyecto en producción?
  • #16 Hemos entendido cual es la problemática.
  • #18 Comparado con: Distinto SO orientado a sistemas No siempre las mismas, herramientas que estan orientadas a seguridad, estabilidad, rendimiento. Ejecutamos en varias máquinas, muchas veces siguiendo arquitecturas de distintas capas, frontales, caché, etc..
  • #19 Preguntar ¿Como aportan valor los desarrolladores a la empresa? ¿Y los sysadmins?
  • #20 El objetivo de operaciones no es mantener un sistema seguro, estable y rápido. El objetivo de operaciones es habilitar el negocio. El negocio requiere cambio. Y el cambio es la raiz de la inestabilidad. Hasta ahora la visión desde ops es retrasar o desmotivar el cambio. Necesitamos cambiar esta mentalidad, necesitamos permitir el cambio según las necesidades lo requieran, mientras minimizamos el riesgo de cambio.
  • #23 Necesitamos un cambio de mentalidad.
  • #26 Preguntar: ¿Conoceis scrum y kanban? Scrum va de separar grupos y el proyecto en unidades mas pequeñas. Separar el tiempo de desarrollo en iteraciones más pequeñas e integrar los resultados regularmente para ir viendo el avance. Kanban tambien separa el trabajo en historiasy el progreso de cada historia en fases (todo, ongoing, done...). Se utiliza una herramienta sencilla para visualizar y medir el avance. Asimismo se limita el número de historias que puede haber al mismo tiempo. Scrum tiene más reglas a seguir, tiene iteraciones cerradas vs abiertas de Kanban.
  • #29 Herramientas consistentes: utilizar entornos similares Administración abstracta: no pensar en maquinas y ficheros de configuración sino en conjuntos de servicios a proveer, pensar en “features”. Cuando digo toda la plataforma hablo no solo de los repositorios de las aplicaciones y la configuración, hablo tambien del deployment, scriptación de los cambios en la base de datos y la gestión de infraestructura.
  • #31 Todos conocemos la serie, ¿no? Esta serie se desarrolla enteramente basandose en los problemas de comunicación entre los usuarios normales y los técnicos. ¿No nos ha pasado lo mismo con los desarrolladores u otros usuarios técnicos? Respeto Confianza Actitud saludable hacia el fallo. Evitar la culpa