¿Qué es DevOps?

DevOps es un término para un grupo de conceptos, que aunque no son nuevos, han experimentado un renacimiento y rápida propagación a través de la comunidad técnica. Como todo término de moda, (Cloud Compunting?), las personas tienen impresiones erradas y a veces contradictorias de lo que significa. Este artículo intenta dar una definición base de lo que DevOps representa.

Definición de DevOps

DevOps es un término relativamente nuevo para describir lo que también ha sido llamado como “administración ágil de sistemas” y también el trabajo y colaboración en conjunto de los equipos de operaciones y de desarrollo.

Puedes pensar en DevOps como la participación efectiva de los administradores de sistemas en el proceso de desarrollo de aplicaciones, utilizando las mismas técnicas ágiles que usan los desarrolladores.

Para este propósito “DevOps” no diferencia entre las diferentes sub-disciplinas de la administración de sistemas. Bajo el alero de “Ops” se ubican ingenieros, administradores de sistema, personal de operaciones, entre varios otros.

DevOps significa un montón de cosas diferentes para diferentes personas porque el “desarrollo ágil” en si mismo cubre un terreno bastante amplio. Algunas personas dirán que DevOps es “la colaboración de los departamentos de desarrollo y operaciones”, o que es “tratar tu código como infraestructura”, o “usar automatización”, o “usar kanban”, o una variedad de términos similares que se relacionan de una u otra forma.

La mejor forma de definir su significado en profundidad es comparándolo con la definición de desarrollo ágil, que según Wikipedia y el manifiesto ágil, se resumen en tres puntos:

  • Principios Ágiles - son los valores principales del movimiento, como: colaboración, personas antes que procesos, software antes que documentación y la disposición al cambio antes que la sobre planificación.

  • Métodos Ágiles - procesos específicos para implementar los principios ágiles. Iteraciones, Lean, Programación Extrema (XP), Scrum. En resumen, todo lo contrario al “Desarrollo en Cascada”.

  • Prácticas Ágiles - técnicas usadas a menudo con el desarrollo ágil, pero que no son requisitos. Como puede ser el Test Driven Development (TDD), Integración continua (CI), etc.

Al poner atención a lo que las personas hablan acerca de DevOps, podemos ver que se relacionan fuertemente con los puntos anteriores:

  • Principios DevOps - Como debemos pensar diferentes sobre operaciones. Ejemplos incluyen la colaboración entre administradores y desarrolladores, “infraestructura como código”, etc.

  • Métodos DevOps - Procesos que se usan para realizar operaciones ágiles, como iteraciones, lean/kanban, reuniones de 5 minutos, etc.

  • Prácticas DevOps - Técnicas y herramientas específicas usadas como parte de la implementación de los procesos, como herramientas de automatización (Puppet, Cheft), continuous deployment, sistemas de monitoreo (Nagios, Zabbix), y cualquier aplicación que tengas en tu “caja de herramientas”.

Si nos guiamos por esta conclusión, de que DevOps consiste en traer las prácticas del desarrollo ágil a la administración de sistema y el trabajo en conjunto entre desarrolladores y administradores de sistemas, vemos que DevOps no es una descripción de cargo o el uso de herramientas, sino un método de trabajo enfocado a los resultados.

DevOps es un término que está sonando fuerte, prueba de ello es la fuerte demanda de Ingenieros DevOps, pero no te dejes engañar, tal cosa no existe. Lo que si existe es tu experiencia y tu disposición a trabajar en equipo usando múltiples sombreros para sacar adelante los desafíos.


Este post es un extracto traducido del Blog The Agile Admin, puedes encontrar el post original en el siguiente enlace: http://theagileadmin.com/what-is-devops/

Comentarios