1
Desplegando aplicaciones con PostgreSQL en OpenShift
Ricardo Arguello, RHCESoporte Libre Cia. Ltda.
Guayaquil, 4 de julio de 2015PGDay Ecuador 2015
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: [email protected]
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
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
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
PaaS = Platform as a Service
Una Plataforma de Aplicaciones en la Nube
Code Deploy Run
Ahorre tiempo y dineroDesarrolle su
aplicación
Despliegue con un
botón y la app está
corriendo en la nube!
9
Desarrollo de aplicaciones con PaaS
PaaS
Cómo hacer una app:1. Tener una idea2. Obtener presupuesto3. Programar4. Probar5. Lanzar6. Escalar automáticamente
Cómo hacer una aplicación1. Tener una idea2. Obtener presupuesto3. Solicitar creación de VM4. Esperar5. Desplegar servidor de
aplicaciones6. Desplegar herramientas de
test7. Programar8. Probar9. Configurar VMs de producción10. Desplegar en producción11. Lanzamiento12. Solicitar más Vms de Prod
para satisfacer la demanda13. Esperar14. Desplegar la aplicación en las
nuevas VMs
Virtualizado
Cómo hacer una aplicación1. Tener una idea2. Obterner presupuesto3. Solicitar adquisición de hardware4. Esperar5. Obtener el hardware6. Instalar hardware7. Instalar Sistema Operativo8. Instalar parches de sistema
operativo9. Crear cuentas de usuarios10. Desplegar servidor de aplicaciones11. Desplegar herramientas de test12. Programar13. Probar14. Configurar servidores de producción
(y comprarlos si se necesitan)15. Desplegar en producción16. Lanzamiento17. Ordenar más servidores para
satisfacer la demanda18. Esperar…19. Desplegar los nuevos servidores
Físico
10
OpenShift es un
PaaS Open Source
Multi-lenguaje,Auto-escalable,Auto-servicio,
Elastico,Cloud Application Platform
11
Cómo utilizar OpenShift?
ALMACENAMIENTO(RHS)
HARDWARE(x86)
VIRTUALIZACIÓN(RHEV)
SISTEMA OPERATIVO(Linux)
PLATAFORMA APP(JBoss, PHP, Ruby, etc)
APLICACION
Public Cloud Private Cloud
Desarro-llador
controla
Desarro-llador controla
Operado por
Openshift
IT provee
OpenShift automatiza, IT controla
15
OpenShift es un PaaS sobre una... Infraestructura
Amazon / OpenStack (IaaS) / RHEV (Virt) / Servidores Físicos
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
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
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
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
Flujo de trabajode desarrollador
Linux Linux
Un desarrollador crea una nueva aplicación OpenShift crea un Gear
Web ConsoleEclipse IDECmd Line
Broker Node Node Node
Linux
OpenShiftGear
Amazon / OpenStack (IaaS) / RHEV (Virt) / Servidores Físicos
21
OpenShift automatiza laconfiguración de un Gearmediante Cartuchos
Linux Linux
Cartridges: Es como OpenShift instala lenguajes y servidores
Web ConsoleEclipse IDECmd Line
Broker Node Node Node
Linux
Amazon / OpenStack (IaaS) / RHEV (Virt) / Servidores Físicos
JBoss PostgreSQL
22
OpenShift tiene algunosCartridges incluídos
Se pueden añadir más...
CustomEtc.
Etc.
Ruby
Python
PHP
Java
Postgres
MySQL
OpenShift DefaultCartridges
Amazon / OpenStack (IaaS) / RHEV (Virt) / Servidores Físicos
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
GitRepo PostgreSQL
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)
CodeJBoss
GitRepo
PostgreSQL
25
OpenShift automatizael escalamiento dela aplicación
Broker Node Node Node
Linux
HA-Proxy Java
Code
Java
Code
Java
Code
Amazon / OpenStack (IaaS) / RHEV (Virt) / Servidores Físicos
PostgreSQL
26
Los desarrolladores pueden escoger cómo trabajar con OpenShift
Integración con IDE
Web BrowserConsole
Command LineTooling
REST APIs
30
OpenShift Origin
Apache 2.0 License•Disponible como:
• Source, RPMs• .ISO, LiveCD
•IRC, email, forums
Versión Open Source para despliegue en Nube Privada:
https://github.com/openshift
33
OpenShift desde línea de comando
Configuración inicial:
$ rhc setup
Login to openshift.redhat.com: [email protected]
Password: password
No SSH keys were found. We will generate a pair of keys for you.
Created: /home/user/.ssh/id_rsa.pub
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
PostgreSQL en OpenShiftEstá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
PostgreSQL en OpenShift
Variables de entorno:
OPENSHIFT_POSTGRESQL_DB_HOST
OPENSHIFT_POSTGRESQL_DB_PORT
OPENSHIFT_POSTGRESQL_DB_USERNAME
OPENSHIFT_POSTGRESQL_DB_PASSWORD
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
39
OpenShift v3
Lanzado recientemente, utiliza Docker y Kubernetes y Project Atomic.
Open Source: www.openshift.org
Top Related