Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Esta relación estrecha entre «Dev» y «Ops» se extiende a cada una de las fases del ciclo
de vida de DevOps: desde la planificación inicial del software a las fases de
codificación, compilación, pruebas y publicación, y en la puesta en marcha, las
operaciones y la supervisión continua. Esta relación impulsa un bucle de
retroalimentación continua con los clientes sobre las mejoras, el desarrollo, las pruebas
y la puesta en marcha. Uno de los resultados de todos estos esfuerzos puede ser la
publicación continua y más rápida de las adiciones y los cambios que se necesitan en las
funciones.
La práctica de DevOps propicia que cada empresa se ponga como objetivo ofrecer un
mejor servicio cada vez, en menos tiempo, de mejor calidad y con mayor seguridad a
sus clientes finales; por ejemplo, con actualizaciones, funciones o versiones de producto
más frecuentes. Puede reflejarse en la rapidez con la que llega al cliente una nueva
versión del producto o una nueva función manteniendo los mismos niveles de calidad y
seguridad, o en el poco tiempo que se necesita para identificar un problema o un error y,
a continuación, solucionarlo y volver a publicar una versión corregida.
Sin duda, todo este trabajo de DevOps se sustenta en una infraestructura subyacente con
un rendimiento, una disponibilidad y una fiabilidad fluida y sin interrupciones del
software, el cual se desarrolla y se prueba en primer lugar y, luego, se lanza a la fase de
producción.
Métodos de DevOps
Existen varios métodos de DevOps comunes que las organizaciones usan para acelerar y
mejorar el desarrollo y las publicaciones de productos. Normalmente se presentan como
prácticas y metodologías de desarrollo de software. Entre los más populares están
Scrum, Kanban y Agile:
Scrum. Scrum define la forma en la que los miembros de un equipo deben colaborar
para conseguir entre todos acelerar los proyectos de desarrollo y control de calidad.
Las prácticas de Scrum incluyen flujos de trabajo principales y terminología específica
(sprints, bloques de tiempo, scrum diario [reunión]), y roles designados (Scrum Master,
propietario del producto [product owner]).
Kanban. Kanban se originó a partir de las eficiencias que se alcanzaron en la fábrica de
Toyota. Kanban prescribe que el estado «en curso» (WIP, del inglés «work in
progress») de un proyecto de software debe controlarse en un tablero Kanban.
Agile. Los anteriores métodos de desarrollo de software Agile siguen teniendo una
gran influencia en las herramientas y las prácticas de DevOps. Muchos de estos
métodos, incluidos Scrum y Kanban, han incorporado elementos de la programación
Agile. Algunas de estas prácticas están asociadas a una mayor capacidad de respuesta
a los continuos cambios en requisitos y necesidades, los requisitos de documentación
en forma de casos prácticos, la realización de reuniones diarias para ponerse al día y la
incorporación de comunicación continua con los clientes para conocer sus opiniones.
En Agile también se estipulan ciclos de desarrollo de software más cortos en lugar de
los tradicionales métodos de desarrollo «en cascada» que se prolongaban en el
tiempo.
Prácticas de DevOps
Desarrollo continuo. Esta práctica abarca las fases de planificación y codificación del
ciclo de DevOps. Puede incluir también mecanismos de control de versiones.
Realización de pruebas continuas. Esta práctica incorpora continuas pruebas de
código automatizadas y programadas con antelación que se realizan a medida que el
código de aplicación se está creando o actualizando. Gracias a estas pruebas, el código
pasa antes a la fase de producción.
Integración continua (CI). En esta práctica se combinan herramientas de gestión de
configuración (CM) con otras herramientas de pruebas y desarrollo para saber qué
cantidad del código que se está creando está listo para pasar a producción. Para ello,
debe existir un intercambio fluido de información entre las fases de prueba y de
desarrollo que permita identificar y resolver con rapidez problemas en el código.
Entrega continua. Esta práctica automatiza la introducción de cambios en el código
para pasar a un entorno de preproducción o de almacenamiento provisional tras la
fase de pruebas. Un miembro de la plantilla podría entonces decidir si es conveniente
promover estos cambios de código a la fase de producción.
Puesta en marcha continua (CD). Al igual que sucede con la entrega continua, esta
práctica automatiza el lanzamiento de código nuevo o modificado a la fase de
producción. Una empresa que pone en práctica la puesta en marcha continua podría
publicar cambios en código o funciones varias veces al día. Las tecnologías de
contenedor, como Docker y Kubernetes, hacen posible esta fase de puesta en marcha
continua al ayudar a mantener la coherencia del código entre los diferentes entornos y
plataformas de puesta en marcha.
Supervisión continua. Esta práctica implica la supervisión continua del código en la
fase de producción y la infraestructura subyacente que la sustenta. A través de un
bucle de retroalimentación en el que se notifican errores o problemas, este podría
volver a la fase de desarrollo.
Infraestructura como código. Esta práctica se puede utilizar durante varias fases de
DevOps para automatizar el aprovisionamiento de la infraestructura que se necesita
para publicar el software. Los desarrolladores añaden «código» de infraestructura
procedente de las herramientas de desarrollo actuales. Por ejemplo, los
desarrolladores podrían crear un volumen de almacenamiento bajo demanda desde
Docker, Kubernetes u OpenShift. Gracias a esta práctica, los equipos de operaciones
también pueden supervisar las configuraciones de entorno, registrar los cambios y
simplificar la reversión de las configuraciones.
Ventajas de DevOps
Los partidarios de DevOps describen varias ventajas técnicas y empresariales con las
que, en última instancia, se consiguen clientes más satisfechos. Entre algunas de las
ventajas de DevOps se incluyen las siguientes:
Historia de DevOps
Muchos de los métodos de DevOps que se utilizan para sacar el máximo partido a las
fases de desarrollo y puesta en marcha de software se basan en las anteriores
metodologías de desarollo de software Agile y de programación Lean. Sin embargo,
DevOps surgió en un principio a partir de varios movimientos de base que trataban de
harmonizar las actividades de desarrolladores y sus homólogos en operaciones.
En 2009, los ingenieros de Flickr John Allspaw y Paul Hammond presentaron en una
conferencia su propia metodología de DevOps. La presentación se llamó «10+ Deploys
per Day: Dev and Ops Cooperation at Flickr» (Más de 10 puestas en marcha al día: la
cooperación entre departamentos de desarrollo y operaciones en Flickr) y, en ese mismo
año, Patrick Debois organizó la primera «jornada de DevOps» en Bélgica. También se
incorporó el hashtag #DevOps, el cual fue ganando adeptos a medida que se iban
celebrando más «jornadas de DevOps» en todo el mundo.
NetApp y DevOps
NetApp ayuda a que se mejoren los resultados empresariales con DevOps: los equipos
de operaciones ofrecen infraestructura automatizada con una menor carga de ingeniería,
y los ingenieros pueden hacer su trabajo en entornos fiables y predecibles con una
menor fricción. Con la tecnología de NetApp®, puede prestar los servicios y las
funcionalidades que necesita su organización con total confianza para maximizar la
productividad de los desarrolladores en los entornos de las instalaciones y del cloud.
https://www.netapp.com/es/devops-solutions/what-is-devops/