DevOps
DevOps es la mezcla de tareas realizadas por los equipos de desarrollo de aplicaciones y sistemas de una empresa. El término DevOps se utiliza de varias maneras. En su sentido más amplio, DevOps es una filosofía operacional que promueve una mejor comunicación entre desarrollo y operaciones a medida que más elementos de operaciones se vuelven programables. En su interpretación más estrecha, DevOps describe la parte del equipo de tecnología de la información (TI) de una organización que crea y mantiene la infraestructura. El término también puede ser usado para describir una cultura que mira estratégicamente a toda la cadena de suministro de software, supervisando servicios compartidos y promoviendo el uso de nuevas herramientas de desarrollo y mejores prácticas.
Tradicionalmente en la empresa, el equipo de desarrollo probó código nuevo en un entorno de desarrollo aislado para el aseguramiento de la calidad (QA) y, si se cumplieron los requisitos, lanzó el código a las operaciones para su uso. El equipo de operaciones desplegó el programa y lo mantuvo desde ese momento. Uno de los problemas con este enfoque, que se conoce como desarrollo de cascada, es que normalmente hubo un largo tiempo entre los lanzamientos de software y debido a que los dos equipos trabajaron por separado, el equipo de desarrollo no siempre fue consciente de los bloqueos operacionales que podrían impedir que el programa trabajara como se esperaba.
El enfoque de DevOps busca fusionar el desarrollo y el despliegue de aplicaciones en un proceso más racionalizado que alinea el desarrollo, la garantía de calidad (QA) y los esfuerzos del equipo de operaciones. Este enfoque también transfiere algunas de las responsabilidades del equipo de operación al equipo de desarrollo para facilitar el desarrollo continuo, la integración continua, la entrega continua y los procesos de monitoreo continuo. La necesidad de desmantelar los silos entre el desarrollo y las operaciones ha sido acelerada por la necesidad de liberar el código más rápido y con mayor frecuencia para ayudar a la organización a responder de una manera más ágil a las necesidades cambiantes del negocio. Otros factores para romper los silos incluyen el creciente uso del cómputo de nube y los avances en infraestructuras definidas por software, microservicios, contenedores y automatización.
La cadena de herramientas DevOps
Aunque los vendedores han saltado al tren de DevOps, realmente no hay tal cosa como un "producto DevOps". Sólo hay software que ayudará al equipo de desarrollo y operaciones a trabajar juntos de manera más eficiente y responder a los cambiantes requisitos con mayor flexibilidad. Han surgido nuevas herramientas de software para ayudar a las organizaciones a automatizar las pruebas y crear una línea de desarrollo y lanzamiento más ágil. Tales herramientas incluyen GitHub para almacenar código, Puppet y Chef para la gestión de la configuración, Nagios para supervisar cómo los cambios en el código afectan al entorno y Splunk para la inteligencia operacional.
DevOps como servicio es un modelo de entrega para un conjunto de herramientas que facilita la colaboración entre el equipo de desarrollo de software de una organización y el equipo de operaciones. En este modelo de entrega, el DevOps como proveedor de servicios recoge herramientas dispares que cubren diversos aspectos del proceso global y conecta estas herramientas para trabajar juntas como una unidad.
El papel de los ingenieros de DevOps
El papel del ingeniero de DevOps no recae en un solo perfil o carrera; los profesionales evolucionan hacia la posición desde una variedad de fondos. A menudo se dice que DevOps es más una filosofía o una cultura de TI colaborativa que una descripción de trabajo o conjunto de habilidades estrictamente definidos. Debido a que el área es tan amplia, las posiciones de DevOps pueden ser más adecuadas para los generalistas de TI que para los especialistas.
Por ejemplo, un ingeniero de DevOps puede comenzar como un desarrollador de software que supervisa aspectos de las operaciones. Por el contrario, un ingeniero de DevOps puede pasar de una función de administrador del sistema porque ha adquirido conocimientos sobre codificación, secuencias de comandos, integración y pruebas.
Puede haber cierta superposición entre los roles de ingeniería de DevOps y SysOps dependiendo de la organización individual y sus necesidades técnicas, pero es el ingeniero de DevOps cuyas responsabilidades incluyen cambiar los procesos empresariales según sea necesario para resolver problemas de la organización y para mejorar los resultados empresariales.
Carreras y certificaciones de DevOps
La mayoría de los trabajos de nivel de entrada de DevOps requieren un título en ciencias de la computación o un campo relacionado que cubra codificación, pruebas de control de calidad y componentes de infraestructura de TI. Las posiciones de más alto nivel pueden requerir títulos avanzados en arquitectura de sistemas y diseño de software.
Red Hat es una organización que ofrece la certificación DevOps. Los cursos y exámenes de Red Hat están diseñados para probar la experiencia en tecnologías relevantes tales como contenedores, OpenShift y Puppet.