Intro a Heroku

  • Upload
    bitfon

  • View
    20.637

  • Download
    0

Embed Size (px)

Citation preview

Heroku

Que es?Es un servicio de Hosting en la nube(los clientes no tienen que contar con infraestructura, el tiempo de procesamiento y almacenamiento se le renta a un tercero)

Gratuito(hasta 5 MB de espacio en disco para base de datos, 50MB para todos los archivos incluyendo repositorios Git)

Servicio basados en la nube de Amazon Web Services(ECS,S3, etc.)

La implementacion se hace a traves de Git

Se instala a traves de un gem

Porque usar Heroku?

Olvidate de usar servidores

Enfocate en tu aplicacion

Pagamos cuando este terminada (o nunca!)

Flujo basado en Git

Se usa para hacer la instalacion de la app a traves de los repositorios

Todo lo que tenemos que hacer es hacerle un push a nuestro codigo a nuestro repositorio en Heroku

Cuando se hace el Push se compila el slug de nuestra app

Arquitectura

Dynos en Heroku

Son servidores ligeros

Instancias individuales de Servidores Web(algo asi como un Mongrel) pero se pueden distribuir a varios servidores

4 Dynos equivalen a un CPU

1 dyno en el esquema gratuito

Slug

Es la aplicacion compilada

Maximo 100MB

Workers en Heroku

Es un framework para delayed jobs

Realizan las tareas en el background

1 trabajo a la vez del Queue

Hacen escalable a la app

0(cero) workers en el esquema gratuito

Que OS utiliza Heroku?

Utiliza Debian y Ruby 1.8.X

Base de Datos

Heroku puede trabajar con MySQL, SQLite, PostgreSQL, MongoDB, CouchDB y Memcache a traves de un tercero

Mongo HQ y Cloudant (como add-ons)

Interaccion con la BD

Utiliza los valores de database.yml

Podemos usar migraciones

Hacer un pull a la Base de Datos

Hacer push a la base de datos

Rake en Heroku

Se pueden ejecutar remotamente los comandos rake

Gems en Heroku

Agregan al archivo .gems

Se instalan al hacer un push

Modo de Mantenimiento

Se usa cuando vamos a subir archivos, hacerle modificaciones a nuestra app, etc.

Que pasa cuando se satura nuestra app?

Se agregan mas dynos!

Se agregan mas workers!

Le pagamos a HEROKU! :(

Frameworks

Rails

Sinatra

Y mas...

Rails 3 en Heroku

Actualmenta en modo Beta

Add-ons en Heroku

Son como plugins para la appAmazon RDS (Relational Database Service)

Cron (Unix Job Scheduler)

New Relic (monitor de Web Performance)

SSL (https para la app)

Websolr (text search)

etc.

Aplicaciones que corren en Heroku

Best Buy (IdeaX)

Shopify.com

Scrumninja.com

Flightcaster.com

No OK!

La primera peticion puede tardar un poco

No tiene acceso ssh

Sistema de archivos Read Only

Conjuntos predefinidos de OS y Version de Ruby

Para apps grandes el costo se eleva

OK!

Facil! para principiantes

Bajo costo para apps pequeas

Ofrece manejo sencillo de apps complejas diseandolas para el stack de Heroku

Gratis hasta 5MB de BD

Actualizacion de cambios a traves de Git casi instantaneos

Como empiezo?

Crear cuenta registrandose en Heroku.com

Tener Rails y Git instalados

Instalar el gem de Heroku (gem install heroku)

Crear las llaves SSH y agregarlas a Heroku

Crear la app en Heroku con: heroku create

Fin

Receta

(estar dentro del directorio donde esta la app)heroku create MiAplicacionheroku open --app MiAplicacion

git initgit remote add heroku [email protected]:MiAplicaciongit remote add MiAplicacion [email protected]:MiAplicacion------------------------------------------------------------git add -Agit commit -a -m "inicio de commit de MiAplicacion"git push [email protected]:MiAplicacion.git master------------------------------------------------------------heroku rake db:migrate --app MiAplicacionheroku db:push --app MiAplicacion

heroku restart --app MiAplicacion

heroku maintenance:on --app MiAplicacionheroku maintenance:off --app MiAplicacion

Muokkaa otsikon tekstimuotoa napsauttamalla

Muokkaa jsennyksen tekstimuotoa napsauttamallaToinen jsennystasoKolmas jsennystasoNeljs jsennystasoViides jsennystasoKuudes jsennystasoSeitsems jsennystasoKahdeksas jsennystasoYhdekss jsennystaso