entornos de desarrollo portables, reproducibles y ligeros
DESCRIPTION
Ventajas e incovenientes de las diferentes opciones disponibles para configurar entornos de desarrollo en equipos de trabajo mixtos. Introducción a Vagrant, una herramienta para crear, configurar y desplegar entornos virtuales.TRANSCRIPT
![Page 1: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/1.jpg)
Entornos de desarrollo portables,
reproducibles y ligeros
![Page 2: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/2.jpg)
@borjacampina
Operaciones IT y Desarrollo de producto
http://i2factory.com/ spin-off uhu/us
![Page 3: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/3.jpg)
¿Qué opciones tenemos para preparar
el entorno de desarrollo?
![Page 4: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/4.jpg)
#1 Instalación en máquina local
![Page 5: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/5.jpg)
“ensucias” tu máquina interferencia con software habitual diferentes librerías para diferentes
proyectos no se puede portar (no fácilmente)
características diferentes del entorno de producción
inconvenientes
![Page 6: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/6.jpg)
![Page 7: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/7.jpg)
Si además eres parte de un equipo...
![Page 8: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/8.jpg)
...puede que haya incidencias debido a usar...
Diferentes SSOO
Diferentes versiones de apps/pkgs/deps
Diferentes configuraciones
![Page 9: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/9.jpg)
#2 Crear máquina
virtual (en local)
![Page 10: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/10.jpg)
mantienes máquina (host) limpia
entornos de proyectos separados
snapshots y portabilidad
ventajas
![Page 11: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/11.jpg)
instalación manual (o casi: bitnami, seeding, unattended..)
VM snapshots o exportaciones de
VM ocupan BASTANTE
inconvenientes
![Page 12: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/12.jpg)
#3 Servidor /
máquina remota
![Page 13: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/13.jpg)
entorno independiente de tu máquina
puede tener mismas
características que el entorno de producción
ventajas
![Page 14: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/14.jpg)
soltar pa$$ta (aunque hay entornos gratuitos y otros cada vez más
asequibles: digitalocean, linode... pay-per-use)
necesidad de acceso a internet push code / changes to server
inconvenientes
![Page 15: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/15.jpg)
Ventajas: mismo entorno para el equipo
Inconvenientes: mismo entorno para el equipo
Si además eres parte de un equipo...
![Page 16: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/16.jpg)
Pero no toques, ¿por qué tocas?
![Page 17: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/17.jpg)
resumiendo...
![Page 18: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/18.jpg)
Crear un entorno de forma
manual es un pu** co**** tedioso
![Page 19: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/19.jpg)
las cosas no funcionan...
![Page 20: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/20.jpg)
la documentación a veces es Incompleta o incorrecta...
![Page 21: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/21.jpg)
y si además el entorno se estropea pasado un tiempo...
![Page 22: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/22.jpg)
![Page 23: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/23.jpg)
free** & opensource
https://github.com/mitchellh/vagrant
primera release v.0.1.0 marzo 2010
h"ps://github.com/mitchellh/vagrant/wiki/Available-‐Vagrant-‐Plugins
herramienta que nos permite crear y configurar de forma ligera
(con código, en texto plano) entornos de desarrollo
reproducibles y portables
![Page 24: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/24.jpg)
CLI (ruby) que permite configurar y administrar
herramientas de virtualización
(por defecto virtualbox)
![Page 25: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/25.jpg)
Virtualbox (provider por defecto**) h"ps://www.virtualbox.org/wiki/Downloads
Vagrant (necesita ruby)
h"p://downloads.vagrantup.com/
(también como gema: gem install vagrant –no-‐ri –no-‐rdoc)
instalación
![Page 26: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/26.jpg)
Soporta muchos proveedores on-premise e IaaS/Proveedores cloud
docker-‐provider vagrant-‐aws vagrant-‐cloudstack vagrant-‐digitalocean vagrant-‐hp vagrant-‐joyent vagrant-‐kvm vagrant-‐libvirt vagrant-‐lxc vagrant-‐managed-‐servers vagrant-‐openstack vagrant-‐parallels vagrant-‐proxmox vagrant-‐rackspace vagrant-‐soHlayer vagrant-‐vsphere (no oficial) ...
http://www.vagrantup.com/vmware
Soporte oficial, licencia 79usd
![Page 27: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/27.jpg)
vagrant init
![Page 28: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/28.jpg)
Wait... boxes?
Son “máquinas esqueleto/base”, preconfiguradas (usuarios root/vagrant, ruby, puppet...)
Cuando ejecutamos vagrant box add [box-name] [box-url/box-path]
Indicamos a vagrant que descargue (si especificamos url) o copie (si especificamos un path) en nuestro directorio local
.vagrant.d/boxes dicha máquina y le asigne el alias “box-name”
![Page 29: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/29.jpg)
Wait... boxes?
¿De dónde obtenemos más máquinas? http://www.vagrantbox.es/
http://cloud-images.ubuntu.com/vagrant/
¿Y si queremos hacernos una? Comando: vagrant package
https://github.com/jedi4ever/veewee
![Page 30: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/30.jpg)
vagrant box add precise32 http://files.vagrantup.com/precise32.box vagrant init precise32
(Vagrantfile)
vagrant up
vagrant destroy –f
vagrant ssh
![Page 31: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/31.jpg)
Sólo tenemos una máquina básica
Para configurar e instalar software de forma desatendida vagrant nos ofrece los siguientes métodos de aprovisionamiento:
• Puppet http://puppetlabs.com/ (https://puphpet.com ) • Chef http://www.opscode.com/chef/ (http://rove.io/ )
• Ansible http://www.ansibleworks.com/ • Shell
(Más
https://github.com/mitchellh/vagrant/wiki/Available-Vagrant-Plugins)
¿Cuándo se ejecuta? En el primer vagrant up (para evitarlo: --no-provision)
En una máquina corriendo: vagrant provision
![Page 32: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/32.jpg)
vagrant cloud (>= 1.5)
![Page 33: Entornos de desarrollo portables, reproducibles y ligeros](https://reader034.vdocumento.com/reader034/viewer/2022052301/555a2e9ad8b42ab3088b5041/html5/thumbnails/33.jpg)
¿Quién usa vagrant?
“Tuen&-‐in-‐a-‐box. Es lo que usan los desarrolladores para trabajar y es un perfil de VM que ejecuta un perfil de puppet que provisiona una infraestructura completa para que un desarrollador tenga un "mini Tuen&" en local. Con todo el development environment
necesario.
Usando Vagrant, el desarrollador es libre de hacer lo que le de la gana en su propio host y podra destruir la VM y levantarla con un solo comando cada vez que quiera, y por supuesto,
consumir los recursos que quiera sin afectar a nadie.” -‐ Victor García (Tuen& DevOps Engineer)
h"ps://drupal.org/project/vdd