Entornos de desarrollo portables, reproducibles y ligeros

659 views

Published on

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.

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
659
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
11
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Entornos de desarrollo portables, reproducibles y ligeros

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

×