Publica Un Servidor De GraphQL A Heroku De Manera Gratuita

Alejandro Roman
InstructorAlejandro Roman

Social Share Links

Tweet

Aprende como publicar un servidor de GraphQL a Heroku de manera gratuita. Heroku es una solución de plataforma como servicio (PaaS) a base de contenedores. Heroku es completamente auto-manejado y te permite publicar, manejar, y crecer tu aplicación de una manera muy fácil.

Este método también se puede utilizar con express o cualquier solución para la cual Heroku ofrece soporte. Otros lenguajes compatibles con Heroku incluyen: Ruby, Java, PHP, Python, Go, Scala, y Clojure.

Alejandro Roman: [0:00] Para este ejercicio, requerimos tener una cuenta en Heroku. Pueden crearla de gratis. Una vez en Heroku, vamos a darle clic a Create app y crearemos una app nueva. Pueden poner el nombre que ustedes quiera aquí, pero yo voy a hacer demo-graphql-servidor y voy a darle Create app.

[0:18] Nos encontramos ahora en la página principal de nuestro app en el cual podemos hacer muchas cosas como agregar una base de dato de Postgres en forma de paquete añadido o add-on. Como pueden ver, Heroku ofrece muchos paquetes, pero también te ofrece paquetes gratis que [inaudible] puedes experimentar.

[0:36] En el panel principal, también podemos observar los Dynos, podemos observar los recursos, la página de publicación donde tenemos las instrucciones de como publicar a medio de la terminal, los ajustes, aquí las variables secretas, otros ajustes como los certificados de SSL, nuestro dominio, hasta Delete el app.

[0:57] Regresemos un segundito a la página de publicación y observamos bien las instrucciones que necesitamos para la terminal. Ahora regresemos a nuestro código y empecemos.

[1:08] Aquí tenemos un pequeño servidor que creé en un video anterior. Aquí esto son las definiciones de tipo los crossovers, el servidor, y podemos ver que tiene el playground habilitado la introspección. También tenemos express() inicializado como middleware y aplicamos en middleware.

[1:28] Lo único pequeño cambio que tenemos que hacer es añadir el puerto como una variable secreta haciendo process.env.PORT o 4000 para cuando usemos nuestro servidor local. Es importante notar que no vamos a guardar esto en nuestro archivo de variables porque esto lo usa Heroku y lo enlaza automáticamente al tiempo de publicarlo.

[1:51] De regreso en nuestro panel de Deploy, vamos a ver las instrucciones que necesitamos de la terminal. Con esto podemos hacer nuestro login o ingresar al sistema usando heroku login. Esto nos llevará al navegador y en el navegador podemos usar nuestro contraseña y correo, y regreso podemos ir a terminal y verificar que ya estamos logged in porque dirá Logged in y su correo.

[2:17] Ahora vamos a montar todo a git y agregaremos un mensaje. El mensaje puede ser genérico, pero en este caso usaremos 'mensaje inicial heroku'. Esto lo va a empujar a nuestro [inaudible] principal del origen de Heroku de la misma manera que empujamos cambios a GitHub.

[2:35] Esto va a desencadenar un build process que construye nuestro paquete y lo monta sobre una imagen. Todo esto es manejado por Heroku. Encontraste otras nubes porque Heroku se conoce como un servicio manejado y estas imagines se conocen como Dynos.

[2:51] Para verificar nuestros cambios podemos regresar a la página de ajustes y obtener la dirección de nuestro servidor. Vamos a notar un error, pero esto es normal. Si se acuerdan en el servidor, adjuntamos la ruta grafql al final de nuestra dirección.

[3:15] Excelente. Podemos ver nuestra documentación autogenerada. Podemos ver HTPPS, el certificado fue automáticamente provisionado por Heroku. Ejecutamos nuestra consulta y deberíamos de observar la cadena de caracteres, el esquema.

[3:33] En resumen, creamos una aplicación en Heroku, la publicamos, vimos todas las partes, el panel principal desde el cual podemos ver todo hasta los logs que se han producido.

[3:46] Sin embargo, lo más bonito de todo fue que en el código en verdad solicimos un cambio pequeño que fue en lazar el puerto a una variable secreta que Heroku automáticamente añade. Muchas gracias.