¿Qué es Heroku en términos laicos?

Primero, no soy desarrollador. Así que probablemente cometeré un error en mi explicación y me disculpo si sueno condescendiente; ¡Realmente quiero que sea simple! Sin embargo…

TL; DR: Heroku es un servicio que le permite ejecutar un sitio web sin tener que saber nada sobre la ejecución de un servidor. Manejarán la configuración del servidor / base de datos de modo que primero pueda concentrarse en el código de su aplicación (aunque limitan algunas opciones en el camino). Por lo tanto, son una plataforma de aplicaciones en la nube (nos ocupamos del tiempo de actividad para usted) (usted la construye, la ejecutamos).

Respuesta completa:
Digamos que quieres construir un sitio web. Si desea algo donde las personas solo vean contenido estático, podría alojarlo básicamente en cualquier lugar porque las instrucciones para mostrar la página están contenidas dentro de la página misma (en HTML, CSS o Javascript). Sin embargo, quieres un sitio increíble, como Twitter. Donde las personas pueden iniciar sesión, publicar cosas y otras personas pueden ver esas publicaciones.

Esto significa que necesitas algo más. Necesitas tener un servidor y una base de datos. Un servidor es lo que responde a las preguntas que le hace un navegador; así que cuando vas a http://www.quora.com, es realmente tu computadora / navegador preguntando a un servidor “Ok, ¿qué debo mostrar?” El servidor responde con información, algo estática y algo dinámica. El contenido estático puede ser siempre el mismo; “Cuando alguien va a http://quora.com, siempre debes mostrar este favicon”. Esas instrucciones son simples y están en un archivo HTML que tiene el servidor. Sin embargo, el servidor también puede tener instrucciones como “Si la persona que visita la página ha visitado e iniciado sesión antes, muestre su nombre”. Esto requiere que el servidor haga algo ahora (cuando el servidor necesita hacer algo más que devolver datos estáticos, tiene una aplicación).

Sin embargo, el servidor no está diseñado para recordar cosas; Está diseñado para responder preguntas. Entonces habla con la base de datos, que está diseñada para recordar cosas, y le pedirá información específica. Como “Alguien está pidiendo una página. Tenía esta cookie. ¿Quién es?” La base de datos devolverá información al servidor y el servidor a usted / su computadora / su navegador.

Ahora, ¿qué tiene esto que ver con Heroku? Bueno, Heroku está diseñado para ayudar a los desarrolladores a hacer que ese proceso funcione sin tener que configurar servidores o bases de datos (algo que puede ser un fastidio). Heroku dice “Si haces ciertas cosas, configuraremos automáticamente la configuración para que tu aplicación se ejecute en un servidor y configuraremos el servidor para que se conecte automáticamente a una base de datos. Solo necesitamos las instrucciones para lo que queremos el servidor y la base de datos y nosotros nos encargamos del resto “. Básicamente, exigen algunos límites o estructura (por ejemplo, solo puede usar una base de datos si usa Ruby on Rails) pero hace que sea extremadamente fácil comenzar.

Fuente: Recibí una aplicación Ruby on Rails en ejecución en Heroku en aproximadamente una semana de “No sé nada” (que en serio te hace sentir que cambiaste a “Básicamente controlo Internet”).