N.World
DevOps

Bosonit TechXperience | “Aproximación a DevOps&Cloud” por Santiago Murcia

En nuestra tercera sesión de las TechXperience, Santiago Murcia, Head of Cloud&DevOps, llevó las riendas de la ponencia y realizó una aproximación al concepto de la metodología DevOps y del Cloud. Una charla repleta de conocimiento y experiencia que hoy os traemos recogiendo los puntos y aspectos más interesantes.

¿Quién es Santiago Murcia?

Pero antes de entrar en materia, si aún no conocéis a Santiago, os hacemos una pequeña presentación de él. Santi es un físico reconvertido a informático casi desde los inicios de su carrera hace ya muchos años. Como experiencia profesional lleva trabajando muchos años y empezó desarrollando. Su primer proyecto fue el desarrollo de interfaz en CajaDuero con un lenguaje que, seguramente no os suene a nadie, se llamaba NSDK lenguaje francés basado en  Visual Basic.

Después estuvo cerca de dos años viviendo en África, primero en Etiopía y luego en Libia. Lo que hacía era el diseño y desarrollo de una aplicación móvil para la recogida de datos de una compañía eléctrica, una lectura de medidores que hoy en día en Europa está automatizado, pero en África, hoy en día, se sigue haciendo de forma manual.

De ahí, pasó a a Indizen, lo que ahora es Nfq Solutions, donde destaca algún proyecto como fue el rediseño y la implementación de la arquitectura de AIRE. Continuó trabajando en esta línea de herramientas propias de Solutions, pero dado que tenía más proyectos, más herramientas, más clientes a los que atender… Con su equipo decidió darle una vuelta a esa área de Clouc&DevOps para empezar a gestionar todo el volumen de máquinas en la nube, siendo ahí de donde viene el germen de esta área.

Ahora en Bosonit, ya a nivel de grupo, está intentando estandarizar todo esto un poco más y poder sacarle partido para todos los proyectos que hay en Bosonit, que es consciente que son muchos.

¿Qué es DevOps?

Es una combinación de los términos “Develop” y “Operaciones” en lo que se intenta hacer una confluencia de ambos equipos multidisciplinarios para optimizar tareas y tiempos que se acaba llevando en el campo de la automatización, pero no es solo automatización. Al final es una filosofía de trabajo que tiene la finalidad la calidad de las soluciones y la eficiencia en estos procesos de desarrollo.

¿En qué consiste? En hacer que una aplicación funcione correctamente y como vamos a hacer evolucionar esa aplicación. Esto se puede ver en tres líneas muy claras:

  • Las pruebas que hay que hacer sobre un código cuando estamos desarrollando.
  • Cómo vamos a hacer el control de esas que versiones que vamos teniendo, de las diferentes ramas que vamos generando.
  • Cómo vamos a hacer la promoción entre los diferentes entornos a la hora de subir esto a un cliente.

Se podría añadir otro punto más que sería la monitorización de estos entornos. Entonces, ¿Cuándo hablamos de DevOps? Cuando hablamos de intentar gestionar estos tres campos en un departamento unificado.

Estas tres líneas las podemos definir cómo:

  • Las pruebas: definir los casos, identificar los imputs, los outputs, los ejecutamos y comparamos.
  • Control de versiones: seguir una metodología, hoy en día nosotros usamos GitFlow. Tenemos una rama máster sobre la que no se trabaja, abrimos una rama Develop para hacer los cambios que haga falta y otra rama para cada funcionalidad que se vaya a crear.
  • Promoción de entornos: el desarrollador trabaja en su equipo y cuando genera un commit, se sube al repositorio tras pasar una serie de test. De ahí se sube a un entorno de pruebas donde se despliega el código e instalamos todo lo que sea necesario. Desde la creación de la base de datos, meter las tablas estáticas… hacemos una prueba integrada para comprobar que esa pieza de código subida no rompe el resto dentro de un pipeline que va a generar unas alertas.

Si estas pruebas van bien, se sube a un entorno de preproducción, donde se da paso al cliente para que haga sus pruebas de usuario. Si va mal, se vuelve al paso inicial y se sigue desarrollando. Si va bien, se realiza el despliegue de los cambios sobre el entorno de producción.

Lo que se intenta con DevOps es que estas tareas, estas pruebas, el control de versiones y la promoción entre entornos estén gestionadas por un equipo y que tenga una serie de tareas lo más automatizadas posibles para que no generen mucho más trabajo.

Herramientas DevOps

DevOps

¿Qué es la Cloud?

Hoy en día todos estamos familiarizados con ella. Pese a esto, vamos a aproximarnos a qué es. La computación en la nube es la disponibilidad de recursos informáticos, sobre todo almacenamiento y capacidad de cálculo en la que no tenemos que hacer ningún tipo de gestión. De esto se encarga el proveedor. Se apoya en infraestructuras con virtualización, un alto grado de automatización y una elevada capacidad para atender demandas variables.

Es decir, olvidarse de tener máquinas en tu CPD y que se descargue todo en la cloud. Esto hace unos años era más complejo sobre todo por el tipo de clientes, por los requerimientos regulatorios que tienen en cuanto a dónde están sus datos, dónde dejar su información, etc.

¿Quieres conocer más sobre el tema? Aquí tienes la sesión integra.

Bosonit

Bosonit

Tech & Data

Te puede interesar

Da el salto
tecnológico.

Contacta con nosotros.