Virtualización para Desarrolladores

Preview:

Citation preview

Virtualización para desarrolladores

Sergio Fabián Vier

● Licenciado en Sistemas de Información - UNaM

● Miembro de la comunidad Misiones Software Libre

● +7 manejando GNU/Linux

● +5 desarrollador activo

● +4 experiencia en frameworks php

● +1 experiencia en virtualización y servidores

Fuente: http://www.vmware.com/virtualization/

Virtualización

Ventajas➔ Máximo aprovechamiento de los recursos.

➔ Recuperacion ante problemas.

➔ Mas uptime, menos downtime.

➔ Balanceo de carga y responsabilidades.

➔ Mas flexibilidad y automatización.

➔ Gestion de la configuración es posible (puppets, cheff, etc.)

Virtualización

Virtualization is here to stay. It doesn’t matter if you are an IT Professional for a multinational company, or running a small business, chances are, virtualization is making an impact on how you work.

From "View from the TreeTop" Volume 2 Issue 7 July 2008

Virtualización

¿Y para un desarrollador que significa?

✔ Entorno desarrollo equivalente a producción.

✔ Disponibilidad de librerías y versiones específicas a una plataforma.

✔ Dar soporte a múltiples plataformas.

✔ Automatizar configuración y despliegue de aplicaciones.

✔ Automatizar y mejorar el testing.

Flujo de Trabajo

Requisitos para un desarrollador web:

➔ Necesario: funcionar con hardware PC escritorio.

➔ Deseable: consumo controlado de recursos.

Actividades para un desarrollador web:

➔ Editar código fuente (php, js, css, html).

➔ Mantener estructura de datos (archivo, SQL, noSQL).

➔ Realizar pruebas de forma constante.

Flujo de Trabajo

Modificar, probar, revertir, modificar, probar …

LXC

Linux Container (LXC) es un método de virtualización de Sistema Operativo (OS), capaz de correr múltiples sistemas Linux aislados (containers) en un único host. LXC no es una máquina virtual, pero provee un entorno virtual con sus propios procesos y espacio de red.

LXC se creó utilizando un mecanismo Linux existente: administración de procesos, sumando una capa de aislamiento o container.

LXC

Características:

● Adminitración sencilla, es Linux.

● Consumo reducido de recursos.

● Librerías compartidas entre containers.

LXC vs otras tecnologías

✔ Similar a containers de Solaris

✗ Solo containers con kernel Linux

LXC

Fuente: http://www.slideshare.net/adorepump/virtualization-for-development-presentation

Virtualización FULL Virtualización OS

LXC

Comandos disponibles:

$ lxc create -n CONTAINER -t TEMPLATE

$ lxc OPCION CONTAINER

Donde CONTAINER es el nombre que le asignamos.

Donde TEMPLATE es:

➔ debian, ubuntu, arch, fedora, opensuse, centos, sshd, etc.

Donde OPCION es:

➔ start, stop, restart, list, info, kill, freeze, backup, restore, clone, unfreeze, destroy, wait, monitor, netstat, console, version, execute, ls, ps, etc.

LXC

Demostración

Ayuda y Documentación

Debian & LXC

● http://debian-handbook.info/browse/es-ES/stable/

● http://debian-handbook.info/browse/wheezy/sect.virtualization.html

● http://blog.phenobarbital.info/2013/08/lxc-linux-containers-en-debian-wheezy/

Entorno de Administración para LXC

● http://libvirt.org/

● http://virt-manager.org/

El futuro, automatización de deployments con LXC!

● http://www.docker.io

Gracias!

@sergiovier

http://www.slideshare.net/sergiovier/