2. 2
Quién soy?
- Fundador de Soporte Libre Cia. Ltda.
- Desarrollador / Sysadmin
- Colaborador del Proyecto Fedora
- Ex-colaborador de JBoss.org
- Instructor de Red Hat para la región
- Twitter: @ricardoarguello
- Mail: ricardo.arguello@soportelibre.com
4. 4
Que es el Cloud?
Modelo para habilitar un acceso conveniente, bajo
demanda, a un conjunto de recursos de computación
compartidos a los que se puede acceder rápidamente.
Características:
- Auto-servicio
- Permite compartir recursos
- Elástico
- Puede medirse el servicio
6. 6
Modelos de Servicio en Cloud
IaaS: Infrastructure-as-a-Service
– Servidores virtuales disponibles bajo demanda
– Elástico
– Autoservicio
PaaS: Platform-as-a-Service
– Plataformas de despliegue
– Servidores de aplicaciones + base de datos
SaaS: Software-as-a-Service
– Aplicación bajo demanda: Gmail, Salesforce,
Google Docs, etc
7. 7
Modelos de Servicio en Cloud
Almacenamiento
(RHS)
Hardware
(x86)
Virtualización
(RHEV)
Sistema Operativo
(Linux)
Plataforma de aplicaciones
(JBoss, PHP, Ruby, etc)
Aplicación
Automatizado y manejado
por un Cloud Público o
Privado
Manejado y controlado por
el cliente (IT, Desarrollo, un
usuario)
IaaS PaaS SaaS
Mayor Control
Mayor Automatización
8. 8
PaaS = Platform as a Service
Una Plataforma de Aplicaciones en la Nube
Code Deploy Run
Ahorre tiempo y dinero
Desarrolle su
aplicación
Despliegue
con un
botón y la
app está
corriendo en
la nube!
9. 9
Desarrollo de aplicaciones con PaaS
PaaS
Cómo hacer una app:
1. Tener una idea
2. Obtener presupuesto
3. Programar
4. Probar
5. Lanzar
6. Escalar automáticamente
Cómo hacer una aplicación
1. Tener una idea
2. Obtener presupuesto
3. Solicitar creación de VM
4. Esperar
5. Desplegar servidor de
aplicaciones
6. Desplegar herramientas de
test
7. Programar
8. Probar
9. Configurar VMs de producción
10. Desplegar en producción
11. Lanzamiento
12. Solicitar más Vms de Prod
para satisfacer la demanda
13. Esperar
14. Desplegar la aplicación en las
nuevas VMs
Virtualizado
Cómo hacer una aplicación
1. Tener una idea
2. Obterner presupuesto
3. Solicitar adquisición de hardware
4. Esperar
5. Obtener el hardware
6. Instalar hardware
7. Instalar Sistema Operativo
8. Instalar parches de sistema
operativo
9. Crear cuentas de usuarios
10. Desplegar servidor de aplicaciones
11. Desplegar herramientas de test
12. Programar
13. Probar
14. Configurar servidores de producción
(y comprarlos si se necesitan)
15. Desplegar en producción
16. Lanzamiento
17. Ordenar más servidores para
satisfacer la demanda
18. Esperar…
19. Desplegar los nuevos servidores
Físico
10. 10
OpenShift
es un
PaaS Open Source
Multi-lenguaje,
Auto-escalable,
Auto-servicio,
Elastico,
Cloud Application Platform
15. 15
OpenShift es un PaaS sobre
una... Infraestructura
Amazon / OpenStack (IaaS) / RHEV (Virt) / Servidores Físicos
16. 16
La base de OpenShift es Linux
Linux Linux Linux
OpenShift esta formado por
instancias de Linux
Linux
Amazon / OpenStack (IaaS) / RHEV (Virt) / Servidores Físicos
17. 17
Un Broker OpenShift maneja
múltiples Nodes OpenShift
Nodes: donde las aplicaciones residen.
Brokers: mantienen a OpenShift corriendo.
Brokers Node Node Node
Linux Linux LinuxLinux
Amazon / OpenStack (IaaS) / RHEV (Virt) / Servidores Físicos
18. 18
SELinux permite Securidad y
multiples clientes
Linux Linux
SELinux divide en forma segura cada
instancia de un Node
Broker Node Node Node
Linux
Amazon / OpenStack (IaaS) / RHEV (Virt) / Servidores Físicos
19. 19
Las aplicaciones de usuario en
OpenShift corren en Gears
Linux Linux
Un Gear representa un contenedor
seguro en Linux
Broker Node Node Node
Linux
Amazon / OpenStack (IaaS) / RHEV (Virt) / Servidores Físicos
20. 20
Flujo de trabajo
de desarrollador
Linux Linux
Un desarrollador crea
una nueva aplicación
OpenShift crea un Gear
Web Console
Eclipse IDE
Cmd Line
Broker Node Node Node
Linux
OpenShift
Gear
Amazon / OpenStack (IaaS) / RHEV (Virt) / Servidores Físicos
21. 21
OpenShift automatiza la
configuración de un Gear
mediante Cartuchos
Linux Linux
Cartridges: Es como
OpenShift instala
lenguajes y servidores
Web Console
Eclipse IDE
Cmd Line
Broker Node Node Node
Linux
Amazon / OpenStack (IaaS) / RHEV (Virt) / Servidores Físicos
JBoss PostgreSQL
22. 22
OpenShift tiene algunos
Cartridges incluídos
Se pueden añadir más...
CustomEtc.
Etc.
Ruby
Python
PHP
Java
Postgres
MySQL
OpenShift Default
Cartridges
Amazon / OpenStack (IaaS) / RHEV (Virt) / Servidores Físicos
23. 23
Code and Push
Linux Linux
El desarrollador
empuja (push) sus
cambios mediante Git
Git Protocol / ssh
Broker Node Node Node
Linux
Push
Amazon / OpenStack (IaaS) / RHEV (Virt) / Servidores Físicos
JBoss
Code
Git
Repo PostgreSQL
24. 24
OpenShift automatiza:
compila, prueba,
publica
Linux Linux
Broker Node Node Node
Linux
Amazon / OpenStack (IaaS) / RHEV (Virt) / Servidores Físicos
Jenkins
(CI)
Maven
(Builds) Apache
(HTTP)
Code
JBoss
Git
Repo
PostgreSQL
25. 25
OpenShift automatiza
el escalamiento de
la aplicación
Broker Node Node Node
Linux
HA-Proxy Java
Cod
e
Java
Cod
e
Java
Code
Amazon / OpenStack (IaaS) / RHEV (Virt) / Servidores Físicos
PostgreSQL
26. 26
Los desarrolladores pueden escoger
cómo trabajar con OpenShift
Integración con IDE
Web Browser
Console
Command Line
Tooling
REST APIs
32. 32
OpenShift desde línea de comando
Fedora:
$ sudo yum install rubygem-rhc
Linux:
$ gem install rhc
33. 33
OpenShift desde línea de comando
Configuración inicial:
$ rhc setup
Login to openshift.redhat.com: user@example.com
Password: password
No SSH keys were found. We will generate a pair of keys for you.
Created: /home/user/.ssh/id_rsa.pub
34. 34
OpenShift desde línea de comando
Crear una aplicación:
$ rhc app create myfirstphpapp php-5.4
Desarrollo:
Obtener su código fuente con Git
Hacer cambios
Hacer git commit y push
36. 36
PostgreSQL en OpenShift
Están soportadas las versions 8.4 y 9.2 (por ahora)
El puerto 5432 no está expuesto, se utiliza localmente.
Port forwarding: locahost:5432 → openshift:5432
Ej:
$ rhc app create MyApp python-3.3
$ rhc cartridge add postgresql-9.2 -a MyApp
37. 37
PostgreSQL en OpenShift
Variables de entorno:
OPENSHIFT_POSTGRESQL_DB_HOST
OPENSHIFT_POSTGRESQL_DB_PORT
OPENSHIFT_POSTGRESQL_DB_USERNAME
OPENSHIFT_POSTGRESQL_DB_PASSWORD
38. 38
Conclusiones
- Se puede utilizar OpenShift para desplegar
aplicaciones y bases de datos en forma gratuita
- Ideal para aprender a desarrollar sin necesidad de
tener una plataforma
- Se puede desplagar esta plataforma de manera
interna (nube privada)
- Todo lo mostrado es Open Source