¿Qué es DevOps?
Nacido de las dificultades de un proyecto de migración de datos desafiante y de lograr que los equipos integrados trabajen juntos de la mejor forma posible, DevOps se ha convertido en un movimiento para facilitar el desarrollo de software y su implementación, a la vez que mejora la confiabilidad y aumenta la seguridad. Si bien el proceso de integración de equipos de diferentes areas no es perfecto, cuando se realiza con éxito, DevOps ofrece importantes beneficios a través de las empresas, ya sean grandes o pequeñas.
DevOps combina las palabras Desarrollo y Operaciones, cuyo término se originó en 2009 y se le atribuye a Patrick Debois, quien es ampliamente considerado como el "Padre de DevOps" y es el fundador de la popular conferencia DevOpsDays.
El enfoque filosófico de Debois para el desarrollo y las operaciones de software nació de su experiencia el año anterior con un proyecto de migración de datos para el gobierno de Bélgica, donde los desarrolladores del proyecto y los administradores del sistema simplemente no estaban en la misma página. Después de esto, Debois creó la conferencia antes mencionada para compartir esta experiencia, y nació un movimiento, que llegó a ser conocido por su popular hashtag #DevOps de Twitter.
Dejando a un lado la lingüística, DevOps adopta varias definiciones y, al final, es un poco diferente en cualquier organización. En general, DevOps es un término que describe una colección de principios, herramientas e incluso cultura que se esfuerza por unificar el desarrollo del software y su implementación en las operaciones.
El objetivo de esto es hacer que una organización sea más ágil, para que los productos, como las aplicaciones, puedan desarrollarse a un ritmo más rápido que el software tradicionalmente creado. Con DevOps, las barreras habituales entre los grupos de desarrollo y operaciones en una organización se eliminan por completo, ya que estos dos equipos tradicionalmente separados se fusionan en un solo grupo.
De esta forma, los ingenieros pueden trabajar en un producto a lo largo de su ciclo de vida, y no solo durante el desarrollo, para luego entregarlo a otros con menos experiencia y menos conocimiento de lo que sucedió en las primeras etapas del proyecto.
Integrando la seguridad
La calidad de la seguridad también es manejada internamente por el equipo, sin la participación de un equipo externo, evitando una mayor fragmentación. En algunos casos, un tercer equipo, Seguridad de la Información, también se combina con DevOps, y esta combinación triple se conoce como un término compuesto recortado relacionado: DevSecOps. Esta integración de varios equipos contribuye a este enfoque 'más delicado' para el desarrollo y despliegue del software.
Tradicionalmente, el desarrollo de software y su implementación han sido un proceso laborioso y manual que, como era de esperar, es lento. El mercado cambiante de hoy en día innova a una velocidad vertiginosa, y las ventajas van para aquellas organizaciones que pueden seguir el ritmo de este entorno, en lugar de arriesgarse a la casi certeza de quedarse atrás.
DevOps utiliza herramientas para acelerar estos procesos, por ejemplo, utilizando la tecnología de apilamiento y herramientas para aumentar la eficiencia y la fiabilidad en el desarrollo de software. Estas herramientas también facilitan la implementación del código, lo que se puede hacer desde el mismo equipo sin la participación de otros, y esto también contribuye al ritmo rápido de la innovación y el despliegue de este modelo de DevOps.
Los ingenieros de DevOps se involucran con algo más que automatización de código. También se quedan atrapados con la implementación, que involucra a los servidores de su empresa, incluidos los servidores del sistema operativo de código abierto más asequibles, incluidos Linux y BSD.
DevOps en el trabajo
Ahora, echemos un vistazo a un ejemplo de DevOps en el trabajo. Allstate es una compañía que forma parde de la lista Fortune 500, con los orígenes de este gigante de seguros que data de 1931. Sin embargo, Allstate era apenas ágil, con 16,000 empleados, muchos de los cuales están en el campo.
El objetivo de la empresa fue conseguir que su fuerza de trabajo móvil tuviera las últimas herramientas para poder trabajar con un mayor nivel de eficiencia. Simultáneamente, también había un segundo objetivo de permitir un mejor autoservicio para sus clientes, de modo que pudieran hacer reclamos y rastrearlos a medida que se procesaban.
Si bien el ahorro de costos fue supuestamente la prioridad anterior de la compañía, con el enfoque de DevOps, el enfoque más reciente ha estado en la retención de clientes y características de software diferenciadas. A través del trabajo en equipo y los valores comunes que son fundamentales para el enfoque de DevOps, la compañía se ha centrado en el desarrollo de productos en su aplicación y en mantenerla actualizada con la capacidad de implementar rápidamente las últimas funciones.
En el horizonte, Allstate también planea continuar utilizando el enfoque DevOps para implementar sensores “Internet of Things” en los vehículos de los clientes, utilizando análisis para evaluar sus hábitos de manejo.
Velocidad y escala
Con las ventajas inherentes de la velocidad de implementación, la mejor confiabilidad, la capacidad de escalar y la seguridad integrada, no sorprende que muchas organizaciones hayan adoptado el enfoque de DevOps. Se utilizó una encuesta reciente de tomadores de decisiones de tecnología empresarial para crear el informe 2018 State of DevOps. Algunas estadísticas útiles para destacar incluyen:
DevOps es popular entre un tercio de los encuestados que ya lo usan y un 35% planea implementarlo este año.
Una ventaja clave es la diferencia de velocidad, con un 69% que afirma que se beneficia de "mayor velocidad y frecuencia de implementación de la aplicación".
Si bien hay ventajas inherentes de DevOps, sigue siendo una herramienta que debe aplicarse selectivamente a la situación correcta. Por ejemplo, en las conferencias de Gartner entre 2015 y 2016, los encuestados indicaron que "el 87% de [los asistentes] dijeron que DevOps no había cumplido con las expectativas".
Romper silos y combinar equipos requiere un cambio cultural; después de todo, los desarrolladores de software y seguridad estaban en diferentes equipos por una razón originalmente, y no comparten automáticamente el mismo conjunto de habilidades solo porque acerquemos sus escritorios.
Los equipos no necesariamente quieren trabajar entre ellos, y este enfoque más moderno de DevOps lleva tiempo, con una saludable dosis de respeto mutuo necesaria para que se lleven bien hacia un objetivo común, y menos preocupación sobre cuál de los equipos anteriores están ejecutando el espectáculo. Este tipo de transición no suele ocurrir de la noche a la mañana, al menos en la mayoría de las organizaciones.