DevOps



Breve Historial


El término DevOps se populariza a raíz de los primeros eventos DevOps Days que se suceden en Bélgica desde 2009, y que se han ido extendiendo de forma global. Su aparición está estrechamente relacionada con:
  • La adopción de la filosofía de producción ajustada, a nivel empresarial, y de las metodologías ágiles, en los equipos de desarrollo.
  • La demanda de incrementar el radio de publicación de nuevas versiones de los productos.
  • La amplia oferta de infraestructuras de virtualización y computación en la nube.
  • El incremento del uso de herramientas para la automatización de los centros de datos y de las herramientas de configuración.

Pues bien, este acrónimo significa Development Operation, esta metodología fue inicialmente creada por Patrick Debois y Andrew Clay los cuales la llamaron Agile Ops. Posteriormente iniciaron una serie de conferencias y foros llamados Devops Day, las cuales dieron nacimiento a finalmente dio origen al famoso termino, el cual se ha hecho muy popular, de hecho, es uno de los más mencionados actualmente en el entorno de TI.




Durante todo este tiempo, el movimiento DevOps se ha desplazado sobre los siguientes puntos:
  • Definición: Evidentemente, uno de los intereses fue concretar a qué se refería. Aún hay, de vez en cuando, bastantes discusiones sobre este tema.
  • Despliegue y aprovisionamiento: Centrándose en la presión constante del resto de departamentos de producción, concretar cómo se puede conectar el desarrollo, integración y despliegue continuos, a fin de satisfacer las necesidades y expectativas del negocio. Una consecuencia de esta etapa es la enorme evolución que las herramientas de integración y despliegue continuos han sufrido en los últimos años.
  • Monitorización: En este campo se han centrado enormes esfuerzos por mantener el control sobre los aspectos realmente importantes de la producción y operación del producto. 

¿Qué es Devops?


DevOps es una metodología con la que se cambia el modo en el que se gestiona el ciclo de desarrollo de software, a nivel tecnológico, pero sobre todo a nivel cultural. Los equipos de desarrollo y de Operaciones (o sistemas) eliminan el trabajo “en silos” y comienzan a trabajar de una manera colaborativa y bidireccional. Entre todos cubren el ciclo completo de desarrollo de software, garantizando procesos mucho más rápidos y seguros, entregas más fiables y productos de calidad. Para conseguirlo, se introducen nuevas herramientas que contribuyen a la automatización de tareas repetitivas y al trabajo en equipo, ayudando a agilizar los procesos y evitar trabajo duplicado y la introducción de nuevos errores.

Esta metodología se puede representar de una manera muy sencilla, visualmente, ya que mediante la implementación de los famosos diagramas de Venn, se puede mostrar cómo está estructurado DevOps, en este se da la intersección de desarrollo (ingeniería de software), operaciones y control de calidad. Esto es de gran ayuda, ya que nos permite entender cómo se relacionan estas tres áreas que son como corazones para el desarrollo de sistemas, lo interesante de esto es que en las empresas es muy difícil que se encuentra esta integración., pero con DevOps esto queda en el pasado ya que este promueve un conjunto de procesos y métodos para tener una comunicación y colaboración entre el desarrollo, el control de calidad y las operaciones de TI.



La adopción de DevOps está siendo impulsada por factores tales como:
  • El uso de los procesos de desarrollo ágiles y otras metodologías.
  • El incremento de una mayor tasa de versiones de producción por parte de las unidades interesadas de aplicación y de negocios.
  • Amplia disponibilidad de virtualización y la infraestructura cloud computing de proveedores internos y externos.
  • Aumento del uso de la automatización del data center y las herramientas de gestión de configuración.

Objetivo


DevOps establece una “intersección” entre Desarrollo, Operaciones y Calidad, pero no se rige por un marco estándar de prácticas, sino que permite una interpretación mucho más flexible en la medida en que cada organización quiera llevarlo a la práctica, según su estructura y circunstancias.

Su principal objetivo es promover un conjunto de procesos y métodos para mejorar la comunicación y la colaboración entre departamentos.

Tres ideas claves sobre DevOps:

  • DevOps es una metodología para creación de software.
  • DevOps se basa en la integración entre desarrolladores software y administradores de sistemas.
  • DevOps permite fabricar software más rápidamente, con mayor calidad, menor coste y una altísima frecuencia de releases.
  • Cómo gestionar DevOps para extraerle el máximo rendimiento.

Recomendaciones de expertos en DevOps




1. Los programadores también deben tener conocimientos en administración de sistemas y bases de datos: para que la creación del software sea exitosa, es importante que los programadores de la codificación también tengan ciertos conocimientos sobre tratamiento de bases de datos y sistemas..

2. El paso de desarrollo a producción debe estar totalmente verificado: resulta imprescindible que exista un procedimiento autorizado y 100% seguro para que el código del salto desde el departamento de desarrollo al de producción. La idea es evitar los altísimos costes que supone tener que encontrar un error dentro del código.


3. Fomentar entre los programadores una capacidad de testeo alta: la metodología DevOps hace que cada cambio deba pasar por todo un ciclo de pruebas. Por eso, los programadores deben ser los primeros analistas de su propio código, ya que cualquier pequeño cambio puede suponer una pérdida de tiempo muy elevada si debe pasar por todo el ciclo de pruebas.


4. Crecimiento del software de forma sostenida: tal y como recomiendan muchos expertos, el inicio de cualquier proyecto de software debe contar con una codificación sencilla capaz de ir evolucionando de forma sostenible junto al proyecto. El diseño, por su parte, debe ser ambicioso y estar todo lo desacoplado posible de la programación. De esta forma, se podrán introducir modificaciones sin que las partes estructurales del software se vean directamente modificadas.


5. El software resultante tiene que ser fácil de auditar y depurar: esa es la esencia de DevOps, ya que, al eliminar las barreras entre departamentos anteriormente independientes, se pueden corregir ciertos aspectos de una forma muy fácil.


6. El sistema debe ser capaz de tener una cierta autodefensa: ante ataques o errores externos imprevistos. El objetivo, por lo tanto, es que el software siga funcionando pase lo que pase.


7. Debe existir siempre un protocolo para contener los daños en casos de emergencia: tal y como se ha comentado en pasos previos, el paso entre desarrollo y producción es muy importante y antes de enviarlo se deben de tener en cuenta todos los posibles errores que puedan producirse con el tiempo. 


Conclusión


En conclusión, el termino DevOps, como lo mencionamos se ha vuelto muy popular actualmente y es algo que está tomando mucha fuerza, y que además está siendo muy influenciado en áreas de la computación como lo son el QA, desarrollo y operaciones. Así que, personalmente, este término se volverá en pieza fundamental de la ingeniería de software.



En la imagen anterior vemos como existe una pared de ladrillos que separa a dos personas, les impide comunicarse, y esto incluye todo, la comunicación entre miembros de un equipo de trabajar es algo primordial. Por eso DevOps está rompiendo este muro, gracias a sus metodologías y herramientas, se puede cambiar el modo en el que se gestiona el ciclo de desarrollo de software ya sea a nivel tecnológico, pero lo más importante es que se dé un cambio drástico a nivel cultural. De tal manera que los equipos de desarrollo y de Operaciones y QA eliminen el trabajo individual, que no se de esa arrogancia de decir que voy a hacerlo yo solo, sino que se comience a trabajar de una manera colaborativa y bidireccional, para así lograr cubrir el ciclo completo de desarrollo de software de una manera distinta a la tradicional.


Referencias Bibliográficas



Araujo, J. G. (18 de febreo de 2011). Obtenido de Que demonios es eso de Devops (y porquedebería interesarme): https://es.slideshare.net/therobot/que-demonios-es-eso-de-devops-y-porquedebera-interesarme

Bello, C. (30 de enero de 2017). Obtenido de ¿Sabes realmente qué es DevOps?: https://www.xeridia.com/blog/sabes-realmente-que-es-devops

Bruna, P. (23 de octubre de 2013). Obtenido de ¿Qué es DevOps?: http://blog.itlinux.cl/blog/2013/10/23/que-es-devops/

Fosch, I. (2 de noviembre de 2013). ENTRE DEV Y OPS. Obtenido de ¿Qué es DevOps?: http://www.entredevyops.es/posts/que-es-devops.html

Jones, M. (3 de octubre de 2010). Obtenido de DevOps: https://es.slideshare.net/geekle/devops-5348895

Lent, J. (s.f.). Obtenido de Definición de DevOps: mejor explicamos lo que no es: http://searchdatacenter.techtarget.com/es/consejo/Definicion-de-DevOps-mejor-explicamos-lo-que-no-es

Mueller, E. (8 de abril de 2015). Obtenido de DevOps 101: https://es.slideshare.net/mxyzplk/devops-101

NA. (19 de junio de 2017). Obtenido de Consejos para gestionar DevOps de manera efectiva: http://devopsfactory.es/2017/06/19/gestionar-devops-de-forma-efectiva/

Oterino, A. M. (5 de diciembre de 2014). Obtenido de Vayamos al grano, ¿qué es eso de DevOps?: http://www.javiergarzas.com/2014/12/devops-en-10-min.html

Comentarios

Entradas populares de este blog

Revisiones Estáticas - IEEE-1028: revisiones de software & Modelos de desarrollo

Plan de Pruebas Y Plantilla de Plan de Pruebas

Fracasos del Software