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)
608 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/ |
git@heroku.com: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
Es necesario revisar y aceptar las políticas de privacidad

Revisar política de publicidad