martes, 14 de abril de 2015

Heroku: Configuraciones y Logs


​ Seguimos con Heroku gracias a comentarios y dudas que recibí sobre dynos y configuración. Visita el post anterior por cualquier duda sobre instalación, creación de proyecto y conceptos bases sobre Heroku.


1 - Variables de entorno

Estas variables son las que tenemos en nuestro sistema virtual, en ellas solemos guardar las contraseñas de base de datos, claves de librerías como las generadas por aplicaciones de Twitter y Facebook. Podemos consultar, editar, agregar y eliminar de dos formas nuestras variables:
  • Por la interfaz web dentro de la aplicación en el menú Settings->Config Variables. La vista luce como la siguiente imagen:

  • A través de la consola:
    • heroku config: Para consultar la lista de variables.
    • heroku config:get NOMBRE_VARIABLE: Para ver el valor de la variable.
    • heroku config:set NOMBRE_VARIABLE=VALOR: Para crear y editar la variable.
​Para acceder a estos valores desde nuestra aplicación varia mucho con cada lenguaje, por eso aquí les dejo unos ejemplos:

Ahora bien tenemos la variable en Heroku, pero no en nuestra computadora. Para solucionar eso, lo que hacemos es simplemente ir a nuestro .bashrc y agregamos todos estos valores con un comando como este export NOMBRE_VARIABLE=VALOR.

Consulta la documentación oficial para más información.

2 - Dynos

Los dynos como vimos en el post anterior, son una instancia de una computadora que provee el ambiente requerido para correr nuestro proyecto. Existen 3 tipos de Dyno:
  • Web: Son todas las computadoras que estarán corriendo nuestro proyecto.
  • Worker: Son los que corren las tareas que asignemos a cada cierto tiempo, como por ejemplo mantenimiento, envío de reportes, respaldos, etc.
  • One-off: Es el que tenemos por defecto y nos permite acceder a través de la consola a una instancia de nuestro proyecto. El comando para lograr esto es: heroku run bash.
Podemos hacer cambios de la cantidad de dynos que necesitemos a través de la interfaz web (dentro de la ventana de recursos -> dynos -> edit) o por la consola con el comando heroku ps:scale. Por ejemplo heroku ps:scale web=5 worker=2​ asigna 5 dynos web y 2 workers. Ojo estos cambios ya requieren inversión de dinero.

Consulta la documentación oficial para más información.

3 - Log

Es la bitácora de eventos ocurridos durante la ejecución del proyecto. El comando para verlos es heroku logs, el cual tiene el siguiente formato de salida:

tiempo fuente[dyno]: mensaje
  • tiempo: Hora y fecha de la entrada.
  • fuente: Existen 2 tipos: app (son todas tus aplicaciones dyno) y heroku (todos los componentes del sistema que tengas en heroku).
  • dyno: Es el dyno que esta corriendo la acción.
  • mensaje: Especifica normalmente una descripción de lo que ha ocurrido.
​ Por defecto siempre veremos las últimas 100 líneas, pero podemos cambiarlo para pedir un poco más con el flag -n, por ejemplo el comando para ver las últimas 423 líneas del log sería heroku logs -n 423. Se puede solicitar hasta un máximo de 1500 líneas.

Consulta la documentación oficial para más información sobre logs.


También existe Papertrail como menciona Oliver Pérez, una ayuda extra sobre logs. Con Papertrail tenemos servicios como el envío de correos automáticamente al administrador a causa de errores, tendremos una interfaz web amigable para realizar búsquedas, administración por sistemas, entre otros.

Como siempre, si algo no queda muy claro siempre me pueden escribir a mi correo tonylattke@gmail.com o también pueden dejar comentarios al final de este post y trataré de ayudarles lo antes posible.

No hay comentarios:

Publicar un comentario