Heroku

Shubham Dharamkar

Shubham Dharamkar

08 de Junio 2018

¿Qué es Heroku?

Heroku es una plataforma cloud como un servicio que se utiliza para la implementación de aplicación web y la aplicación API RESTful. Admite la implementación para múltiples lenguajes de programación. Es una plataforma gratuita como servidor (PaaS) lo cual es una buena opción para implementar y administrar aplicaciones pequeñas.

Sus componentes arquitectónicos

Dyno:

Toda su aplicación se ejecuta en el dyno. ¿Qué es dyno? Dynos es la colección de contenedor Linux, la cual es una parte central de su Cloud. Hay diferentes tipos de dynos.

Stacks:

Stacks no son más que el sistema operativo que los mantiene. Actualmente, proporciona tres stacks: Cedar-14 (Ubuntu 14.04), Heroku-16(Ubuntu 16.04) y Heroku-18(Ubuntu 18.04).

¿Por qué usarlo?

Ahorra mucho tiempo porque no necesita manejar servidores e infraestructuras. Todo lo que necesita hacer es insertar su aplicación en un repositorio de git y se ejecutará por usted. No tiene que configurar y administrar servidores, sistemas operativos, redes, firewalls, etc. Puede escalar su aplicación hacia arriba y abajo con solo mover la perilla o un control deslizante. ¿Cómo utilizarlo? Para comenzar : Siga los pasos a continuación para crear su aplicación. O siga la URL eligiendo el lenguaje de programación / frameworks que está usando. (https://devcenter.heroku.com/articles)

cmd> heroku login

  • En su directorio proyecto, cree su aplicacion.

cmd> heroku create YOUR_APP_NAME

(Nota – El nombre de aplicación es opcional. Si no proporcionó nombre de la aplicación, se creará uno para usted). Este comando agregará su URL de repositorio git.

  • Si ya tiene su aplicación y necesita crear una nueva aplicación en la existente. Este agregará una nueva URL de git para la aplicación.

cmd> heroku git:remote -a YOUR_APP_NAME

  • Para asegurarse de que el nombre remoto se haya configurado para su aplicación.

cmd> git remote -v

Implementacion:

Es muy fácil implementarlo ya que usa GIT (sistema de control de versiones) para implementaciones de aplicaciones.

cmd> git add

cmd> git commit -m “Initial commit”

cmd> git push origin master (If you have a git repository.)

cmd> git push heroku master

Detecta e instala automáticamente las dependencias recién agregadas. Para migrar y sembrar las tablas de su aplicación, necesita ejecutar el comando de forma explícita. Recuerde, la migración y los comandos de inicialización dependen de los marcos que ha estado utilizando para construir su aplicación. Por ejemplo en aplicación rails:

cmd> heroku run rake db:migrate

cmd> heroku run rake db:seed

Depuracion:

Proporciona registros que son una secuencia de eventos de aplicaciones en tiempo real.

cmd> heroku logs –tail

Además, puede visitar la URL para obtener más información sobre la eliminación de errores en ella. (https://devcenter.heroku.com/articles/logging)

Cosas adicionales:

  • Procfile:

Supongamos que tenemos algún tipo de comando y necesitamos ejecutarlo en el servidor para que su aplicación tenga un archivo específico llamado Procfile. Entonces, estos comandos deberían definirse en el archivo de proceso. Para saber más sobre la convención de nomenclatura y cómo se definen exactamente estos comandos en el archivo, visite esta URL (https://devcenter.heroku.com/articles/procfile).

  • Adds on:

Es el servicio en el Cloud que agrega características y servicios más útiles a su aplicación. (https://devcenter.heroku.com/articles/what-is-an-add-on)

Pocas cosas deben tener en cuenta al usarlo:

  • Tiene un estricto tiempo de espera de solicitud de 30 segundos que no es configurable. Cualquier solicitud que demore más de 30 segundos recibe un error de aplicación. Por lo tanto, si tiene alguna solicitud voluminosa, como cargar archivos/imágenes o enviar correos electrónicos, es mejor cambiar a trabajos/trabajadores en segundo plano. Aunque existen diferentes tipos de errores de aplicación, puede saberlo a partir de la siguiente URL: https://devcenter.heroku.com/articles/error-pages.
  • Su sistema de archivos es de solo lectura, por lo que no puede crear archivos en él. Bueno, hay múltiples formas de hacer esto.

1. Puede usar el servicio AWS s3 para almacenar el archivo y acceder a él desde el cloud.

2. Puede almancer el archivo en la base de datos.

3. También puede usar alguna tienda de documentos, como CouchDB o MongoDB.

  • Su cuenta gratuita tiene un límite de 10.000 filas en la base de datos. Este plan se puede actualizar de acuerdo con el tamaño y el requisito de las aplicaciones.
  • Su cuenta gratuita puede crear hasta 5 aplicaciones y 2 copias de seguridad de bases de datos por cada base de datos.
  • Como todos sabemos, se ejecuta en dynos. Un dyno gratuito tiene 550 horas de funcionamiento en un mes. Puede obtener 450 horas adicionales después de verificar su tarjeta de crédito. (https://devcenter.heroku.com/articles/free-dyno-hours)

Request a quote