Despliega código en la nube de forma Ágil

Buenas prácticas y Herramientas

Patricia Juárez Muñoz
Ingeniera Software Senior
      

Licenciada en Ingeniería Informática en la Universidad de Granada (España).
Experta en el desarrollo de aplicaciones web y móviles.

2007-2016 Freelance en 3DVista y Axesor.
2016- Senior Software Engineer en Badger Maps.

badger logo

Startup californiana, con sede en San Francisco y centro de desarrollo en Granada.

Patrocinadores de la Oficina de Software Libre.

badger maps

DevOps

Metodología de creación de software

DevOps

DevOps

  • Automatización de tareas
  • Preparación de entornos de desarrollo, pruebas y producción
  • Provee herramientas para realizar despliegues a los entornos
  • Gestiona las distintas configuraciones de los servidores

DevOps

Ventajas

  • Se fabrica software más rápidamente
  • Software es de mayor calidad
  • Menor coste
  • Frecuencia de despliegues muy alta
  • Menos preocupaciones

DevOps

Por donde empezar...

con qué herramientas...

Entornos de Desarrollo

Sistemas de Virtualización

Sistemas de Virtualización

Ventajas

  • Misma configuración para todos los desarrolladores
  • Independiente del Sistema Operativo
  • Semejante a los entornos de Test y Producción
  • Facilita trabajar con distintos proyectos

Gestor de máquinas virtuales

Vagrant Box

Ejecución con Vagrant

									
vagrant up
vagrant ssh
									
								

Linux + Contenedores

Docker Store

Ejecución con Docker

									
docker-compose up
									
								

Desarrollo Dirigido
por Tests

TDD

TDD

Sistema de Control de Versiones

Sistemas de Control de Versiones

Plataformas de Desarrollo Colaborativo

Integración Continua

Ventajas CI

  • Detección y solución de problemas de integración.
  • Disponibilidad constante de una versión para pruebas, demos o lanzamientos.
  • Ejecución inmediata de las pruebas unitarias.
  • Monitorización continua de las métricas de calidad del proyecto.

Sistemas de Integración Continua

Revisiones de Código

Despliegue continuo

Despliegue Continuo

Ventajas

  • Incrementos de productos más fluidos
  • Feedback de usuarios más temprano
  • Proceso automatizado evitando error humano
  • Cualquier miembro del equipo puede hacer el despliegue

Una vez desplegada...

  • Soporte a usuarios
  • Monitorización
  • Comunicación

¿Dudas?

Coméntalas aquí o por Twitter a @ccsakuweb

Gracias  ;)

patrixd.github.io/despliegues-de-calidad

github.com/patrixd/despliegues-de-calidad