Heroku: despliega tu aplicación en la nube en 3 minutos

Quiero empezar el artículo de hoy mencionándote tres siglas: IaaS, PaaS, SaaS. ¿Te dicen algo?

La última de ellas la conocemos muy bien, forma parte de nuestra identidad como seguidores de SaasRadar. Se trata del modelo Software como Servicio, en el cual solo debes preocuparte por utilizar el software que se encuentra hospedado en servidores externos.

Pero, ¿identificas las siglas restantes?

La primera de ellas (IaaS) se trata de Infraestructura como Servicio, donde puedes contratar una infraestructura de hardware a un tercero mediante el pago de una cuota a modo de alquiler.

Pero hoy vamos a enfocarnos en PaaS, Plataforma como servicio en la nube. Específicamente estaremos analizando mi plataforma preferida, Heroku.

El objetivo es que, al terminar de leer, entiendas de qué va todo esto y hagas tu aplicación accesible para el mundo usando esta herramienta.

Si te seduce la idea, acompáñanos.

Empezamos por lo básico, ¿qué es PaaS?   

Como mencionaba anteriormente PaaS ofrece Plataformas como Servicio. ¿Esto qué significa?

Tendrás a tu disposición una plataforma donde solo deberás preocuparte por el código de tu aplicación. Toda la infraestructura, tanto de hardware como de software, necesaria para ejecutarla va de parte de la plataforma.

De este modo, cada vez que quieras actualizar tu aplicación solo debes indicar sus dependencias y la plataforma hace la magia por ti.

Como resultado del uso de este tipo de servicios tendrás una infraestructura escalable a medida que tu aplicación crezca y no tienes que preocuparte por actualizaciones de hardware o software.

Entonces, ¿cuál es el papel de Heroku en esta historia?

Heroku es una plataforma de servicios en la nube (PaaS) cuya popularidad ha venido en ascenso desde hace varios años por su versatilidad y facilidad de eso.

Uno de los beneficios que brinda esta plataforma es la compatibilidad con varios de los lenguajes más utilizado en la actualidad, donde destacan Java, Ruby, Python, PHP, Javascript con NodeJS, Go, entre otros.

De este modo, para integrar tu aplicación con Heroku solo debes indicar qué lenguaje vas a utilizar y las dependencias que necesitas, y la plataforma se encarga de configurarte el ambiente de trabajo automáticamente.

Este modelo permite centrarte solamente en el código fuente, y realizar cambios en el sistema en ejecución en cuestión de segundos.

¿Cómo funciona Heroku?

Heroku basa su funcionamiento en un concepto denominado Dynos, que son contenedores gestionados en tiempo de ejecución por el sistema operativo que permiten la ejecución del código de tu aplicación.

Estos contenedores permiten aislar los procesos entre sí y con otros elementos, de modo que pueden escalarse y agregar más instancias según sea necesario de acuerdo a la demanda.

Siguiendo esta filosofía pueden ponerse en funcionamiento varios dynos con la misma aplicación para aumentar la velocidad de las respuestas al cliente y la reposición ante caídas de servicio.

Cuando llega una nueva petición, la plataforma activa su enrutador, el cual distribuye la carga asignándolo a uno de los dynos disponibles.

Ventajas de la plataforma

  • Facilidad de uso.
  • Permite elegir entre varios lenguajes de programación.
  • Permite la extensión de sus funcionalidades a través de complementos.
  • Permite iniciar varias instancias de la aplicación mediante el uso de dynos para distribuir la carga y asegurar la disponibilidad.
  • Permite al programador enfocarse en el código de su aplicación al gestionar toda la infraestructura de hardware y software.
  • Cuenta con una opción gratuita funcional para aplicaciones sencillas.
  • Facilidad para escalar tu aplicación agregando o eliminando dynos de forma sencilla.
  • Orientado a desarrolladores.
  • Despliegues sencillos y rápidos.

Precio

Heroku tiene un plan gratuito limitado en el que te asignan 550 horas de procesamiento al mes, equivalente a 22 días con 1 dyno. Hago esta aclaración porque cada dyno consume este tiempo por separado.

Este plan gratuito está orientado a la prueba de proyectos personales y aplicaciones no comerciales, por lo que cuenta con opciones básicas pero funcionales.

Cuenta también con un plan denominado Hobby para pequeños proyectos con un precio de $7.00 al mes por cada dyno que desees contratar.

El plan Standard ya es una solución más robusta en cuanto a funcionalidades y tiene un precio de $25.00 a $50.00 por dyno en dependencia de las características de hardware que requieras.

Para aplicaciones de alto tráfico o que requieran baja latencia Heroku brinda el plan Performance con precios entre $250.00 y $500.00 por dyno al mes.

Si estos planes no cumplen aun tus necesidades Heroku ofrece el plan Private para aplicaciones con un mayor nivel de seguridad y aislamiento, y el plan Shield para aplicaciones que necesitan almacenamiento de datos confidenciales.

Para adquirir estos últimos planes debes contactar con su equipo a través de su web oficial, la cual te invito a visitar desde ya para que conozcas todos los detalles de las ofertas que he intentado resumir aquí.

¿Cómo puedo empezar con Heroku?

  1. Lo primero es registrarte en su web oficial, para lo que necesitas un correo electrónico.
  2. Desde la página de Heroku una vez que inicies la sesión puedes crear una nueva aplicación haciendo clic en New / Create new app.
new app Heroku: despliega tu aplicación en la nube en 3 minutos

3. Debes darle un nombre que no exista a la aplicación porque será parte de la URL de acceso.

Creación de una nueva aplicación en Heroku.

4. Si no tienes Git instalado debes descargarlo desde este enlace e instalarlo.

5. Descargar e instalar el CLI de Heroku para tu sistema operativo desde aquí.

6. Abrir un terminal del sistema operativo y poner el comando heroku login. Este comando te llevará a la web solicitando la confirmación de la operación.

Confirmación de login de Heroku en la web.

7. Volvemos al terminal y veremos los datos del usuario autenticado. Ya podemos comenzar a trabajar!!!

8. Creamos una carpeta para alojar el proyecto y vamos a esa ruta con el terminal mediante el comando cd.

9. Inicializamos un repositorio Git para el control de versiones de nuestra aplicación con el comando: git init.

10. Vinculamos nuestro directorio con la aplicación que recién acabamos de crear en Heroku con el comando: heroku git:remote -a saasradar. A partir de este paso ya podemos agregar o modificar los ficheros de nuestra aplicación para realizar los cambios.

11. Indicamos las dependencias de nuestra aplicación en un fichero nombrado requirements.txt, por ejemplo:

Pyrogram==1.0.7
tgcrypto==1.2.2
timedelta
APScheduler
asyncio

12. Creamos un fichero denominado app.json donde especificamos el nombre, la descripción de la aplicación y el lenguaje a utilizar, por ejemplo:

"name": "SaasRadar",
  "description": "SaasRadar App.",
  "buildpacks": [
    {
      "url": "https://github.com/heroku/heroku-buildpack-python.git"
    }
  ],
}

13. Agregar los ficheros del proyecto al repositorio de Git con el comando git add .

14. Marcar los cambios y agregarle un mensaje para en caso de tener que regresar a una versión anterior mediante el comando git commit -am «Mi primer commit de SaasRadar».

15. Subir los cambios a Heroku a través del comando: git push heroku master.

16. Asignar la cantidad de dynos que sean necesarios para iniciar el procesamiento de la aplicación con el comando: heroku ps:scale web=1, donde el 1 indica que se utilizará un único dyno.

De este modo abarcamos todo el proceso, desde la creación de la cuenta hasta la puesta en funcionamiento de una aplicación en la plataforma Heroku.

Si es la primera vez que ves este proceso puede que te asusten la cantidad de pasos, pero la gran mayoría se hacen una sola vez.

Una vez que tengas tu proyecto sincronizado con Heroku solo debes cumplir las indicaciones de los pasos del 13 al 16 actualizar y poner en funcionamiento el código de la aplicación.

Estos pasos que son los que habitualmente harás, como prometí al inicio, no demoran más de 3 minutos.

Si deseas detener la ejecución de tu aplicación puedes eliminar los dynos asignados mediante el comando heroku ps:scale web=0.

Es todo lo que tengo para hoy, espero que te sea útil la información que aquí te brindo y que empieces cuanto antes a probar Heroku de forma gratuita, y luego si ves que cumple con tus expectativas, adquieras entonces a un plan con todas las prestaciones que necesites.

Déjanos saber en los comentarios tu experiencia con Heroku. Si tienes cualquier duda, sin problema intento ayudar.

🔴 Mientras tanto puede que te interese nuestro artículo sobre la creación de un bot de Telegram desde cero cuyo resultado puedes integrarlo perfectamente con Heroku para ejecutarlo desde la plataforma.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.