¿Cómo implementar una estrategia DevOps exitosa?

Publicado: 2022-06-29

Introducción

DevOps es una estrategia de desarrollo que enfatiza la colaboración entre los desarrolladores de software y el personal de operaciones de TI. Pero hay más en la implementación de DevOps que simplemente pedirles a sus equipos que trabajen juntos.

El término DevOps fue acuñado por Patrick Debois en el año 2009, también conocido popularmente como el "Padre de DevOps". El proceso consta de las siguientes etapas principales:

  1. Plan
  2. Crear/Codificar
  3. Construir
  4. Prueba
  5. Liberar
  6. Desplegar
  7. operar y
  8. Monitor

Aquí hay una guía de lo que se necesita para implementar DevOps con éxito y las diferentes estrategias para hacerlo.

No intentes hacer todo a la vez

Es fácil sentirse abrumado cuando recién comienza con DevOps. Hay mucha información disponible y puede ser difícil saber por dónde empezar. Recomiendo comenzar poco a poco y trabajar hacia arriba.

Primero, elija un área que sea fácil de automatizar, monitorear y comunicarse con los usuarios finales. Esto le facilitará mostrar el éxito desde el principio y generar impulso hacia otras áreas del negocio. Por ejemplo: si está automatizando implementaciones o configurando herramientas de monitoreo, tal vez considere comenzar con algo como implementar aplicaciones web o aplicaciones en contenedores (como Docker). Estos tipos de servicios suelen tener menos dependencias que otros tipos de sistemas, como las bases de datos, por lo que tienden a ser casos de prueba más fáciles mediante los cuales podemos medir nuestro progreso en la implementación de prácticas de DevOps en nuestras organizaciones.

Haz lo que puedas, cuando puedas

Lo primero que debe hacer es hacer que su equipo utilice las herramientas que necesita. Comience con lo que está disponible y agregue más funciones a medida que se sienta más cómodo. No intentes hacer todo a la vez; encuentre una o dos cosas que funcionen para usted, luego pase a la siguiente.

Emplear automatización

El objetivo de DevOps es aumentar la velocidad, reducir los costos y los errores humanos y mejorar la calidad. Es por eso que la automatización se considera tan importante. La automatización puede significar diferentes cosas en diferentes contextos (las pruebas automatizadas y la integración continua son dos ejemplos comunes), pero generalmente se refiere al uso de software para realizar tareas específicas. Esto significa que habrá menos humanos involucrados en los procesos de desarrollo y producción, lo que reduce los costos y mejora la calidad, al tiempo que aumenta la velocidad.

Comience con las herramientas existentes para desarrollar soluciones personalizadas

Puede ser más fácil comenzar con las herramientas existentes que desarrollar soluciones personalizadas. Si recién está comenzando, hay una serie de proyectos de código abierto y servicios en la nube que pueden ayudarlo a ponerse en marcha rápidamente. Por ejemplo:

  • Marco de automatización de DevOps Jenkins Stack: un proyecto de código abierto que gestiona todo el ciclo de vida del desarrollo de software. Incluye herramientas para la integración continua (CI) y la entrega continua (CD), así como para otras tareas comunes de DevOps, como probar, compilar, empaquetar e implementar código. Es compatible con varios sistemas operativos, incluidos Linux y macOS.
  • Elasticsearch: un motor de búsqueda basado en Apache Lucene que proporciona capacidades de búsqueda de texto completo para grandes volúmenes de datos no estructurados en tiempo real en muchos servidores. Muchas empresas, como Netflix o PayPal, lo utilizan para que puedan indexar todas las transacciones que se realizan dentro de esas entidades muy rápidamente debido a su capacidad de escalar horizontalmente (es decir, agregar más instancias cuando sea necesario).

Comience con herramientas que combinen bien con su cultura

Cuando comienza su viaje de DevOps, es importante comprender que no podrá cambiar todo a la vez. No puede obligar a su cultura, procesos, personas o tecnología a cambiar; si no se alinean con los objetivos de DevOps y desarrollo Agile, impedirán su éxito.

En lugar de tratar de forzar estos elementos en un molde fijo que no se ajuste a la forma en que funciona su negocio hoy en día, busque herramientas que estén diseñadas específicamente para equipos de software que adopten metodologías ágiles y déjeles espacio para crecer a medida que el equipo aumenta sus capacidades con el tiempo. .

Concéntrese en la colaboración y obtenga los mejores cerebros cuando pueda

Pero encontrar y contratar estos recursos no es fácil.

Afortunadamente, hay varias opciones excelentes para obtener ayuda:

  • Busque ayuda de otras empresas que ya hayan implementado DevOps. Ya habrán aprendido algunas de las lecciones difíciles y pueden darle consejos basados ​​en su propia experiencia.
  • Los consultores también pueden ser una buena opción si no tiene tiempo para aprender los entresijos de DevOps por su cuenta. Tienden a saber qué preguntas hacer y dónde buscar respuestas; también son más propensos que los empleados de otras empresas (que pueden estar concentrados en sus trabajos diarios) porque están motivados por el dinero en lugar de solo compartir conocimientos.* Las comunidades de código abierto como GitHub brindan recursos adicionales después de aprendiendo cómo funcionan juntos a través de la colaboración.* Los cursos de capacitación pueden ser otra opción si desea la experiencia de otra persona además o en lugar de utilizar un consultor externo.* Libros como The Phoenix Project ofrecen una visión interna de cómo una empresa implementó DevOps con éxito; a menudo están escritos por personas que participaron en la implementación ellos mismos en lugar de simplemente observar desde lejos.

Monitoreo e informes automatizados

El monitoreo y la generación de informes automatizados son una práctica clave de DevOps. Para mejorar la calidad de su software, debe poder medir qué tan bien se desempeña en producción. Los desarrolladores deben ser responsables de monitorear su código para que puedan identificar rápidamente los problemas. También necesitan tener una estrategia para recopilar estos datos e implementar herramientas de análisis que les permitan comprender lo que sucede con sus aplicaciones mientras se ejecutan en producción.

El equipo de operaciones debe monitorear su infraestructura porque es responsable de asegurarse de que todo funcione sin problemas día a día. Esto significa recopilar métricas sobre el uso de la CPU, el uso del espacio en disco, el consumo de ancho de banda de la red, etc., así como registrar cualquier problema que surja con las aplicaciones para que se pueda solucionar de inmediato.

Su negocio debe monitorear su resultado final midiendo la cantidad de ingresos que genera cada nueva función en relación con los costos, como el tiempo de desarrollo y los costos de mantenimiento en el futuro (incluido el soporte continuo). La capacidad de medir con precisión este tipo de métricas permite a los equipos dentro de una organización o en varias organizaciones que trabajan juntas en un proyecto, como aquellos que usan microservicios, para tomar mejores decisiones sobre qué funciones deben tener prioridad al desarrollar su hoja de ruta del producto en función de los objetivos financieros. en lugar de centrarse únicamente en la reducción de la deuda técnica sin tener en cuenta el panorama general”.

Mantenga informados a sus clientes, es posible que no les gusten las sorpresas

Supongamos que su organización está implementando una nueva base de código para toda la aplicación web. Usted sabe que esto afectará a los usuarios finales y que no les gustará si se sorprenden con el cambio.

Puede advertirles y darles tiempo para que se preparen para el cambio, o puede esperar hasta que se publique y luego explicar qué sucedió, por qué sucedió y cómo pueden ayudarse a acostumbrarse a los cambios.

Una forma de mantener informados a los usuarios sería a través de una campaña de correo electrónico en la que envíe invitaciones de calendario con instrucciones sobre cómo las personas deben usar sus nuevas herramientas, así como consejos sobre cómo podrían beneficiarse del uso de estas funciones una vez que se lancen a la producción (por ejemplo, habrá una nueva función de búsqueda).

Comience poco a poco, automatice, supervise el progreso y optimice

La mejor estrategia para implementar DevOps es comenzar poco a poco, automatizar y monitorear el progreso a lo largo del tiempo.

Comience de a poco: es más fácil generar impulso cuando comienza con un alcance manejable. Si intenta abordar todo su departamento u organización a la vez, puede ser abrumador y sentirse imposible. En lugar de intentar implementar DevOps en toda la empresa a la vez, concéntrese en un proyecto o equipo a la vez.

Automatización: hay muchas herramientas disponibles que pueden ayudar a automatizar partes de su proceso de desarrollo (servidores de integración continua como Jenkins o TeamCity), pero puede haber algunas cosas que aún no tienen herramientas disponibles, como configurar copias de seguridad para producción. servidores en plantillas de AWS CloudFormation, ¡así que asegúrese de que esas cosas estén incluidas en su plan de automatización antes de continuar con cualquier otra cosa!

Supervise el progreso a lo largo del tiempo: tener métricas en su lugar permitirá que todos los involucrados (incluido usted mismo) evalúen qué tan bien van las cosas a lo largo del tiempo para que podamos hacer los ajustes necesarios a lo largo de cada paso de nuestro viaje hacia la automatización completa.

Conclusión

Esperamos que ahora tenga una mejor comprensión de cómo DevOps puede funcionar para su organización. Como vimos, el equipo de DevOps está lleno de recursos y herramientas útiles que pueden ayudarlo a comenzar y continuar una vez que haya realizado la transición inicial. La clave para una implementación exitosa es comenzar con lo que ya sabe y luego iterarlo hasta que se perfeccione. Al hacerlo, podrá implementar una estrategia DevOps efectiva sin romper su presupuesto ni sobrecargar a su equipo con nuevas responsabilidades.

Imagen destacada: El flujo de trabajo de DevOps: Fuente: Pease, 2017.

Biografía del autor:

Priya tiene alrededor de 7 años de experiencia en investigación de mercado. Actualmente, trabaja para Valasys Media, como Subgerente - Estratega de contenido, que se encuentra entre los principales editores de medios B2B en todo el mundo. Ha estado preparando varios informes personalizados para nuestros clientes y ha investigado mucho sobre segmentación de mercado, análisis de grupos de audiencias y metodologías de entrada. Ha trabajado con institutos gubernamentales y casas corporativas en varios proyectos. Posee varios intereses y cree en un enfoque basado en datos para la resolución de problemas. Tiene un posgrado en ciencias y también escribe extensamente sobre todo lo relacionado con la vida además de marketing, ciencia, ciencia de datos y estadísticas. Ella cree firmemente en las realidades superiores y en que siempre hay más en la vida de lo que entendemos. Es sanadora psíquica y practicante del tarot, que cree en una forma de vida espiritual y practica yoga y meditación. Cuando no está escribiendo, puede encontrarla disfrutando de la música o cocinando.