4 consejos de DevOps para equipos pequeños

Publicado: 2020-02-08

¿Se pregunta cómo implementar DevOps para equipos pequeños? DevOps es un campo de estrategia y ejecución en crecimiento en empresas de todos los tamaños. Acelera el tiempo de comercialización, permite implementaciones más rápidas y hace que los desarrolladores, los gerentes de operaciones y los clientes estén más contentos.

Vamos a hablar sobre qué es DevOps, cómo las grandes empresas lo implementan y qué lecciones y consejos pueden obtener e implementar las pequeñas empresas en este momento.

¿Qué es DevOps?

DevOps es un término difícil de definir, principalmente porque abarca una variedad de prácticas. Básicamente, DevOps es una combinación de dos cosas con el propósito de una mejor comunicación: "Dev" significa "desarrolladores" y "Ops" para operaciones.

DevOps, entonces, suele ser un grupo de desarrolladores de código y administradores de operaciones del sistema que colaboran para romper los silos de conocimiento, en esencia, para asegurarse de que siempre estén en la misma página cuando se trata de desarrollar e implementar código de manera efectiva.

DevOps significa comunicación efectiva entre departamentos. Significa trabajar juntos para crear estrategias para un departamento que hagan la vida más fácil para el otro departamento. En general, también significa más automatización de código, fragmentos de código más pequeños, sistemas de control de código fuente y tal vez algunas reuniones más.

Pero, ¿qué sucede sin DevOps?

¿Por qué se necesita DevOps?

Tradicionalmente, los gerentes de operaciones mantienen el entorno de producción, es decir, todo con lo que interactúan los clientes.

Los desarrolladores, por otro lado, trabajan entre bastidores, creando código en el entorno de prueba, un área aislada del entorno de producción. Idealmente, este entorno de desarrollo simula el entorno de producción y cómo funciona el código o la aplicación en el mundo real.

En la práctica, esto significa que los desarrolladores escriben código en su burbuja y lo envían para implementarlo en el entorno de producción, donde los gerentes de operaciones tienen que descubrir cómo mantener todo funcionando y estable mientras integran el nuevo código. Y los desarrolladores generalmente están demasiado ocupados con la codificación de nuevas funciones, y los gerentes de operaciones están demasiado ocupados tratando de mantener cada plato funcionando, por lo que el tiempo para la comunicación y la renovación del entorno es corto.

Y aunque DevOps tarda un poco en configurarse y ponerse en marcha, los resultados pueden hacer que cualquier empresa, grande o pequeña, sea más ágil y competitiva.

DevOps en Grandes Empresas

devops for small teams

DevOps es un éxito en las grandes empresas. Con una gran cantidad de desarrolladores y una base de código lo suficientemente grande, el desarrollo y la implementación del código pueden ser una lucha titánica.

Las grandes empresas tienen más clientes. Más clientes significan más servidores, a menudo más funciones y más tensión en la red. Esto crea una base de código más grande, lo que significa que incluso los pequeños ajustes pueden tener un efecto de cascada en el entorno. Y dado que las grandes empresas a menudo intentan sacar nuevas funciones para seguir siendo competitivas en el mercado, necesitan que el entorno de desarrollo y el entorno de producción estén al mismo nivel.

Empresas como Netflix, Amazon y Target han adoptado DevOps para optimizar sus servicios. La integración de su entorno de desarrollo con su entorno de producción (junto con una gran automatización) permite que Netflix y Amazon realicen implementaciones miles de veces al día .

Amazon utiliza un sistema de implementación continua y control de fuente automatizado para verificar las revisiones automáticamente, sometiéndolas al proceso de compilación y prueba sin interferencia humana.

La NASA emplea un sistema similar, utilizando una combinación del servicio AWS de Amazon y sistemas de datos en contenedores para permitir que los especialistas en datos de la NASA compartan datos y análisis de telemetría con sus ingenieros a un ritmo constante.

Pero esas empresas y organizaciones son enormes. ¿Cómo puede un equipo pequeño acercarse a ese nivel de organización y automatización? ¿Cómo funciona DevOps para equipos pequeños en la naturaleza?

Soluciones DevOps que los equipos pequeños pueden adoptar

Los equipos pequeños no tienen el mismo ancho de banda que las empresas más grandes, tanto en la cantidad de personas, departamentos y recursos. Sin embargo, eso termina siendo un arma de doble filo porque, en general, los equipos más pequeños ya usan muchas soluciones DevOps. Incluso si no es intencional.

Sin embargo, eso no significa que no haya trabajo para estar abajo. En este momento, solo el 25 % de la industria del software está logrando DevOps a un alto nivel.

Y otras herramientas y estrategias de DevOps pueden obtenerse de empresas más grandes y emplearse con la misma eficacia.

1. Haz un equipo DevOps

Si no tiene un gran equipo de desarrolladores, la creación de un equipo independiente de DevOps probablemente esté fuera de discusión. Si tiene un desarrollador y un administrador de sistemas, o esos roles los desempeña la misma persona, la idea de un "equipo" podría incluso parecer tonta.

Y eso está bien. No se trata necesariamente de crear algún tipo de grupo de trabajo, se trata solo de comunicación. Incluso si tiene un desarrollador y un administrador de TI, su forma de "equipo" de DevOps podría ser una reunión semanal y actualizaciones asincrónicas diarias para mantenerse informados sobre lo que está sucediendo.

Los objetivos principales del equipo deben ser alinear el entorno de desarrollo con el entorno de producción, escribir (e implementar) fragmentos de código más pequeños con más frecuencia y aumentar la automatización y el control de código fuente.

Hablemos de lo que significan esas cosas y cómo se pueden lograr.

2. Alinear Prácticas y Entornos

Incluso los equipos pequeños pueden comenzar a alinear sus entornos brindando a los desarrolladores más acceso al entorno de producción, incluso solo para monitorear cómo las revisiones afectan el producto final.

Intente darle a su equipo de desarrollo una fuente actualizada del estado de la red, incluso si es solo en un monitor en la esquina. Pueden ver de inmediato cómo su código implementado puede estar afectando el tráfico o notar si hay una caída repentina que podría ser un problema importante.

También necesitará que el equipo de DevOps cree una estrategia para hacer que el entorno de prueba de desarrollo y el entorno de producción real sean lo más parecidos posible, idealmente idénticos. Implicará muchas reuniones y un sólido proyecto de documentación no solo para alinear los entornos, sino también para mantenerlos en línea a medida que ocurren cambios con el tiempo.

La alineación de los dos entornos significa que el equipo de operaciones dedica menos tiempo a tratar de adaptar el código del desarrollador a las realidades del producto final.

3. Implemente fragmentos de código más pequeños

El tercer paso es salir de la mentalidad de la gran actualización. Las revisiones de código grandes pueden tardar semanas o meses en probarse, aprobarse e implementarse. Esto ralentiza la implementación de funciones y, en general, lo hace menos competitivo en el mercado. También lo hace menos ágil en el caso de una tendencia nueva y emocionante o un problema catastrófico.

Una de las claves para expandir DevOps para equipos pequeños en su empresa es tener la mentalidad de escribir fragmentos de código más pequeños e implementarlos más rápido. Estos deben ser lo suficientemente pequeños como para que puedan probarse e implementarse en cuestión de horas.

4. Adopte la automatización y el control de fuentes

El camino final hacia el éxito de DevOps para equipos pequeños es el uso intensivo de la automatización.

¿Por qué automatización? Por un lado, la automatización acelera la prueba y la implementación del código. También libera tiempo tanto para los desarrolladores como para los gerentes de operaciones para implementar las estrategias de DevOps enumeradas anteriormente. Este tiempo adicional también permite que sus equipos de desarrollo y operaciones se centren en cosas que mejoran el negocio en lugar de simplemente apagar incendios. Y, por último, aumenta la eficiencia y la precisión de la documentación, las cuales tienen sus propios méritos para la incorporación, la educación y el cumplimiento.

Primero necesitará algo que lo ayude a compilar y probar código todo el tiempo, en cualquier momento. Una aplicación como Jenkins o Bitrise puede ayudar a facilitar la integración y la entrega continuas.

Luego, necesitará una plataforma de control de fuente para rastrear y administrar las revisiones en el código. Plataformas como GitHub y SourceForge pueden ayudarlo aquí.

El siguiente paso en la cadena será un sistema de gestión de la configuración para mantener la coherencia y la calidad en todos los ámbitos. Herramientas como Chef o SaltStack son excelentes lugares para comenzar.

New Relic crea una plataforma para observar todos sus sistemas y es extremadamente útil para monitorear este tipo de automatización de código de extremo a extremo.

También puede ser una buena idea considerar la configuración dinámica en caso de que tenga que girar rápidamente todo el sistema automatizado en una nueva dirección.

Implementación de DevOps para equipos pequeños y organizaciones pequeñas

No se preocupe si su equipo o empresa es demasiado pequeño para implementar DevOps de manera efectiva. En su lugar, piense en estas herramientas como una mesa de buffet de la que puede extraer ideas organizativas.

Ninguna organización, sin importar su tamaño, se verá perjudicada por más comunicación, más responsabilidad y un mayor y más granular seguimiento de revisiones.