DevOps: qué es y por qué es importante
Publicado: 2022-03-11Aunque no existen métodos infalibles para mejorar la eficiencia de TI, DevOps ha arrojado resultados que son difíciles de ignorar. Como sugiere su nombre, DevOps combina el desarrollo de software y los principios de operaciones de software con el objetivo de ayudar a las organizaciones a desarrollar productos con mayor velocidad y eficiencia. TIAA-CREF, por ejemplo, ha visto mejoras significativas en su negocio de $ 40 mil millones mediante el uso de los principios de DevOps. Una entrevista realizada por TechBeacon con el director digital de TIAA, Scott Blandford, explica cómo TIAA pasó de un software y sistemas heredados y toscos a "un enfoque de DevOps ágil" que produjo un aumento de cuatro veces en la productividad del desarrollo. Las actualizaciones se lanzan mucho más rápido y "TI ha recuperado la confianza que se había erosionado a lo largo de los años cuando comenzó a cumplir con las expectativas de los usuarios".
Los resultados del Informe sobre el estado de DevOps de 2017 sugieren diferencias sorprendentes entre las organizaciones de alto rendimiento que emplean los principios de DevOps y las organizaciones que no lo hacen. Según el informe, las organizaciones de alto rendimiento tienen frecuencias de implementación de software mucho más altas (46 veces más frecuentes), plazos de entrega mucho más rápidos para los cambios (440 veces más rápido) y una tasa de fallas de cambio de software significativamente más baja (cinco veces más baja) que su rendimiento más bajo. contrapartes
A pesar de estos beneficios significativos, DevOps se erige como un ejemplo clásico de un concepto técnico importante y relativamente nuevo que ha sido mal utilizado o malinterpretado con demasiada frecuencia. Para muchos, la idea sigue siendo confusa e incluso una definición básica de DevOps puede resultar difícil de alcanzar.
Esta falta de claridad podría tener efectos negativos en las organizaciones y los equipos que intentan implementar los principios de DevOps, causando confusión estratégica e impidiendo la velocidad y la eficiencia que se supone que debe promover DevOps. Como dijo un ingeniero de DevOps de IBM en un artículo publicado por InfoWorld: “Necesitábamos responder algunas preguntas básicas y determinar los problemas que estábamos tratando de resolver… Si no sabe cómo se hace realmente el trabajo, no sabe qué problemas vale la pena resolver”.
A medida que el desarrollo de software y las operaciones se entrelazan más estrechamente, y las empresas dependen cada vez más de la infraestructura en la nube, los ejecutivos y los gerentes de proyectos deben desarrollar fluidez en DevOps para seguir siendo competitivos y garantizar que sus equipos se desempeñen a su máximo potencial.
DevOps no debe considerarse como otra palabra de moda vaga, sino como un concepto importante con el potencial de mejorar drásticamente los productos y los negocios. Este artículo, dirigido a una audiencia relativamente no técnica, tiene como principal objetivo aclarar qué es exactamente DevOps. Usando ejemplos específicos, este artículo explorará cómo se ven los principios de DevOps cuando se hacen bien, y por qué DevOps es importante para usted y su organización.
DevOps como un tipo de ingeniero, cultura y práctica
¿Qué es DevOps? En un artículo anterior publicado por Toptal, Demir Selmanovic escribe que "DevOps es una cultura, una mentalidad y es parte de TI como (un) todo". Escribe además que DevOps es una práctica que permite a las organizaciones optimizar la velocidad y la eficiencia en todas las funciones de TI.
Amazon Web Services, que es el jugador más importante en la infraestructura de la nube y, en consecuencia, ha desarrollado una experiencia significativa en DevOps, utiliza una definición similar y dice que “DevOps es la combinación de filosofías, prácticas y herramientas culturales que aumentan la capacidad de una organización para entregar aplicaciones y servicios. a alta velocidad: evolucionar y mejorar los productos a un ritmo más rápido que las organizaciones que utilizan procesos tradicionales de desarrollo de software y gestión de infraestructura”.
“La gente de DevOps son básicamente aquellos que han encontrado interés tanto en la administración de sistemas como en el desarrollo de software y decidieron combinar sus habilidades para crear un enfoque mejor y unificado para ambos”.
Ambas son definiciones útiles para una audiencia que ya está bien versada en campos relacionados, pero pueden ser demasiado abstractas para ejecutivos con antecedentes técnicos menos extensos. De hecho, quizás parte de la confusión que rodea la definición de DevOps se deriva del hecho de que a menudo se hace referencia a él simultáneamente como un tipo de ingeniero, un conjunto de prácticas y una cultura. Si bien DevOps abarca cada uno de estos elementos, es útil comenzar considerándolos por separado.
Para comenzar con el aspecto de un ingeniero de DevOps, Martin Chikilian, un desarrollador de software que anteriormente trabajó para IBM y Hewlett Packard con más de una década de experiencia en el empleo de los principios de DevOps, lo expresa en términos simples y concretos: “La gente de DevOps es básicamente aquella que ha encontrado interés tanto en administración de sistemas como en desarrollo de software y decidieron combinar sus habilidades para crear un mejor enfoque unificado para ambos”.
Pueden mantener los servidores, las redes y otros tipos de sistemas de infraestructura que tiene una empresa, así como iterar y mejorar activamente esos sistemas a través del desarrollo de software. Como dijo Chikilian de otra manera, "una persona de DevOps es alguien que puede aprovechar los fundamentos del desarrollo de software para ayudarse a sí mismos y a las empresas a construir mejores herramientas para manejar la infraestructura".
La "combinación de filosofías culturales", como dice Amazon, se refiere a la combinación de enfoques utilizados por los desarrolladores de software y aquellos con experiencia en infraestructura u operaciones de software. Al derribar la barrera tradicional entre estas prácticas, una cultura DevOps busca empoderar a las organizaciones para que se beneficien de las distintas fortalezas que los desarrolladores y los expertos en infraestructura aportan. La implementación exitosa de los principios de DevOps "requiere un cambio en la cultura y la mentalidad" para las empresas que agrupan a estos diferentes tipos de ingenieros. Como describe Emily Dowdle en la cumbre de la plataforma API nórdica de 2016, la eliminación de barreras también ayuda a aliviar la fricción natural que a veces puede existir entre los desarrolladores y los expertos en infraestructura y fomenta un entorno de trabajo más agradable y cooperativo.
En pocas palabras, DevOps se trata de traducir procesos manuales complejos que involucran una interacción humana propensa a errores en un enfoque instrumentado que se puede probar, medir y escalar fácilmente.
Armado con una comprensión de cómo se ve un practicante y una cultura de DevOps, lo que significa DevOps como práctica se vuelve más evidente. En pocas palabras, DevOps se trata de traducir procesos manuales complejos que involucran una interacción humana propensa a errores en un enfoque instrumentado que se puede probar, medir y escalar fácilmente. Por ejemplo, si un desarrollador desea crear un entorno que permita a los usuarios comerciales brindar comentarios, puede iniciar un proceso automatizado en el que el desarrollador puede emitir un comando creado por el equipo de DevOps (en lugar de entregar una pieza de código al equipo de infraestructura), que realiza la tarea relevante de manera consistente y probada, obteniendo los resultados esperados rápidamente y permitiendo la colaboración.
Una definición integral de DevOps requiere una comprensión de lo que significa como un tipo de ingeniero, cultura y práctica. Habiendo explorado lo que significa DevOps desde estas perspectivas, ahora es importante profundizar en cómo se ve DevOps cuando se implementa con éxito.
Su kit de herramientas DevOps
Además del cambio cultural mencionado anteriormente (pasar de una empresa que almacena en silos a desarrolladores de software y expertos en infraestructura a una que acepta su colaboración), las empresas deben comprender una serie de prácticas y herramientas específicas cruciales para DevOps. A continuación se presentan tres de las prácticas más cruciales (aunque ciertamente no las únicas):
Automatización: el aumento de la eficiencia es fundamental para DevOps, y esto se logra de manera significativa mediante la automatización de una serie de procesos onerosos y relativamente lentos en el desarrollo de software y el mantenimiento de la infraestructura. Un ejemplo específico que cita Amazon es la práctica de enviar automáticamente actualizaciones de software relativamente pequeñas pero frecuentes. Esta práctica quita la responsabilidad de los administradores de sistemas, que de otro modo tendrían que realizar estas actualizaciones manualmente. Como señala Amazon, esta práctica también tiene el beneficio de reducir el riesgo de la implementación de software al permitir que los administradores detecten y corrijan más fácilmente los errores que puedan surgir. La automatización es una piedra angular de DevOps y es crucial para las otras prácticas de DevOps que se analizan a continuación.

Integración continua: en un nivel fundamental, DevOps se trata de una estrecha colaboración entre ingenieros y, además, equipos completos. La integración continua se refiere a la práctica de los ingenieros de compartir y fusionar código en una ubicación central. Como explica Amazon, "en el pasado, los desarrolladores de un equipo podían trabajar de forma aislada durante un período prolongado de tiempo y solo intentaban fusionar sus cambios... una vez que se completaba su trabajo". A través de la integración continua, los ingenieros pueden colaborar de manera más eficiente y evitar los cuellos de botella asociados con el desarrollo y la integración de su código de manera más fragmentaria.
Entrega continua: La entrega continua se refiere a la práctica de entregar e implementar automáticamente los cambios del producto de software a medida que se realizan. En otras palabras, la Entrega continua está habilitada por la Integración continua, dado que los cambios en el código solo se pueden enviar de manera efectiva a todo el sistema si el código ya está alojado en un lugar central. La automatización también es crucial para la entrega continua. De hecho, el ejemplo mencionado anteriormente de enviar actualizaciones de sistemas pequeñas y frecuentes también puede considerarse como un ejemplo de Entrega continua. La entrega continua permite a las organizaciones implementar cambios y mejoras rápidamente, y permite a los ingenieros concentrar su tiempo de manera más eficiente en otros problemas complejos.
Contratar a las personas adecuadas
Por supuesto, las empresas deben contratar a los ingenieros adecuados para que las prácticas anteriores se implementen con éxito. Los ingenieros de DevOps deben tener un conjunto de habilidades que combine el desarrollo de software y la experiencia en infraestructura de sistemas, y esta combinación puede ser difícil de encontrar.
“Es importante que puedan cerrar la brecha entre el código sin procesar y los desafíos que la empresa debe enfrentar todos los días, como reducir la fricción entre las ideas, la entrega y los consumidores”.
Andrea Villa, ex ingeniera de DevOps en Atlassian y arquitecta de sistemas en CloudReach con 15 años de experiencia en administración de sistemas, seguridad de la información y redes, cree que los ingenieros de DevOps necesitan una amplia gama de experiencia y conocimientos para tener éxito.
“Para ser efectivo, el ingeniero DevOps de hoy debe tener experiencia en desarrollo y poseer un amplio conocimiento de administración de sistemas y conocimiento de redes”, dijo Villa. “Es importante que puedan cerrar la brecha entre el código sin procesar y los desafíos que la empresa debe enfrentar todos los días, como reducir la fricción entre las ideas, la entrega y los consumidores”.
Calificar como un ingeniero de DevOps fuerte es claramente más fácil decirlo que hacerlo, y encontrar tales ingenieros puede ser igualmente difícil. Aún así, comprender las herramientas subyacentes a las prácticas de DevOps puede empoderar a su organización para adaptar con mayor precisión las prácticas de contratación en torno a encontrar el talento adecuado e implementar estas prácticas con éxito.
Por qué DevOps es realmente importante
El uso de las prácticas de DevOps viene con una variedad de beneficios, algunos de los cuales, que incluyen una mayor eficiencia, seguridad y colaboración organizacional, ya se han articulado. El Informe sobre el estado de DevOps de 2017 cuantifica este aumento de la eficiencia e informa que las organizaciones de alto rendimiento que emplean prácticas de DevOps dedican un 21 % menos de tiempo a trabajos no planificados y reelaborados, y un 44 % más de tiempo a trabajos nuevos.
Sin embargo, en términos más generales, la implementación exitosa de prácticas DevOps puede tener un impacto profundo en su empresa al mejorar la eficiencia y la ejecución en áreas que son esenciales y decididamente poco atractivas.
Fredrik Haard, un ingeniero con más de 12 años de experiencia en DevOps que trabajó como arquitecto sénior de la nube en McKinsey y en Wondersign, articula este punto de manera más completa.
“Los buenos ingenieros de DevOps deben ser campeones y asumir la responsabilidad de todas las áreas que la organización podría no priorizar, como la seguridad de los datos, la recuperación ante desastres, la mitigación y las auditorías”, dijo Haard. “Las decisiones que toma en DevOps pueden tener efectos duraderos en una empresa”.
Microsoft también ha visto estos efectos positivos mediante la implementación de prácticas DevOps en su grupo de ingeniería Cloud + Enterprise. Para ofrecer los mejores resultados, explica Microsoft, “necesitábamos que la ingeniería y las operaciones trabajaran en estrecha colaboración durante todo el ciclo de vida del desarrollo, desde el diseño hasta la implementación en producción”. Al cambiar a una cultura de DevOps y usar prácticas de DevOps, Microsoft pudo escalar y brindar servicios de alta calidad a sus clientes mucho más rápido que antes.
Resolver estos problemas y mejorar la eficiencia son excelentes en sí mismos, pero en última instancia son un medio para un fin más fundamental: producir productos sorprendentes y generar mayores ganancias y satisfacción del cliente.
Los ingenieros de DevOps pueden actuar efectivamente como el equipo de comando interno de una empresa, ayudando a resolver una amplia gama de problemas que, aunque quizás no sean atractivos o estén fuera de la vista, son absolutamente cruciales para que una empresa funcione correctamente.
Resolver estos problemas y mejorar la eficiencia son excelentes en sí mismos, pero en última instancia son un medio para un fin más fundamental: producir productos sorprendentes y generar mayores ganancias y satisfacción del cliente. Quizás la razón más importante por la que DevOps realmente importa es que puede permitir que las organizaciones maximicen cada una de estas métricas.
Enfrentando el futuro con DevOps
En 2015, Scott Weiss, socio de Andreessen Horowitz, dijo que DevOps es “más que una simple metodología. Es un conjunto de habilidades imprescindible para el programador moderno, y se está convirtiendo cada vez más en su propio departamento”.
Esto ha demostrado ser cierto, ya que una variedad de empresas de tecnología, incluidas Amazon, Microsoft y Google, han creado equipos de DevOps y han dedicado recursos significativos para desarrollar experiencia en el espacio. Weiss y otros jugadores tecnológicos importantes ven a DevOps no solo como una moda pasajera, sino como un componente clave en el futuro del software.
DevOps seguirá siendo particularmente esencial a medida que las industrias se vuelvan más dependientes de la infraestructura de la nube. En un informe de 2017, Gartner Research proyectó que el mercado de servicios en la nube crecerá más del 15 % por año hasta 2020. Para poner este crecimiento en términos de dólares, un artículo reciente publicado por Forbes indica que el mercado de la computación en la nube crecerá de aproximadamente $260 mil millones en 2017 a aproximadamente $ 411 mil millones en 2020. DevOps puede marcar una gran diferencia en la rapidez con la que su empresa migra con éxito los sistemas a la nube. En Toptal, hemos utilizado DevOps desde el principio, y ha sido parte integral de nuestro éxito como empresa de nube de hipercrecimiento.
Así como el mercado de servicios en la nube está creciendo a un ritmo acelerado, también crece la importancia de DevOps. Ya sea en energía, atención médica o educación superior, su empresa necesitará desarrollar experiencia en DevOps. Comprender qué es DevOps, cómo se implementa y por qué es tan importante representa un primer paso esencial a medida que piensa en utilizar esta práctica clave en el futuro.
