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
Publicar un comentario