SlideShare una empresa de Scribd logo
Entornos de desarrollo
portables,
reproducibles y ligeros
@borjacampina
Operaciones IT y Desarrollo
de producto
http://i2factory.com/
spin-off uhu/us
¿Qué opciones
tenemos para preparar
el entorno de
desarrollo?
#1
Instalación en
máquina local
“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
Si además eres parte de un equipo...
...puede que haya incidencias
debido a usar...
Diferentes SSOO
Diferentes versiones de apps/pkgs/deps
Diferentes configuraciones
#2
Crear máquina
virtual (en local)
mantienes máquina (host) limpia
entornos de proyectos separados
snapshots y portabilidad
ventajas
instalación manual (o casi:
bitnami, seeding, unattended..)
VM snapshots o exportaciones de
VM ocupan BASTANTE
inconvenientes
#3
Servidor /
máquina remota
entorno independiente de tu
máquina
puede tener mismas
características que el entorno
de producción
ventajas
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
Ventajas: mismo entorno para el equipo
Inconvenientes: mismo entorno para el equipo
Si además eres parte de un equipo...
Pero no toques, ¿por qué tocas?
resumiendo...
Crear un
entorno
de forma
manual es
un pu**
co****
tedioso
las cosas no funcionan...
la documentación a veces es
Incompleta o incorrecta...
y si además el entorno se estropea
pasado un tiempo...
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
CLI (ruby) que permite
configurar y administrar
herramientas de
virtualización
(por defecto virtualbox)
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
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
vagrant init
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”
	
  
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
vagrant box add precise32 http://files.vagrantup.com/precise32.box
vagrant init precise32
(Vagrantfile)
vagrant up
vagrant destroy –f
vagrant ssh
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
vagrant cloud (>= 1.5)
¿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	
  	
  
podrá	
  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	
  	
  	
  	
  	
  

Más contenido relacionado

La actualidad más candente

Oracle vm virtualbox
Oracle vm virtualboxOracle vm virtualbox
Oracle vm virtualboxgianca_reina
 
Maquinas virtuales y Virtualización
Maquinas virtuales y VirtualizaciónMaquinas virtuales y Virtualización
Maquinas virtuales y VirtualizaciónJesus Cuellar Sanchez
 
Ubuntu 12.04
Ubuntu 12.04 Ubuntu 12.04
Ubuntu 12.04 leidykhr
 
Maquinas virtuales parallels
Maquinas virtuales parallelsMaquinas virtuales parallels
Maquinas virtuales parallelsMiguel Frías
 
Maquinas Virtuales Angie Terminado
Maquinas Virtuales Angie TerminadoMaquinas Virtuales Angie Terminado
Maquinas Virtuales Angie Terminadoguest0fe33e2f
 
Presentación máquina virtual
Presentación máquina virtual Presentación máquina virtual
Presentación máquina virtual ledamc97
 
Presentación sobre aulas virtuales
Presentación sobre aulas virtuales Presentación sobre aulas virtuales
Presentación sobre aulas virtuales Diego Sinche
 
Maquina virtual
Maquina virtualMaquina virtual
Maquina virtualDtorressal
 
Conociendo VirtualBox
Conociendo VirtualBoxConociendo VirtualBox
Conociendo VirtualBoxDiego Camacho
 
Recuperar el grub2 luego de instalar windows
Recuperar el grub2 luego de instalar windowsRecuperar el grub2 luego de instalar windows
Recuperar el grub2 luego de instalar windowsEl Pardo
 
Usos de vm ware workstation
Usos de vm ware workstationUsos de vm ware workstation
Usos de vm ware workstationWilly VerT
 

La actualidad más candente (19)

Veronik
VeronikVeronik
Veronik
 
Vero.docx 2
Vero.docx 2Vero.docx 2
Vero.docx 2
 
Oracle vm virtualbox
Oracle vm virtualboxOracle vm virtualbox
Oracle vm virtualbox
 
Maquinas virtuales y Virtualización
Maquinas virtuales y VirtualizaciónMaquinas virtuales y Virtualización
Maquinas virtuales y Virtualización
 
Ubuntu 12.04
Ubuntu 12.04 Ubuntu 12.04
Ubuntu 12.04
 
Maquinas virtuales parallels
Maquinas virtuales parallelsMaquinas virtuales parallels
Maquinas virtuales parallels
 
Instalacion De Ubuntu
Instalacion De UbuntuInstalacion De Ubuntu
Instalacion De Ubuntu
 
Virtual pc
Virtual pcVirtual pc
Virtual pc
 
Virtualización - UPSAM
Virtualización - UPSAMVirtualización - UPSAM
Virtualización - UPSAM
 
Maquinas Virtuales Angie Terminado
Maquinas Virtuales Angie TerminadoMaquinas Virtuales Angie Terminado
Maquinas Virtuales Angie Terminado
 
Intro Linux
Intro LinuxIntro Linux
Intro Linux
 
Presentación máquina virtual
Presentación máquina virtual Presentación máquina virtual
Presentación máquina virtual
 
Presentación sobre aulas virtuales
Presentación sobre aulas virtuales Presentación sobre aulas virtuales
Presentación sobre aulas virtuales
 
Dualidad linux windows
Dualidad linux   windowsDualidad linux   windows
Dualidad linux windows
 
Maquina virtual
Maquina virtualMaquina virtual
Maquina virtual
 
Conociendo VirtualBox
Conociendo VirtualBoxConociendo VirtualBox
Conociendo VirtualBox
 
Recuperar el grub2 luego de instalar windows
Recuperar el grub2 luego de instalar windowsRecuperar el grub2 luego de instalar windows
Recuperar el grub2 luego de instalar windows
 
Instalacion ubuntu11.1
Instalacion ubuntu11.1Instalacion ubuntu11.1
Instalacion ubuntu11.1
 
Usos de vm ware workstation
Usos de vm ware workstationUsos de vm ware workstation
Usos de vm ware workstation
 

Destacado

Vagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de usoVagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de usoSergio Zambrano Delfa
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a DockerOpen Canarias
 
Virtualización en software libre con PROXMOX VE: hacia el CPD sostenible
Virtualización en software libre con PROXMOX VE: hacia el CPD sostenibleVirtualización en software libre con PROXMOX VE: hacia el CPD sostenible
Virtualización en software libre con PROXMOX VE: hacia el CPD sostenibleJuan Jesús Velasco Rivera
 
Virtual worlds as collaboration tool
Virtual worlds as collaboration toolVirtual worlds as collaboration tool
Virtual worlds as collaboration toolGerardo Puerta
 
Kubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y TaniwaKubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y TaniwaJoselu Marina
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualizaciónMarcelo Ochoa
 
Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...
Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...
Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...Docker, Inc.
 
Docker for the Enterprise with Containers as a Service by Banjot Chanana
Docker for the Enterprise with Containers as a Service by Banjot ChananaDocker for the Enterprise with Containers as a Service by Banjot Chanana
Docker for the Enterprise with Containers as a Service by Banjot ChananaDocker, Inc.
 

Destacado (10)

Consolidacion
ConsolidacionConsolidacion
Consolidacion
 
Vagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de usoVagrant y Docker - Guía práctica de uso
Vagrant y Docker - Guía práctica de uso
 
Conceptos avanzados en docker
Conceptos avanzados en dockerConceptos avanzados en docker
Conceptos avanzados en docker
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Virtualización en software libre con PROXMOX VE: hacia el CPD sostenible
Virtualización en software libre con PROXMOX VE: hacia el CPD sostenibleVirtualización en software libre con PROXMOX VE: hacia el CPD sostenible
Virtualización en software libre con PROXMOX VE: hacia el CPD sostenible
 
Virtual worlds as collaboration tool
Virtual worlds as collaboration toolVirtual worlds as collaboration tool
Virtual worlds as collaboration tool
 
Kubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y TaniwaKubernetes: Caso de uso real con mememtum y Taniwa
Kubernetes: Caso de uso real con mememtum y Taniwa
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
 
Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...
Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...
Docker for Ops: Operationalize your Docker Built Apps in Production by Evan H...
 
Docker for the Enterprise with Containers as a Service by Banjot Chanana
Docker for the Enterprise with Containers as a Service by Banjot ChananaDocker for the Enterprise with Containers as a Service by Banjot Chanana
Docker for the Enterprise with Containers as a Service by Banjot Chanana
 

Similar a Entornos de desarrollo portables, reproducibles y ligeros

Vagrant: virtualizando entornos de desarrollo
Vagrant: virtualizando entornos de desarrolloVagrant: virtualizando entornos de desarrollo
Vagrant: virtualizando entornos de desarrolloScalia
 
Distribucion_aplicaciones
Distribucion_aplicacionesDistribucion_aplicaciones
Distribucion_aplicacionesJuanjo Marin
 
Instalacion Ubuntu Roman Peralta
Instalacion Ubuntu Roman PeraltaInstalacion Ubuntu Roman Peralta
Instalacion Ubuntu Roman Peraltask8erxera
 
Instalacion_del_Ubuntu_Trabajo2aporte1
Instalacion_del_Ubuntu_Trabajo2aporte1Instalacion_del_Ubuntu_Trabajo2aporte1
Instalacion_del_Ubuntu_Trabajo2aporte1sk8erxera
 
Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y Puppet
Virtualización y  Provisionamiento: Entornos de desarrollo con  Vagrant y PuppetVirtualización y  Provisionamiento: Entornos de desarrollo con  Vagrant y Puppet
Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y PuppetRichard Moya
 
Entornos de desarrollo para symfony2 con vagrant y puppet
Entornos de desarrollo para symfony2 con vagrant y puppetEntornos de desarrollo para symfony2 con vagrant y puppet
Entornos de desarrollo para symfony2 con vagrant y puppetVicent Soria Durá
 
Cuckoo sandbox
Cuckoo sandboxCuckoo sandbox
Cuckoo sandboxTensor
 
Cuckoosandbox
CuckoosandboxCuckoosandbox
CuckoosandboxTensor
 
Una introducción a vagrant
Una introducción a vagrantUna introducción a vagrant
Una introducción a vagrantLaura Gimenoide
 
Cuckoo sandbox
Cuckoo sandboxCuckoo sandbox
Cuckoo sandboxTensor
 
Maquinas virtiuales
Maquinas virtiualesMaquinas virtiuales
Maquinas virtiualesyacilaabc
 
Maquinas virtiuales
Maquinas virtiualesMaquinas virtiuales
Maquinas virtiualesyacilaabc
 
Introduccion a Ansible
Introduccion a AnsibleIntroduccion a Ansible
Introduccion a AnsibleOsvaldo
 
El servidor perfecto
El servidor perfectoEl servidor perfecto
El servidor perfectobetabeers
 
Maquinas virtuales
Maquinas  virtualesMaquinas  virtuales
Maquinas virtualesfabi_1220
 
Servidor PXE de Instalaciones GNU/Linux
Servidor PXE de Instalaciones GNU/LinuxServidor PXE de Instalaciones GNU/Linux
Servidor PXE de Instalaciones GNU/Linuxfraterneo GNU/Linux
 

Similar a Entornos de desarrollo portables, reproducibles y ligeros (20)

Vagrant: virtualizando entornos de desarrollo
Vagrant: virtualizando entornos de desarrolloVagrant: virtualizando entornos de desarrollo
Vagrant: virtualizando entornos de desarrollo
 
Distribucion_aplicaciones
Distribucion_aplicacionesDistribucion_aplicaciones
Distribucion_aplicaciones
 
Instalacion Ubuntu Roman Peralta
Instalacion Ubuntu Roman PeraltaInstalacion Ubuntu Roman Peralta
Instalacion Ubuntu Roman Peralta
 
Instalacion_del_Ubuntu_Trabajo2aporte1
Instalacion_del_Ubuntu_Trabajo2aporte1Instalacion_del_Ubuntu_Trabajo2aporte1
Instalacion_del_Ubuntu_Trabajo2aporte1
 
Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y Puppet
Virtualización y  Provisionamiento: Entornos de desarrollo con  Vagrant y PuppetVirtualización y  Provisionamiento: Entornos de desarrollo con  Vagrant y Puppet
Virtualización y Provisionamiento: Entornos de desarrollo con Vagrant y Puppet
 
Entornos de desarrollo para symfony2 con vagrant y puppet
Entornos de desarrollo para symfony2 con vagrant y puppetEntornos de desarrollo para symfony2 con vagrant y puppet
Entornos de desarrollo para symfony2 con vagrant y puppet
 
Vagrant
VagrantVagrant
Vagrant
 
Cuckoo sandbox
Cuckoo sandboxCuckoo sandbox
Cuckoo sandbox
 
Manualvirtualbox.pdf
Manualvirtualbox.pdfManualvirtualbox.pdf
Manualvirtualbox.pdf
 
Cuckoosandbox
CuckoosandboxCuckoosandbox
Cuckoosandbox
 
Memorias
MemoriasMemorias
Memorias
 
Una introducción a vagrant
Una introducción a vagrantUna introducción a vagrant
Una introducción a vagrant
 
Cuckoo sandbox
Cuckoo sandboxCuckoo sandbox
Cuckoo sandbox
 
Maquina virtual
Maquina virtualMaquina virtual
Maquina virtual
 
Maquinas virtiuales
Maquinas virtiualesMaquinas virtiuales
Maquinas virtiuales
 
Maquinas virtiuales
Maquinas virtiualesMaquinas virtiuales
Maquinas virtiuales
 
Introduccion a Ansible
Introduccion a AnsibleIntroduccion a Ansible
Introduccion a Ansible
 
El servidor perfecto
El servidor perfectoEl servidor perfecto
El servidor perfecto
 
Maquinas virtuales
Maquinas  virtualesMaquinas  virtuales
Maquinas virtuales
 
Servidor PXE de Instalaciones GNU/Linux
Servidor PXE de Instalaciones GNU/LinuxServidor PXE de Instalaciones GNU/Linux
Servidor PXE de Instalaciones GNU/Linux
 

Más de betabeers

IONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataformaIONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataformabetabeers
 
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)betabeers
 
Blockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar LageBlockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar Lagebetabeers
 
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica MediavillaCloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica Mediavillabetabeers
 
Desarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo QuilónDesarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo Quilónbetabeers
 
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito -  Jon Torrado - Betabeers BilbaoLa línea recta hacia el éxito -  Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbaobetabeers
 
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu appbetabeers
 
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)betabeers
 
Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)betabeers
 
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)betabeers
 
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)betabeers
 
Elemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de UsoElemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de Usobetabeers
 
Seguridad en tu startup
Seguridad en tu startupSeguridad en tu startup
Seguridad en tu startupbetabeers
 
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.betabeers
 
Buenas prácticas para la optimización web
Buenas prácticas para la optimización webBuenas prácticas para la optimización web
Buenas prácticas para la optimización webbetabeers
 
La magia de Scrum
La magia de ScrumLa magia de Scrum
La magia de Scrumbetabeers
 
Programador++ por @wottam
Programador++ por @wottamProgramador++ por @wottam
Programador++ por @wottambetabeers
 
RaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoTRaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoTbetabeers
 
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015betabeers
 
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015betabeers
 

Más de betabeers (20)

IONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataformaIONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataforma
 
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
 
Blockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar LageBlockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar Lage
 
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica MediavillaCloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
 
Desarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo QuilónDesarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo Quilón
 
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito -  Jon Torrado - Betabeers BilbaoLa línea recta hacia el éxito -  Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
 
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
 
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
 
Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)
 
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
 
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
 
Elemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de UsoElemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de Uso
 
Seguridad en tu startup
Seguridad en tu startupSeguridad en tu startup
Seguridad en tu startup
 
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
 
Buenas prácticas para la optimización web
Buenas prácticas para la optimización webBuenas prácticas para la optimización web
Buenas prácticas para la optimización web
 
La magia de Scrum
La magia de ScrumLa magia de Scrum
La magia de Scrum
 
Programador++ por @wottam
Programador++ por @wottamProgramador++ por @wottam
Programador++ por @wottam
 
RaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoTRaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoT
 
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
 
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
 

Entornos de desarrollo portables, reproducibles y ligeros

  • 2. @borjacampina Operaciones IT y Desarrollo de producto http://i2factory.com/ spin-off uhu/us
  • 3. ¿Qué opciones tenemos para preparar el entorno de desarrollo?
  • 5. “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
  • 6.
  • 7. Si además eres parte de un equipo...
  • 8. ...puede que haya incidencias debido a usar... Diferentes SSOO Diferentes versiones de apps/pkgs/deps Diferentes configuraciones
  • 10. mantienes máquina (host) limpia entornos de proyectos separados snapshots y portabilidad ventajas
  • 11. instalación manual (o casi: bitnami, seeding, unattended..) VM snapshots o exportaciones de VM ocupan BASTANTE inconvenientes
  • 13. entorno independiente de tu máquina puede tener mismas características que el entorno de producción ventajas
  • 14. 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
  • 15. Ventajas: mismo entorno para el equipo Inconvenientes: mismo entorno para el equipo Si además eres parte de un equipo...
  • 16. Pero no toques, ¿por qué tocas?
  • 18. Crear un entorno de forma manual es un pu** co**** tedioso
  • 19. las cosas no funcionan...
  • 20. la documentación a veces es Incompleta o incorrecta...
  • 21. y si además el entorno se estropea pasado un tiempo...
  • 22.
  • 23. 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
  • 24. CLI (ruby) que permite configurar y administrar herramientas de virtualización (por defecto virtualbox)
  • 25. 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
  • 26. 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
  • 28. 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”  
  • 29. 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
  • 30. vagrant box add precise32 http://files.vagrantup.com/precise32.box vagrant init precise32 (Vagrantfile) vagrant up vagrant destroy –f vagrant ssh
  • 31. 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
  • 33. ¿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     podrá  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