Un vistazo al funcionamiento interno de Heroku
Objetivos de aprendizaje
Después de completar esta unidad, podrá:
- Explicar lo que es un dyno.
- Distinguir entre lenguajes, paquetes de compilación y slugs.
- Describir cómo son útiles los complementos y nombrar uno que puede aprovisionar desde Heroku Elements Marketplace.
- Identificar un comando de la CLI de Heroku.
Funcionamiento interno de Heroku
Hasta ahora tratamos Heroku a un alto nivel: lo que es y cuándo podría utilizarlo. También aprendió sobre diferentes métodos de implementación. Pero ¿qué es exactamente Heroku? ¿Cuál es su funcionamiento interno? Veamos.
Dynos
El código de su aplicación se ejecuta en la plataforma Heroku dentro de estructuras que nosotros llamamos dynos. Los dynos de Heroku son sencillamente contenedores gestionados en tiempo de ejecución con un sistema operativo Linux subyacente. Estos contenedores ejecutan los procesos que permiten que se ejecute el código de su aplicación personalizada.
¿¿Contenedores en tiempo de ejecución??
¡No se intimide por la terminología! La contenerización es solo un mecanismo para mantener los procesos en ejecución aislados entre sí. Piense en ello de este modo: Los contenedores evitan que la mermelada de fresa se mezcle con la mostaza en su refrigerador, de modo que su tostada de desayuno siempre sepa bien. Los contenedores en tiempo de ejecución son la misma cosa, con la excepción de que evitan que su código y configuración toquen otros elementos. De esa forma su aplicación siempre se comporta como debe.
Los contenedores también proporcionan separación entre uno o más dynos que ejecutan instancias idénticas de su aplicación, aceptando solicitudes de clientes y sirviendo respuestas. Aunque una solicitud podría venir servida por Dyno A y otra por Dyno B, sus usuarios no notarían la diferencia. Todo lo que ven es que su aplicación les está dando respuestas rápidas. Cuando amplía su aplicación para que ejecute varios dynos (incluso docenas o cientos), tendrá una tranquilidad adicional. Si algo falla en el código de su aplicación en un dyno, el resto puede seguir sirviendo a sus clientes.
Slugs y paquetes de compilación
Las slugs son copias comprimidas y preempaquetadas de su aplicación optimizadas para la distribución al gerente de dynos. Cuando distribuye código a Heroku, su código lo recibe el compilador de slugs, que lo transforma en una slug. En el corazón del compilador de slugs hay una recopilación de secuencias de comandos denominadas paquete de compilación que maneja varios lenguajes. Todas las aplicaciones redactadas en Ruby, Python, Java, Clojure, Node.js, Scala, Go y PHP se implementan y compilan empleando paquetes de compilación. Amplía una aplicación para luego descargar y ampliar la slug en un dyno para su ejecución.
Se pueden utilizar paquetes de compilación personalizados para dar cobertura a lenguajes o marcos de trabajo que no estén cubiertos por los paquetes de compilación cubiertos oficialmente por Heroku.
Control de tráfico de aplicaciones: El enrutador de Heroku
El enrutador de Heroku es la clave de toda esta magia de dynos múltiples. Siempre que se inicia un nuevo dyno web, se registra a sí mismo en el enrutador, permitiéndole saber en qué aplicación se está ejecutando el dyno. Después de registrar un dyno, el enrutador de Heroku empieza a distribuir las solicitudes entrantes por todos los dynos disponibles para una aplicación: la "formación de dynos" de la aplicación, que es lo que llamamos el tamaño y número de dynos que ejecutan su aplicación (por ejemplo, una formación de siete dynos Desempeño-L).
¿Le parece el enrutador de Heroku tan fascinante como a nosotros? Para leer más sobre su funcionamiento y lo que puede esperar de él, consulte la documentación del Centro de desarrollo de Heroku sobre enrutamiento.
Complementos
Los complementos son otra parte esencial de la plataforma Heroku. Estos elementos le ofrecen la capacidad de incorporar funciones complejas a su aplicación sin tener que gestionar el software o la infraestructura subyacentes.
Un excelente ejemplo de un complemento útil es la base de datos Postgres de Heroku. Postgres es una base de datos de clase empresarial que es rápida, fiable y tiene gran cantidad de funciones. Lo mejor de todo es que cuando aprovisiona una base de datos Postgres como un complemento, la infraestructura subyacente queda completamente gestionada por Heroku.
Además de varios complementos gestionados por Heroku, otros fabricantes ofrecen docenas de complementos: almacenes de datos, servidores de email, herramientas de monitoreo y casi cualquier cosa que se pueda imaginar. Los desarrolladores pueden incorporar funciones de back-end, como la capacidad de enviar email o sms, con solo un clic. Muchos tienen opciones gratuitas que puede probar y utilizar durante el tiempo que quiera.
Consulte la página de complementos de Heroku Elements Marketplace para explorar todos los complementos que puede incorporar a sus aplicaciones de Heroku Enterprise.