Entornos de desarrollo portables, reproducibles y ligeros
Upcoming SlideShare
Loading in...5
×
 

Entornos de desarrollo portables, reproducibles y ligeros

on

  • 92 views

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 ...

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.

Statistics

Views

Total Views
92
Slideshare-icon Views on SlideShare
81
Embed Views
11

Actions

Likes
1
Downloads
0
Comments
0

1 Embed 11

http://betabeers.com 11

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Entornos de desarrollo portables, reproducibles y ligeros Entornos de desarrollo portables, reproducibles y ligeros Presentation Transcript

    • 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