PDF de programación - Openshift vs Heroku

<<>>
Imágen de pdf Openshift vs Heroku

Openshift vs Herokugráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 1 de Noviembre del 2017)
1.510 visualizaciones desde el 1 de Noviembre del 2017
1,6 MB
36 paginas
Plataformas Cloud: PaaS

VS

#devBurgos

Óscar Delgado
Carlos Pérez

Índice

● Quiénes somos
● Cloud Computing y PaaS

● Heroku
Intro
Terminología
DB
Precios





○ Workflow

● Openshift

Intro
Lenguajes, MW y FW
Terminología
Precios





○ Workflow
● Ejemplo con DB
● Trucos
● Usos - Problemas comunes
● Conclusiones
● Dudas y preguntas

Quiénes somos

Óscar Delgado

@ElOjcar

Carlos Pérez

@sabadow

Cloud Computing

Cloud Computing y PaaS

App Engine

Python, Java, PHP, Go

Azure

ASP.NET, PHP, Node.js, Python, Java

CloudBees

JVM: Java, Spring, JRuby, Grails, Scala, Groovy

Heroku

Ruby, Java, Node.js, Scala, Clojure, Python, PHP

OpenShift

Java, PHP, Node.js, Ruby, Python, Perl, Vert.x

Openshift


● Desde 2011
● Soporta:

○ Java, PHP, Node.js, Ruby, Python, Perl, Vert.x
○ MySQL, PostgreSQL, MongoDB, MS SQL Server

● La plataforma funciona sobre RHEL

Openshift

Lenguajes, Middleware y Frameworks “Out of the box” (I)

Openshift

Lenguajes, Middleware y Frameworks “Out of the box” (II)

Openshift

Lenguajes, Middleware y Frameworks “Out of the box” (III)

Openshift

Lenguajes, frameworks, middleware o cartuchos personalizados

Openshift

Terminología

● Cartridges (cartuchos): entornos de

ejecución que Openshift gestiona.

● Gears: contenedores donde se ejecutan los

más gears automáticamente (= escalar)

cartuchos.

○ Se puede configurar una aplicación para que use

3 tipos, según límite de RAM y disco.

Openshift

Tipos de planes

Openshift

Workflow

● Posibilidades

○ consola web + git
○ cliente rhc + git
○ JBoss Developer Studio (= Eclipse + conjunto plug-ins) (También IntelliJ)
○ Codenvy

● Pasos:

Instalar herramientas

1. Crear cuenta
2.
3. Preparar entorno
4. Crear aplicación
5. Hacer cambios y publicar

Openshift

Workflow
1. Crear cuenta

www.openshift.com →

Openshift

Workflow
2. Instalar herramientas

1. GIT, Ruby y rubygems

○ Según SO. En Mac OSX, git implica Ruby.

2. rhc

$ sudo gem install rhc
$ gem update rhc

Openshift

Workflow
3. Preparar entorno

$ rhc setup

Openshift

Workflow
4. Crear aplicación

$ rhc cartridge list

$ rhc app create holamundo jbossas-7

Openshift

Workflow
5. Hacer cambios y publicar

$ cd holamundo
$ vim src/main/webapp/index.html
(Realizamos un cambio y guardamos)
$ git commit -a -m "Primer cambio"
$ git push

Openshift

Workflow
(*) Otras opciones de rhc

Instrucciones y detalles de rhc

$ rhc

Ejemplo: logs desde el servidor

$ rhc tail -a holamundo

Heroku

● Desde 2007
● Propiedad de desde 2010
● Soporta:

○ Ruby, Java, Node.js, Python, PHP, Clojure, Scala
○ Postgresql

● La plataforma funciona sobre Ubuntu 10.04, con

Celadon Cedar como runtime stack.

● Más de 100 add-ons (gratuitos y de pago) para añadir

funcionalidad a las apps.

Heroku

Terminología

● App: conjunto de código fuente, frameworks

y dependencias que se desea ejecutar
○ El mecanismo dependencias varía dependiendo del

lenguaje.

● Dyno: contenedores que ejecutan un

comando o aplicación.

○ Se pueden configurar los tipos y cantidad de dynos

3 tipos, según límite de RAM y rendimiento CPU..

para cada aplicación.

● Procfile: fichero que define el comando a

ejecutar por el dyno.
○ Formato: <process type>: <command>
○ Solo el tipo web puede recibir tráfico HTTP.

Heroku

Persistencia

● En Heroku las BD usan PostgreSQL por defecto.

○ Al crearse algunos tipos de app también se crea una BD para ella.
○ Las BD están separadas de las apps.
○ Se accede con varibles de entorno: $DB_URL

● Se pueden añadir otros tipos de persistencia mediante Add-ons

○ MySQL, MongoDB, Memcache, SQLite, …

Heroku

Precios

● En Heroku los costes se calculan mensualmente (sin couta).
● Se paga por uso

○ Dynos por hora * precio dyno
○ Las BD tienen un coste mensual.
○ Los add-ons pueden tener un coste que es definido por el mismo.

● Existe una capa gratuita por app que incluye 750h del dyno 1X.

○ Podemos tener una app con un dyno ejecutandose todo el mes

(24h/dia * 31dias/mes = 744h/mes)

○ La DB Dev es gratuita (hasta 10K filas)
○ Los dynos 2X consumen el doble de tiempo (375h/mes), los PX 16

veces de tiempo (46h/mes).

Heroku
● Heroku toolbelt: herramientas de líneas de

comandos para gestionar heroku.
○ Heroku client
○ Git
○ Foreman

Workflow

● Pasos:

Instalar Heroku Toolbelt y configurar cuenta

1. Crear cuenta
2.
3. Crear repositorio git y añadir código
4. Crear aplicación heroku
5. Publicar cambios

Heroku

Workflow
1. Crear cuenta

www.heroku.com

Workflow
2. Herramientas y configuración

Heroku



● Instalar Heroku Toolbelt

https://toolbelt.heroku.com/

● Configurar heroku client:
$ heroku login

Heroku

Workflow
3. Crear repositorio Git y añadir código

$ git init
$ git add .
$ git commit -m “Initial commit”

Heroku

Workflow
4. Crear applicación Heroku

$ heroku create
Creating polar-chamber-3014... done, stack is cedar
http://polar-chamber-3014.herokuapp.com/ |
[email protected]:polar-chamber-3014.git
Git remote heroku added

Heroku

Workflow
5. Publicar cambios

$ git push heroku master
Initializing repository, done.
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.

$ heroku open
Opening polar-chamber-3014... done

Heroku

Workflow
Comandos útiles

Info básica de la app:

$ heroku info

Variables de entorno en la app:

$ heroku config

Ver log de la app:

$ heroku logs [--tail]

Ejemplo con DB

○ Aplicación típica tiene Servidor y BD en el mismo Gear

■ Es posible separar la BD a otro Gear → ganar rendimiento

○ Aplicación típica utiliza un Gear

■ Es posible asignar un nº mayor de Gears para el Cartridge del servidor (escalar)

Trucos

● Openshift:

○ Hot deploy

○ Backup-Restore

Jenkins

● Heroku:

scalar dynos


○ modo mantenimiento



rollbacks
foreman

Usos - Problemas comunes

Usos:






servidor web estático
servidor subida imágenes
servidor REST para app móvil
servidor para webapp

Problemas comunes:

Idle time


● No poder aplicar escalado en existente (Openshift)

Opinión de los ponentes

Dudas y preguntas

¡Gracias!

#DevBurgos

http://devburgos.wordpress.com/
  • Links de descarga
http://lwp-l.com/pdf7351

Comentarios de: Openshift vs Heroku (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad