openshift y postgresql

40
1 Desplegando aplicaciones con PostgreSQL en OpenShift Ricardo Arguello, RHCE Soporte Libre Cia. Ltda. Guayaquil, 4 de julio de 2015 PGDay Ecuador 2015

Category:

Technology


1 download

TRANSCRIPT

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]

3

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

5

El “Cloud” son solo computadores de otras personas!

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

12

origin

Public Cloud Service

Private Cloud Software

Open Source Project

Versiones deOpenShift

13

Cómo funciona?

14

Cómo funciona OpenShift

POWERED BY

OPENSHIFT

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

27

JBoss Developer Studio IDE Integration

28

El desarrollador escoge el lenguaje, framework y plataforma

29

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

31

Cómo usar OpenShift?

www.openshift.com

32

OpenShift desde línea de comando

Fedora:

$ sudo yum install rubygem-rhc

Linux:

$ gem install rhc

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

35

http://openshift.com/ebook

Libro gratuito de Introducción a OpenShift

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

40

Preguntas?

Ricardo [email protected]@ricardoarguello