Cómo explicar DevOps y hacer que funcione en tu empresa.
Si lees de Cloud, Microservicios, Docker, Kubernetes, te vas a topar con un término en común, DevOps.
Para que todas las estrategias anteriores funcionen, tu organización debe haber comprendido el valor de esta metodología, pero no siempre es fácil hacer que todas las áreas de la organización lo hagan ¿Que pasa cuando tienes que explicarle a las demás áreas de una empresa que es DevOps y porque vale la pena poner atención? Te comparto como abordo el tema yo por si te resulta de útil en el futuro y si coincides, por favor comparte.
¿Qué es DevOps?
Hay muchas definiciones de que es DevOps y yo me quedo con esta: “Es un modelo cultural y organizacional que promueve la colaboración para habilitar que los equipos de TI de alto rendimiento que consigan los objetivos del negocio.”
Ahora bien, definiciones y frases hay muchas, pero para dar justo en el corazón del tema, siempre trato de explicar que DevOps es más que conocimientos técnicos y de desarrollo. DevOps se trata de conectar a las personas dentro de tu empresa, para crear una cadena de valor para entregar software.
Imagina el siguiente escenario:
- Los desarrolladores quieren darle al usuario el producto lo antes posible. En su ambiente (lejos de parecerse a producción) todo funciona.
- Los de operaciones no quieren poner algo en producción que les ocasione problemas, y haga que el sistema tenga downtime y los usuarios llamen reclamando.
Esto muestra una enorme fricción entre desarrollo y operaciones, lo cual afecta al negocio. Y esto no pasa por las herramientas que usemos.
“No importa lo que parezca a simple vista, siempre es un problema relacionado a las personas“. - Jerry Weinberg
DevOps es ese cambio de mentalidad con el que se tiene una visión holística del proceso de desarrollo y se rompe la barrera entre Dev y Ops.
Objetivos de DevOps
Podemos dividir los objetivos de esta cultura y metodología de la siguiente manera:
Equipos y personal:
- Cambio cultural: Mejorar la colaboración y cooperación. Basado en meritocracia. Equipos autosuficientes centrados en el negocio.
- Mejorar la respuesta al negocio: Priorizar características que mejoran la rentabilidad. Responder más rápido al mercado con mejor software.
Tecnología:
- Calidad: Reducción de defectos en el código. Mejores SLAs para las aplicaciones.
- Adopción de nuevas plataformas y herramientas de nube, containers, CI/CD para liberar nuevos y mejores servicios.
Procesos
- Time-to-market: Nuevas funcionalidades, más rápido.
- Productividad: Incrementar la productividad y generar confianza mediante los 3 frentes de acción DevOps: Desarrollo + Operación + Aseguramiento de la Calidad (QA)
- Automatización: Ayudando a modernizar procesos de TI e implementar gestiones y correcciones más rápido.
- No dependencia: Evita los silos, el conocimiento no está únicamente en una persona/equipo, centrado en ser multidisciplinario e integral.
Y….¿Qué no es DevOps?
Un error común es confundir DevOps como que todos los miembros del equipo técnico saben de desarrollo, de infraestructura, de operación y de redes.
Estrictamente no existen profesionales con estudios en DevOps sino ingenieros de distintas ramas con capacidades para integrarse en equipos DevOps.
Hay DevOps más centrados en el desarrollo y otros más centrados en la operación. Depende de las necesidades del negocio.
Puntos críticos a cambiar en la cultura organizacional
Apoyo de las demás áreas: Los equipos DevOps requieren que la organización los habilite para actuar como startups que innovan continuamente y les permite cambiar los productos y servicios que recibirán un nivel máximo de satisfacción del cliente.
Crear con el fin en mente: Las organizaciones necesitan dejar de lado los modelos de cascada y orientados a procesos donde cada unidad o individuo trabaja solo para un rol / función particular, sin ver la imagen completa.
Responsabilidad de extremo a extremo: Cuando las organizaciones tradicionales desarrollan soluciones de TI y luego las transfieren a operaciones suceden conflictos y se generan errores. En un entorno de DevOps, los equipos se organizan verticalmente de modo que sean completamente responsables desde el concepto hasta la operación.
Automatiza todo lo que puedas: Automatización no solo del proceso de desarrollo de software sino también de todo el panorama de la infraestructura mediante el desarrollo de plataformas en la nube. La automatización es sinónimo del impulso para renovar la forma en que se entrega un servicio
Top 10 skills a buscar en un perfil DevOps
Este es el Top 10 Skills que nosotros buscamos en alguien o tratamos formar para el perfil de Ingeniero DevOps:
- Buen nivel en Linux (Aunque hay DevOps 100% Microsoft)
- Entendimiento cloud (Webservices, APIs, REST) y plataformas (AWS, GCP, Azure, OS)
- Scripting (Bash, Python)
- Herramientas de Configuración distribuida (Ansible,Puppet, Chef)
- Manejo de servidores web y de aplicaciones
- Manejo de herramientas de monitoreo (Nagios, zabbix) y APM (Tracing)
- Conocimientos de red y herramientas (Balanceo, DNS, HTTP, tcpdump, telnet, dig, traceroute)
- Capacidad de Troubleshooting (Resolución de problemas de desarrollo e infraestructura)
- Conocimientos de seguridad (SSL, Sesiones, Tokens, Autorización)
- Conocimientos de Contenedores (Docker)
¿Qué opinas? Me gustaría leer tus comentarios sobre tu experiencia en equipos DevOps