DevOps - una nueva generación de developers - Juan Carlos Abaunza
2124
post-template-default,single,single-post,postid-2124,single-format-standard,bridge-core-2.0.3,ajax_fade,page_not_loaded,,qode-title-hidden,qode_grid_1300,qode-theme-ver-19.1,qode-theme-bridge,disabled_footer_top,qode_header_in_grid,wpb-js-composer js-comp-ver-6.0.5,vc_responsive
DevOps

DevOps – una nueva generación de developers

En el mercado y en la cotidianidad de nuestro negocio escuchamos conceptos nuevos o temas en los que la competencia ya está trabajando, entonces es natural que nuestra curiosidad e interés por ir a la vanguardia nos lleve a implementar nuevas  tecnologías para beneficio propio y para no ir detrás de nuestros competidores. 

Precisamente, DevOps es un concepto del que muchas personas están hablando, pero antes de implementarlo debemos tener claro para qué sirve y cuáles son los objetivos a la hora de aplicarla para sacarle provecho correctamente.

Primero preguntemos:

¿Qué quiero mejorar en el proceso de construcción de mis productos?

Desarrollar un producto de software siempre tiene desafíos y retos que no podemos controlar. Es así como cada organización va teniendo diferentes dolores de cabeza que se solucionan de alguna u otra forma, “de momento” por la premura de salir pronto con el producto. Por lo general, estas soluciones temporales se convierten en el día a día y va creciendo silenciosamente.

Es por eso que los invitamos a reflexionar sobre cuáles son los puntos del ciclo de desarrollo de productos que llevamos a cabo en la organización. Para eso tenemos la siguiente gráfica en la cual se apalanca DevOps para iniciar un proceso de mejora. La recomendación es que tomando como base este ciclo, se revise en qué momentos se tienen cuellos de botella o se han encontrado errores que no nos permiten avanzar como se esperaba.

devops

Principales beneficios de los ingenieros DevOps

 

Entrega rápida y frecuente
Moverse a gran velocidad para que se pueda innovar más rápido, adaptarse mejor a los mercados cambiantes y ser más eficiente para impulsar los resultados comerciales. Por ejemplo, los microservicios y la entrega continua permite a los equipos hacerse cargo de los servicios y lanzar las actualizaciones mucho más rápido.
Además, al aumentar la frecuencia de las versiones, puede innovarse y mejorar su producto más rápido. Mientras más rápido se lanza nuevas características y corregir errores, más rápido podrá responder a las necesidades de sus clientes y genere una ventaja competitiva. La integración continua y la entrega continua son prácticas que automatizan el proceso de lanzamiento del software, desde la creación hasta la implementación.

 

Confianza
Garantizar la calidad de las actualizaciones de las aplicaciones y los cambios de infraestructura para que se pueda entregar de manera más segura a un ritmo más rápido mientras se mantenga una experiencia positiva para los usuarios finales. El uso de prácticas como la integración continua y la entrega continua lo ayudará a evaluar que cada cambio sea funcional y seguro. Las prácticas de monitoreo y registro le ayudan a mantenerse informado sobre el rendimiento en tiempo real.

 

Escala a riesgos mínimos
Operar y administrar la infraestructura y procesos de desarrollo a escala. La automatización y la consistencia ayudan a administrar sistemas complejos y cambiantes de manera eficiente y con un riesgo reducido. La infraestructura como código ayuda a administrar los entornos de desarrollo, pruebas y producción de una manera repetible y más eficiente.

 

Seguridad
Al utilizar políticas de cumplimiento automatizadas, controles detallados y técnicas de administración de la configuración, no se sacrifica la seguridad. Utilizando la infraestructura como código y política como código, se puede definir y seguir el cumplimiento a escala.

 

Integración continua
Combinar regularmente los cambios de código en un repositorio central, después del cual se ejecutan compilaciones y pruebas automatizadas. Los objetivos clave de la integración continua son encontrar y corregir errores más rápidamente, mejorar la calidad del software y reducir el tiempo que lleva validar y lanzar nuevas actualizaciones de software.

 

Entrega continua
Los cambios de código se crean, prueban y preparan automáticamente para su lanzamiento a la producción. Se expande tras la integración continua implementando todos los cambios de código en un entorno de prueba y en un entorno de producción después de la etapa de compilación. Cuando la entrega continua se implementa correctamente, los desarrolladores siempre tendrán un artefacto de construcción listo para la implementación que haya pasado por un proceso de prueba estandarizado.

 

Reducción del tiempo de recuperación y de los “cuellos de botella”
Incluso si se minimiza la probabilidad de fallos, ocurren fallos. Cuando ocurren, el tiempo para recuperar la eficiencia operacional es relativamente reducido debido a las eficiencias obtenidas por los miembros del equipo de desarrollo que entienden cómo funcionan los equipos de operaciones y viceversa. De esta manera, los ingenieros de DevOps ven todo el proceso de principio a fin y ven dónde se puede ajustar y mejorar.

DevOps

Principales herramientas DevOps

Para lograr todos estos beneficios, hay que usar herramientas DevOps. Veamos las principales y mejores:

  • Jenkins
  • Docker
  • Github
  • Consul
  • Zookeeper
  • Bash
  • Netstat
  • Htop
  • Iotop
  • Telnet
  • Ngrep
  • Ping
  • Curl
  • Samba
  • Cifs
  • Nfs

 

Esperemos que este articulo sobre herramientas DevOps  les haya servido de ayuda y que al igual que hacemos nosotros en A&ATIC, vean las beneficios de DevOps y se animen a implementarlo en los proyectos.