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