Como parte del día a día y entre dos grupos de trabajo, existe una colaboración poco visible entre Development(si, esos chicos que están frente al ordenador diseñando y ejecutando código) y el área de Operaciones(efectivamente, de aquí se desprende el Ops ) todo 'ciclo de vida' de una aplicación conlleva la interacción entre ambas partes DevOps, es el termino al cual me refiero.

Problemáticas entre el área de desarrollo y operaciones

Uno de los grandes problemas a la hora de coordinar el trabajo entre el área de operaciones y la del desarrollo, son los temas burocráticos y algunos de performance que comienzan a generar los llamados bottlenecks, estos últimos son capaces de retrasar el release, desde unas cuantas horas, hasta unas cuantas semanas y en el negocio, lo mas importante siempre sera el time-to-market que no es mas que "En cuanto tiempo puedo liberar soluciones a problemas o nuevos requerimientos de mis usuarios finales", en cualquier negocio el tiempo es dinero. La problemática mas grande a resolver entre las áreas que conforman nuestro flujo de trabajo, es la forma en que interactúan y como se ven los unos a los otros(si, el área de development siempre dirá que operaciones no sabe desplegar su software y Operaciones siempre dirá que los desarrolladores solo generan mas bugs). En el libro "The Phoenix Project"uno de los managers lleva acabo un experimento social en el cual les pide a cada uno de los presentes en la junta, que compartieran algo vergonzoso que les halla ocurrido, después de todos compartir sus experiencias, notaron que son mas humanos de lo que parece y que por lo tanto, siempre cometerán errores.

Ya dime como comienzo con CI/CD

Tranquilos, si bien CI/CD es la parte que mas sobresalió al momento de implementar DevOps, es solo una de los tantos procesos que debemos implementar. Mas sin embargo, te compartiré algunas de CI(Continuos Integration) y otras mas de CD(Continous Delivery) que a mi parecer, vale la pena les des una leída

Se podrían enumerar aun mas, pero para un comienzo están bien, también herramientas muy versátiles como Jenkins que te puede apoyar en el CI/CD mediante plugins y centralizar todo, o también están GitHub y GitLab que de igual manera, ya implementan ciclos completos para DevOps

Planning

El proceso inicial de todo ciclo de DevOps es el monitoreo o plan de los features a liberar, aquí podemos enumerar algunas herramientas como:

CI

  • Jenkins
  • GitHub
  • GitLab
  • TeamCity

CD

  • Jenkins
  • Containers(Docker & K8s)
  • JBoss(for Java Dev)
  • Azure DevOps(for .NET Dev)

Por citar algunas que son libres. Existe otras de paga como glo board de GitKraken que tiene un particular estilo para automatizar algunos procesos de Agile.

Conclusiones

De momento el principal razón de implementar una cultura DevOps en tu oficina o en tus proyectos debería venir de un análisis previo de tus operaciones y de tu área de desarrollo que esten este generando "Cuellos de botella" que te impida satisfacer las necesidades de tus clientes o liberar soluciones esperadas por ellos, por que recuerda que nos debemos a la satisfacción de nuestros clientes y a vencer el time to market y nuestros principales competidores no nos dejen fuera de la jugada.

PD

Espero poder seguir nutriendo este articulo con mas acerca de DevOps llámense herramientas o algún proceso que pudiera ayudar agilizar sus operaciones, espero que disfrutaran de leerme.