Hola. Vamos a comenzar esta serie de videos tutoriales del módulo cuatro, último módulo del curso, y vamos a trabajar con diferentes configuraciones de servicios y de cuentas. Hay bastante trabajo de esta parte, es bastante simple y las mismas herramientas nos van a ir guiando en el proceso. Pero me parece hacerlo al menos una vez juntos, como puede ser este curso en concreto y de esa manera es un poco más simple y menos bloqueante, quizás, la configuración de herramientas. Vamos a comenzar con el "setup" de Heroku, que va a ser esta plataforma que nos va a permitir "hostear" la aplicación. Tiene una versión gratuita para lo que es desarrollo y nos viene perfecto para aplicar este "TP" o este trabajo que venimos haciendo de la red de bicicletas. Luego, para uso más profesional o proyectos que requieran más capacidad, esta misma plataforma te permite escalar haciendo algunos clicks, ese es el beneficio que tiene; y nos permite enfocarnos directamente en lo que es la creación de la aplicación y no tanto en lo que es configuración, diferentes tipos de integraciones con herramientas y demás. Ellos se encargan principalmente de simplificar todo ese proceso, asà que nos viene muy bien. Manos a la obra, entramos a "heroku.com". Lo primero que vas a tener que hacer es crear una cuenta, yo tengo la mÃa. En la parte de creación de la cuenta no presenta mayores dificultades, ya hemos creado varias cuentas en diferentes servicios, asà que esa parte no la vamos a incluir acá, sino que directamente vamos a crear la aplicación. De todas formas, lo importante es que hagas dos cosas: por un lado, crearte obviamente la cuenta "online" y después crear la cuenta de lo que es la herramienta de consola de Heroku que es la que vamos a ir a usar. Es para ejecutar los comandos directamente desde la consola, sin tener que venir hasta la "web" y trabajar con la parte de, digamos, haciendo clicks y demás en la página; directamente, sobre el proyecto hacemos "heroku" y el comando que querramos y empezamos a ejecutar directamente en la consola. Eso nos permite estar enfocados en la herramienta de desarrollo y de alguna manera es un poco más ágil, también, lidiar con las diferentes herramientas de Heroku. Por supuesto que la "web" la vamos a utilizar ya que es muy práctica para ver diferentes métricas y demás. Vamos a comenzar a trabajar. Entonces, dentro del sitio create la cuenta, una vez que te hayas creado la cuenta, configurate la cuenta en la terminal. Lo que vamos a hacer es entrar a nuestra "home", acá ya tengo varios proyectos creados. Vamos a crear una aplicación nueva, vamos a elegir un nombre, "red-bicicletas". Veremos si está disponible, sÃ, nos dice que está disponible asà que procedemos a crearlo. En la región, Europa o Estados Unidos, voy a dejar por "default" Estados Unidos. Acá podés agregar lo que es un "pipeline", esto más que nada es, uno puede armar lo que se considera como un flujo de desarrollo con diferentes ambientes, donde puede haber uno de prueba, por ejemplo. Entonces, creamos "red-bicicletas": "testing", "QA", "staging", "prueba", el nombre que vos quieras, donde se van a ir haciendo todas las pruebas. Luego, creamos otro "pipe", o mejor dicho otra aplicación como parte del "pipe", que sea, supongamos, la de producción final, la que se va a usar a nivel empresarial, corporativo, a nivel comercial si quieres, la versión final que va a ver todo el mundo. De esa manera, Heroku, lo que nos permite es construir un "pipe", es decir, un flujo con todas las capas que nosotros querramos, todas las aplicaciones que nosotros querramos, y nosotros, lo que podemos hacer es ir actualizando la versión de "testing". Esa versión de "testing" la van a revisar todas las personas interesadas en el proyecto que, de alguna manera, van a verificar o validar que nuestro progreso sea tal. Una vez que esa versión que está ahà en "QA" funciona como esperamos, la promocionamos, "promoted" usa Heroku, las pasamos a producción. Entonces, copiamos, entre comillas, entiéndase, copiamos todas las funcionalidades, todo el código que está resuelto dentro de esta publicación de "testing", y la pasamos a producción. Eso es bastante ágil, bastante práctico, se suele trabajar asà y vale la pena. No significa que hay que gastar más plata ni mucho menos y está bueno hacerlo. Para aprovechar bien eso, habrÃa que configurar varias herramientas más y no nos va a dar el tiempo del curso. Todo lo que es, más bien, los tópicos de Devox o automatización y demás, aplicarÃan y se aprovecharÃan fuertemente en la construcción de estos "pipeline" o flujos de trabajo. Te lo menciono por si querés explorarlo por tu cuenta. Vale la pena, pero es todo un área que podrÃamos armar otros cursos sobre este tema, asà que lo vamos a mencionar y pasar por alto. Creamos la aplicación. Acá ya nos empieza a dar bastante información, pero la aplicación ya está creada, "red-bicicletas". Vamos a hacer un breve pantallazo de lo que tenemos aquÃ. Esto mismo, que creamos la aplicación haciendo clicks en la aplicación misma y demás, se puede hacer desde la consola usando el comando "heroku create" y el nombre de la aplicación. Lo menciono por si quieres hacerlo. Acá nos ofrecen de vuelta crea el "pipeline" o agregarlo a alguno ya existente. Tenemos más información para probar el tema de los "pipelines". El método de "deployment", es decir, cómo vamos a publicar nuestro repositorio en Heroku, nuestro código en Heroku. Acá fijate que tenemos tres versiones: este Heroku Git, que esto es el Heroku Cli, que es esta herramienta de consola, el programita que vamos a poner en la terminal que es vincular nuestra cuenta de Heroku con el repositorio local que tendremos de Git, para publicar desde allÃ, y eso es lo que vamos a hacer; si estuviéramos utilizando GitHub, podemos conectar GitHub con Heroku y automáticamente, cuando publiquemos en el "branch" que nosotros configuremos, se hace una publicación a Heroku; y tenemos alguna más, esto es para usar otro tipo de tecnologÃas como Docker y demás. Vamos a dejar Heroku Git. Después, lo que tenemos es... Acá nos explican cómo hacer el "deploy" usando Heroku Git, entonces, acá te explican que tenés que descargarte e instalarte Heroku Cli. Podés seguir las... Vamos a abrir el nuevo link. Aquà tienes las instrucciones del tres de febrero, fijate que no tiene mucha ciencia. Si usas Mac, tenés este comando para copiar; si tenés Windows, tenés el instalador para realizar; en Ubuntu lo mismo, la instrucción. Después es solamente seguir los pasos. Acá vas teniendo los comandos. Te va a pedir registrarte, "loguearte" por primera vez y ya te va a quedar la cuenta con las credenciales vinculadas en la consola, asà que esto es algo que se hace una única vez y después nunca más. Fijate que ya la documentación terminó, no tiene mucho más para explorar. Asumiendo que esto ya está configurado, lo que vamos a hacer es ir al proyecto y agregar el repositorio existente con la cuenta del proyecto este, la aplicación, mejor dicho, de Heroku, que acabamos de crear. De esa forma, lo que sucede detrás, quizás este es más bajo nivel, más técnico, se crea como un "branch" especial para Heroku que va a estar escuchando las publicaciones que se hagan allÃ; y, cuando publiquemos al "branch" de Heroku, Heroku tiene un proceso que detecta que ahà hubo una nueva publicación y lo va a "deployar" en el servidor, lo va a poner en producción en este servidor que nos acaba de crear. Si te parece, lo primero que vamos a hacer es directamente configurar la cuenta Heroku en el proyecto. Acá estamos en nuestro proyecto, estamos en la terminal, pegamos lo que aparece aquÃ, "heroku git:remote", "-a" de aplicación, "red-bicicletas", y ya te dice que se ha hecho la configuración correctamente con red de bicicletas. ¿Qué más nos dicen? Hacer un primer "commit", pero ya tenemos varios "commit" hechos. Directamente, lo que podemos hacer es el "git push heroku master", es decir, "pushear master" a Heroku. Fijate que acá ya tenÃamos un repositorio existente y lo único que tendrÃamos que hacer es esta última partecita, lo que acabamos de hacer, agregar al repositorio existente a Heroku. Vamos a hacer "git push heroku master" y veamos el resultado. Acá va ir "logueando" todo lo que es la operación de publicación. Va a demorar un poquitito dependiendo de la capacidad de compresión de tus procesadores, que es lo que te avisa aquÃ, y después, la velocidad de Internet para publicar y demás. Acá está detectando que es una aplicación Node.js y configurando las cosas que hacen falta. Están las librerÃas, las dependencias. Cada tanto puede que nos avise, como esto que está aquÃ, alguna advertencia, algún comentario como puede ser si falta algo en el archivo "package" o de configuración, o si hay alguna versión de alguna librerÃa que hace falta utilizar, etcétera. Siempre es bueno, a veces, repasarlo, por si hay algún error directamente o alguna advertencia que valga la pena tener en cuenta. Acá nos dice que el "build", la generación del proyecto, funcionó bien y que el "deploy" se pudo realizar. Vamos a ver qué sucede si hacemos un "heroku open", esto abre el proyecto. FÃjense que ya estamos en "red-bicicleta.herokuapp.com", esto es un dominio público que genera Heroku. Antes, un subdominio, "red-bicicletas" del dominio "heroku.app". Pero ya esto es público, ya cualquiera puede entrar, acceder y empezar a utilizar el sitio, fijate que está todo funcionando, al parecer, perfectamente, y fÃjate lo simple que resultó. No vamos a hacer mucho más largo este video. Podés probar, con Postman, pegarle a las APIs y demás, pero probablemente te des cuenta que no hemos configurado una cuenta de, por ejemplo, la base de datos que sigue apuntando a nuestro entorno local. Entonces, lo siguiente que vamos a tener que hacer antes que nada, fijate que tenemos el "//localhost/red_bicicletas" y esto claramente no va a funcionar, nos va a tirar un error porque no hemos configurado en el servidor "red-bicicletas". Por lo tanto, lo siguiente que tenemos que hacer es crear alguna base de datos en la nube, de hecho vamos a usar un servicio como MongoDB Atlas. Utilizando ese servicio vamos a vincular nuestro proyecto. Solamente para la parte de producción porque la parte local, por ahora, va a ser más fácil usar la versión de Mongo local que tengamos; mejor dicho, más que más fácil, más rápido, digamos, no dependemos de Internet ni de conectar un servicio y demás, queda todo local en tu propia computadora, pero podés usar una versión "web" también, por supuesto. Pero lo siguiente que vamos a hacer es justamente configurar el ambiente productivo y vamos a tener que ver cómo lidiar con dos ambientes ahora: nuestra versión local que es esta que tenemos y la versión de producción que va a tener, ligeramente, algunas variables de configuración distintas.