¿Qué es DevOps?
El término DevOps, es una combinación de los términos en inglés development (desarrollo) y operations (operaciones), designa la unión de personas, procesos y tecnología para ofrecer valor a los clientes de forma constante.
Según Microsoft, DevOps permite que los roles que antes estaban aislados (desarrollo, operaciones de TI, ingeniería de la calidad y seguridad) se coordinen y colaboren para producir productos mejores y más confiables. Al adoptar una cultura de DevOps junto con prácticas y herramientas de DevOps, los equipos adquieren la capacidad de responder mejor a las necesidades de los clientes, aumentar la confianza en las aplicaciones que crean y alcanzar los objetivos empresariales en menos tiempo.
Orígen y actualidad
Hasta principios del 2000, la mayoría del software era desarrollado y actualizado usando la metodología en cascada (waterfall), un enfoque lineal para proyectos de desarrollo a gran escala. Los equipos de desarrollo de software pasaban meses desarrollando grandes cantidades de código nuevo que impactaba la mayoría o la totalidad de la aplicación. Debido a que los cambios eran tan extensos, se demoraban varios meses más en integrar ese nuevo código en el código base.
Y esto no frenaba aquí, luego, equipos de garantía de calidad (QA), seguridad y operaciones pasaban meses en pruebas e iteraciones hasta que mucho tiempo después se lanzaba al mercado el producto o servicio.
Las empresas de software no podían permanecer ajenas a esa necesidad de agilidad, y fue en el año 2008, en una conferencia sobre agilidad, donde varios expertos debatieron sobre una mayor integración de los departamentos de infraestructura y operaciones de IT y desarrollo de software, con el objetivo de aumentar la puesta en producción del software. De esta forma nace el concepto DevOps, acrónimo en inglés de development (desarrollo) y operations (operaciones).
El resultado fue la separación de DevOps de las metodologías ágiles. Se añadieron nuevos procesos y herramientas que amplían la iteración continua y la automatización de CI/CD al resto del ciclo de vida de la entrega de software, y, además, se implementó una estrecha colaboración entre el desarrollo y las operaciones en cada etapa del proceso.
La adopción de una metodología DevOps no fue de la noche a la mañana, e incluso aún sigue sin implementarse en muchos equipos.
¿Por qué implementar DevOps en mi empresa?
Porque facilita la colaboración entre los distintos profesionales de una organización, especialmente en el caso de Desarrollo, Calidad y Operaciones. Además, provee de un entorno de trabajo colaborativo para el uso de herramientas entre los equipos de trabajo.
El objetivo de DevOps es garantizar el desarrollo de software más seguro y de mayor calidad.
Un reciente estudio lanzado por CA Technologies y Coleman Parkes Research afirma que el 84% de las organizaciones está invirtiendo recursos en formación e investigación para adaptarse a la Transformación Digital y a DevOps (Keeping Score: Why Digital Transformation Matters, está formado por una muestra de más de 1.700 cargos ejecutivos de IT en todo el mundo).
El estudio, asimismo, revela que cualquier empresa que se adapte al enfoque DevOps será más competitiva. Además, se evidencia que el departamento de IT se verá especialmente beneficiado después de pasar por este proceso. Sin embargo, la encuesta también reveló que solo el 36% de los encuestados se considera un usuario avanzado en DevOps, el 39% posee habilidades básicas y un 25% no posee nociones en DevOps.
Mejoras que aporta DevOps en las empresas
- Velocidad
Brinda la posibilidad de innovar con mayor rapidez, adaptándose mejor a los cambios en los mercados y adquiriendo mayor eficacia en la consecución de los resultados empresariales. El modelo de DevOps permite a sus equipos de desarrollo y operaciones lograr estos resultados. Por ejemplo, los microservicios y la entrega continua permiten que los equipos se hagan responsables de los servicios y los actualicen con mayor rapidez.
- Entrega rápida
Incrementa la frecuencia y el ritmo de las versiones, a fin de innovar y mejorar el producto con mayor rapidez. Cuanto más rápido publique nuevas características y arregle errores, más rápido podrá responder a las necesidades de los clientes y desarrollar una ventaja competitiva. La integración continua y la entrega continua son prácticas que automatizan el proceso de publicación de software, desde la creación hasta la implementación.
- Confiabilidad
Garantiza la calidad de las actualizaciones de la aplicación y los cambios en la infraestructura a fin de poder realizar entregas más rápidas de forma confiable mientras ofrece una experiencia positiva a los usuarios finales. La integración y entrega continua permite comprobar que cada cambio es funcional y seguro.
- Escalabilidad
La automatización permite administrar sistemas complejos o cambiantes de forma eficaz con menos riesgo. Por ejemplo, la infraestructura como código lo ayuda a administrar los entornos de desarrollo, pruebas y producción de forma repetible y más eficaz.
- Colaboración mejorada
Desarrolle equipos más eficaces con un modelo cultural de DevOps, que enfatiza valores como la propiedad y la responsabilidad. Los desarrolladores y equipos de operaciones colaboran estrechamente, comparten muchas responsabilidades y combinan sus flujos de trabajo. Así se reducen las ineficacias y se ahorra tiempo (p. ej. se reducen los periodos de transferencia entre desarrolladores y operaciones, cuando escribe código que tiene en cuenta el entorno en el que se ejecuta).
- Seguridad
Se puede adoptar un modelo de DevOps sin sacrificar la seguridad si utiliza políticas de conformidad automatizadas, controles minuciosos y técnicas de administración de la configuración. Por ejemplo, cuando utiliza la infraestructura como código y la política como código, puede definir y supervisar la conformidad a escala.
Caso de Éxito
Al llegar a un equipo que desplegaba un soft sobre Cajeros Automáticos (2000 ATM distribuidos geográficamente por toda la Argentina) con metodología de cascada, cada vez que se desplegaba un Hotfix menor se tardaba desde el desarrollo, compilación (manual), testing (manual) alrededor de 2 semanas y la implementación alrededor de 1 mes.
Cambiando la forma de trabajo hacia una cultura de DevOps, implementando CI/CD utilizando una estrategia sólida de gitflow sobre GitLab, con compilación automatizada con Jenkins y pruebas automatizadas sobre un simulador de ATMs para luego publicar el paquete resultante en Artifactory. Trabajando de esta manera durante 8 meses, logramos reducir el tiempo de desarrollo, compilación y testing a 3hs y la distribución a los ya 9500 ATMs a tan solo 6hs.
En Exisoft conocemos las herramientas y sabemos implementarlas. Contactate con nosotros para comenzar juntos el camino hacia una cultura digital. 👉LINK CONTACTO
Exisoft | Transformamos grandes empresas en líderes digitales