Session 1: Virtual Machines y la Nube
GCP Essentials
Victor Aguilar
http://xiberty.com
victor@xiberty.com


Victor Aguilar C
victor@xiberty.com
Soy desarrollador fullstack y fundador de xiberty en donde construimos aplicaciones web, móviles (android e ios) y chatbots.

¿Que son las Maquinas Virtuales?
Una máquina virtual es un software que emula un ordenador justo como si fuese uno real.
Básicamente es un ordenador dentro de otro ordenador

alias: MV ó VM


Las Maquinas Virtuales

Se verían así:

Host
Hipervisor (Tipo 1 y 2)
VMs (Virtual Machines)

https://xib.li/gcloud-tour
Google Cloud DataCenter
En perspectiva

Nos enfocaremos en las VMs


¿Como crear Maquinas Virtuales?
- Crear VMs de forma local
- Puedes alquilar VMs en internet


Maquinas Virtuales
de forma Local







Vagrantfile


# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/xenial64"
config.vm.hostname = "GCPSession1"
config.vm.box_check_update = true
config.vm.network "private_network", ip: "192.168.33.190"
config.vm.synced_folder "./", "/code", disabled: false
config.vm.provider "virtualbox" do |vb|
vb.gui = false
vb.memory = "1024"
vb.name = "GCPSession1"
end
end

Ejemplo
VMs en internet
Hay muchos mas...





mediante proveedores




MEJOR
EXPLÍCAME CON CHUBIS
Preguntas comunes
- ¿Como lo despliego en Internet?
- ¿Que necesito?
- ¿Que me conviene?


Para desplegar un proyecto en internet
- Hosting Compartido (si se puede)
- Servidor Dedicado (propio / alquilado)
- PAAS (Plataformas como Servicio)
- SAAS (Software como Servicio)
- IAAS (Infraestructura como servicio - VPS)
Existen muchas opciones


Servidor Dedicado
- Necesitas un IP Público
- Computadora con buena conectividad.
- Configurar todo (básicamente tener mucho tiempo libre y mucha plata)

Hosting compartido
- Casi no necesitas conocimientos
- Levantas una piedra, encuentras proveedor
- Viene con un webadmin (cpanel por lo general)
- Puedes subir tus proyectos por FTP y a veces por SSH
- No tienes control
- Es el más barato en todo aspecto



PAAS
- Generalmente es una solución todo en uno
- Basta con tener su CLI instalado
- Tiene una serie de componentes para potenciar el proyecto o un catalogo de servicios
- Pagas por uso

IAAS (VPS)
- Es una maquina virtual privada en internet
- De un tiempo hasta ahora son accesibles
- Es uno de los pilares de "La Nube"
- Tienes el control total
- Es Flexible y en cierto modo escalable
- Pagas según el plan
Pensemos en un edificio

Hosting Compartido
VPS
Servidor Dedicado
Para entenderlo mejor


Proveedores
...




CLOUD

TRADICIONAL
...



Proveedores
CLOUD
TRADICIONAL
Precio Fijo
Mensual
Servicios
Basicos
Recursos
Fijos
Precio Según uso
Todo tipo de Servicios
Recursos a demanda









¿Que es la nube?
Es una red global de servidores conectados para funcionar como un único ecosistema



Practiquemos un poco
Para ver las diferencias
1. Montar un sitio web Angular en Digital Ocean (Proveedor tradicional)
Prácticas
2. Montar un Wordpress en Google Cloud (Proveedor Cloud)






Terminal
Herramientas



Cliente SSH



VPS
Dominio
Sitio Web


Enlaces
1. Git Bash >> https://git-scm.com/download/win
2. SSH >> https://www.ssh.com/ssh/download/
3. Namecheap >> http://namecheap.com/
3. Angular Admin >> https://github.com/akveo/ngx-admin
Desplegar un sitio Angular
en:

https://akveo.github.io/nebular/docs/


Desplegando un sitio Angular

1. Crear el Droplet en Digital Ocean
2. Registrar y dirigir el dominio de la app al droplet
3. Instalar el proyecto en el Droplet
4. Configurar el Servidor Web para la app.


# git clone https://github.com/akveo/ngx-admin.git .
# cd /var/www/angular.xiberty.com
# apt install build-essential curl nginx git -y
# npm install && npm run build:prod
Comandos en el server
INSTALAR EL PROYECTO
# curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
# apt install nodejs -y && mkdir -p /var/www/angular.xiberty.com
1.
2.
3.
4.
5.
6.

# wget https://xib.li/angular-config --no-check-certificate
# mv angular-config angular.xiberty.com
# ln -s /etc/nginx/sites-available/angular.xiberty.com /etc/nginx/sites-enabled/
# cd /etc/nginx/sites-available/
Comandos en el server
CONFIGURAR EL SERVIDOR WEB
# service nginx restart
# nano angular.xiberty.com # Editar
7.
8.
9.
10.
11.
12.






Google Compute Engine

Regiones
Google Cloud Console

Google Cloud Shell


gcloud

https://cloud.google.com/sdk/

PORFIS PROBEMOS QUICKLABS
https://google.qwiklabs.com/quests/23

GCP Essentials
1. Creating a Virtual Machine
2. Getting Started with Cloud Shell & gcloud
3. Provision Services with Cloud Launcher
Lab. Desplegar un sitio Wordpress
en:

Text


Desplegando un sitio Wordpress
1. Crear la instancia en Google Cloud
2. Abrir Google Cloud Shell
3. Configurar un Dominio para el Sitio
4. Instalar un Servidor Web y crear la configuración de wordpress.

Google Cloud Launcher

Es un catalogo de aplicaciones y servicios que se lanzan a un solo click
Lab: Desplegar un blog Ghost en
Google Cloud
Via Cloud Launcher

Enlaces de Interés



¿Preguntas?
victor@xiberty.com
VMs, Droplets, Instancias y otras Hierbas
By Victor Aguilar
VMs, Droplets, Instancias y otras Hierbas
Un breve repaso a las maquinas virtuales su uso y funcionamiento
- 480