16 Pinceladas de DevOps

1. ¿Qué es DevOps? 

Es un término técnico que representa un nuevo paradigma. Pretende incrementar la comunicación, colaboración y eficiencia de los diferentes equipos de trabajo.

2. ¿Qué equipos de trabajo?

Generalmente las áreas de trabajo se dividen en grupos de desarrolladores, administradores de sistemas (operaciones) y equipo de pruebas.

3. ¿Por qué es un paradigma?

Es una nueva manera de enfocar las cosas. Generalmente los objetivos de los equipo de trabajo son opuestos. Mientras que los desarrolladores tienen como objetivo incrementar la funcionalidad, los administradores de sistemas deben mantener el sistema lo más estable posible. Esto suele provocar una constante negativa al cambio en el equipo de sistemas y un constante cambio de configuraciones y estándares en el equipo de desarrollo para evitar el bloqueo.

4. ¿Y el equipo de pruebas?

Las pruebas no son nativas del entorno de desarrollo. Los sistemas también deberían ser sometidos a pruebas. DevOps aboga por mantener los sistemas mediante tecnologías que permitan configurarlos mediante código y parámetros, y éste a su vez someterlo a pruebas.

5. ¿Qué requisitos se deben cumplir?

Evidentemente, para lograr que los administradores de sistemas desarrollen aplicaciones de control de sus sistemas, y los desarrolladores tengan en cuenta los entornos de los despliegues de sus aplicaciones, ambos grupos profesionales deberían adquirir conocimientos universales mutuos. Para evitar la escalada tecnológica, se establecen convenios y políticas. De esta manera se incrementa la comunicación.

6. ¿Cuál es la política principal?

DevOps establece que los equipos no deben ser resistentes al cambio. Los cambios han de ser especificados en los controles de la versión, cuyos repositorios de código deberán estar accesibles a todos los actores involucrados y permitir de forma ágil revertir los cambios y monitorizar su impacto.

7. ¿Qué es un repositorio?

Un repositorio es una entidad paralela del sistema destinada a almacenar elementos software necesarios para construir las aplicaciones. Son la plataforma intermedia de comunicación, ya que en ellos, los diferentes grupos “entregan” las unidades de trabajo al resto de grupos.

8. ¿Y las pruebas?

Las pruebas han de ser lo más automáticas posibles. El equipo de pruebas debe poder disponer de las configuraciones de los entornos en los repositorios, los códigos del equipo de desarrollo, y entregará, al igual que los demás grupos, sus resultados en un repositorio.

9. ¿Qué son los entornos?

Un entorno es un subsistema. Suelen ser clasificados según su función: desarrollo (las máquinas locales de los desarrolladores), pruebas (máquinas intermedias destinadas a la integración continua o principio-fin), pre-producción (para pruebas de sistema, pruebas de regresión e instalación) y producción. En todos, las funcionalidades que siempre deberán estar disponibles son: el acceso a los repositorios, la monitorización y el hecho de poder replicarlos, mediante parámetros.

10. ¿Qué se debe monitorizar?

Todo debería poder probarse, mediante pruebas automáticas. Los sistemas de monitorización, al igual que los repositorios deben estar en paralelo a los entornos monitorizados.

11. ¿Qué grupos de trabajo infieren en cada entorno?

Todos los grupos deben adquirir conceptos generales de todos los entornos. Los desarrolladores deben intentar mantener el entorno de desarrollo fiel a la producción, con el objetivo de esquivar el efecto “en mi máquina funciona”. Los administradores deberán inferir en los equipos de desarrollo, proveyéndoles de los recursos necesarios para replicar con la máxima fidelidad el entorno de producción.

12. ¿Qué herramienta es mejor?

No existe la bala de plata. Aunque es cierto que hay herramientas que se autodenominan “DevOps”, la realidad es que el éxito de la implantación del paradigma depende casi exclusivamente de los equipos de trabajo.

13 ¿Cuál sería el primer paso?

Sin lugar a dudas, definir el conjunto de metodologías y políticas, tales como los repositorios, tests y configuración de los sistemas. (A este conjunto se le define como SCM : Software Configuration Management)

14 ¿Cuáles son los mayores inconvenientes?

La resistencia al cambio. En el mundo de los sistemas, las cosas que funcionan, son protegidas frente a modificaciones. En el desarrollo, la resistencia a establecer políticas puesto que tienden a buscar la mayor flexibilidad posible en su trabajo.

15. ¿Cuál es la mejor estrategia de pruebas?

TDD ~ (Test Driven Development). Consiste en que toda entrega, independientemente del grupo emisor, debe poder probarse en un entorno replicado, ya que de lo contrario está incompleta. Esta estrategia aboga por implementar el test de la funcionalidad, antes de la codificación de la propia funcionalidad. La misma estrategia debería aplicarse a los sistemas, y a las pruebas en sí mismas. (También es conocida como la definición del estado ideal)

16. Conclusión final

DevOps es un movimiento cultural para mejorar la comunicación. El esfuerzo radica en las personas, no en las tecnologías, ya que éstas cambian frecuentemente. La premisa principal es conseguir extender el desarrollo ágil, a los sistemas como conjunto, la monitorización y las pruebas.

¡Comparte!Email this to someoneTweet about this on TwitterShare on FacebookShare on Google+Pin on PinterestShare on LinkedInShare on Tumblr

1 Comment

Deja un comentario

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