Heroku: Lo que debes saber al iniciar

Embed Size (px)

DESCRIPTION

Algunos puntos indispensables que tienes que saber de Heroku al iniciarte en el desarrollo de aplicaciones bajo esta modalidad.

Citation preview

  • 1. 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

2. Porque usar Heroku? Olvidate de usar servidores Enfocate en tu aplicacion Pagamos cuando este terminada (o nunca!) 3. 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 4. Arquitectura 5. 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 6. Slug Es la aplicacion compilada Maximo 100MB 7. 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 8. Que OS utiliza Heroku? Utiliza Debian y Ruby 1.8.X 9. 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) 10. 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 11. Rake en Heroku Se pueden ejecutar remotamente los comandos rake 12. Gems en Heroku Agregan al archivo .gems Se instalan al hacer un push 13. Modo de Mantenimiento Se usa cuando vamos a subir archivos, hacerle modificaciones a nuestra app, etc. 14. Que pasa cuando se satura nuestra app? Se agregan mas dynos! Se agregan mas workers! Le pagamos a HEROKU! :( 15. Frameworks Rails Sinatra Y mas... 16. Rails 3 en Heroku Actualmenta en modo Beta 17. Add-ons en Heroku Son como plugins para la app Amazon RDS (Relational Database Service) Cron (Unix Job Scheduler) New Relic (monitor de Web Performance) SSL (https para la app) Websolr (text search) etc. 18. Aplicaciones que corren en Heroku Best Buy (IdeaX) Shopify.com Scrumninja.com Flightcaster.com 19. 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 20. 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 21. 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 22. Fin 23. Receta (estar dentro del directorio donde esta la app) heroku create MiAplicacion heroku open --app MiAplicacion git init git remote add heroku [email protected]:MiAplicacion git remote add MiAplicacion [email protected]:MiAplicacion ------------------------------------------------------------ git add -A git commit -a -m "inicio de commit de MiAplicacion" git push [email protected]:MiAplicacion.git master ------------------------------------------------------------ heroku rake db:migrate --app MiAplicacion heroku db:push --app MiAplicacion heroku restart --app MiAplicacion heroku maintenance:on --app MiAplicacion heroku maintenance:off --app MiAplicacion