DevOps, Agilismo en Infraestructura

Home  /  DevOps  /  DevOps, Agilismo en Infraestructura

DevOps, Agilismo en Infraestructura

No votes yet.
Please wait...

DevOps es un termino implantado por Jesse Robins, el CEO de Opscode, creadores de Chef, una herramienta para automatizar/configurar software.

Desde que las áreas de desarrollo comenzaron a utilizar metodologías ágiles para generar constantemente producto y lograr que el cliente tengo un alto nivel de compromiso con el proceso de desarrollo. Estas metodologías se mantenía distante de las áreas de operaciones/infraestructura. Hasta el nacimiento de DevOps (Developers-Operators), esto no es una formula mágica o una receta que se aplica y soluciona nuestra vida. Es una metodología que utiliza algunos principios y  herramientas del agilismo aplicadas a el área de infraestructura/operaciones.

Con la masificacion del cloud y a la virtualizacion de servidores uno puede aprovisionar un servidor en pocos minutos, pero si no tenemos desplegado el software con sus dependencias y configuraciones no seria muy útil este server. Esta necesidad fue subsanada por una serie de Configurations Managers que salieron al mercado, basados en soluciones open source (Chef, Puppet Salt, Ansible). A partir de este momento estamos en condiciones de afirmar que podemos desplegar infraestructura de forma muy dinámica y completamente manejada como si fuera codigo. Y si nuestra infraestructura es código podremos programar con TDD (Test-Driven Development) podemos versionarla con GIT o Mercurial, podemos realizar pruebas de integración y realizar integración continua sobre nuestra infraestructura. Pero por el momento solo vimos que automatizamos el aprovisionamiento y el despliegue de infraestructura, nos permite utilizar técnicas y herramientas del agilismo, ya que convertimos nuestro hardware y su configuracion en código. Pero todavía no tenemos muy en claro que es DevOps.

DevOps es la idea superadora al conflicto de intereses entre los desarrolladores y los operadores. Si evaluamos como un desarrollador genera valor en una compañía, podes asegurar que el desarrollo de nuevas funcionalidad que cubran necesidades de negocio, es decir que impulsa en cambio constante. Pero los operadores generan valor garantizando la estabilidad, seguridad y disponibilidad de los sistemas, es decir que ralentizan el cambio, no quieren cambios ya que estos atacan su principal función. Para solucionar este conflicto las dos áreas deben utilizar metodologías ágiles y generar feedback constante y disponible para los Devs como para los Ops. Si los Devs versionan el código y mantienen el master del proyecto siempre con la ultima versión de código funcional (Sin Basura en el master), comiteando compulsiva-mente y tenemos pruebas funcionales, unitarias y de integración, podemos utilizar integración continua para dar feedback rápido a los ops de que el código es confiable y que pasos todos los test. El Ops puede despegar un código con pocos features, lo cual garantiza menor cantidad de cambios y brindar feedback del proceso a los Dev para que esta retro-alimentación genere una sinergia que puede derivar en un proceso de Continuos Delivery o Continuos Deploy. Es decir aplicar versiones o parches mas de una ves por día en producción y teniendo un costo relativamente bajo de errores. Flicker por ejemplo despliega cerca de 10 veces por día en producción.

Como vemos DevOps es un movimientos que extiende agilismo y  establece:

cultura:

  • Respeto
  • Verdad
  • No penalizar el error
  • Evitar la culpa

Herramientas:

  • Automatizar Infraestructura
  • Control de versiones
  • Compilar y Desplegar
  • Feedback continuo

En síntesis DevOps es una construcción colectiva entre el área de Desarrollo y Operaciones/Infraestructura, donde no hay reglas, si no principios y herramientas para combinar con la metodología agil adoptada por los Dev (Lean, Scrum, etc). Como ultima recomendación lean este libro The Phoenix Project es una novelo sobre el área de it y sus recurrentes problemas, y como comenzar a aplicar DevOps en un area de tecnología.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *