Despliegue

Sidebar 2.5

Porcentaje completado

En este capítulo:

  • Aprenderemos cómo desplegar aplicaciones en Meteor.com.
  • Cómo desplegar aplicaciones en Modulus.
  • Cómo desplegar aplicaciones en nuestro propio servidor usando Meteor Up.
  • A algunos les gusta trabajar silenciosamente en un proyecto hasta que queda perfecto. Otros quieren mostrarlo al mundo lo más pronto posible.

    Si eres de los primeros y prefieres desarrollar a nivel local, no dudes en saltarte este capítulo. Pero si prefieres aprender a desplegar tu aplicación Meteor en la Web, ahora te explicamos cómo hacerlo.

    Vamos a aprender a desplegar una aplicación Meteor de diferentes formas. Eres libre de utilizar cualquiera de ellas en cualquier etapa del desarrollo, ya sea trabajando en Microscope o en otra aplicación. ¡Vamos a empezar!

    Introduciendo las barras laterales.

    Este capítulo es una barra lateral (sidebar). En estos capítulos se adopta una mirada más profunda a temas más generales sobre Meteor, de forma independiente al resto del libro.

    Así que si prefieres seguir construyendo Microscope, puedes saltarse estos capítulos y volver a ellos más tarde.

    Despliegue de aplicaciones en Meteor.com

    Desplegar en un subdominio de Meteor (por ejemplo http://myapp.meteor.com) es la opción más sencilla, y será lo primero que probaremos. Es muy útil para mostrar la aplicación durante las primeras etapas del desarrollo o para configurar rápidamente un servidor de prueba.

    Desplegar en Meteor es muy simple. Solo tienes que abrir el terminal, ir al directorio de la aplicación y escribir:

    meteor deploy myapp.meteor.com
    

    Por supuesto que tienes que tener cuidado de reemplazar “myapp” con un nombre de tu elección, y preferiblemente uno que no esté en uso.

    Si es la primera vez que despliegas una aplicación, te pedirá crear una cuenta en Meteor. Y si todo va bien, después de unos segundos podrás acceder a la aplicación desde http://myapp.meteor.com.

    Puedes mirar la documentación oficial para obtener más información sobre cosas como el acceso a la base de datos de la instancia, o cómo configurar un dominio personalizado.

    Despliegue de aplicaciones en Modulus

    Modulus es una gran opción para desplegar aplicaciones basadas en Node.js. Es uno de los pocos proveedores de PaaS (plataforma-como-servicio) que apoyan oficialmente a Meteor, y ya hay un buen número de gente corriendo aplicaciones en producción allí.

    Puedes aprender más sobre Modulus, leyendo su guía de despliegue de aplicaciones Meteor: deployment guide for Meteor apps.

    Meteor Up

    Aunque todos los días aparecen nuevas soluciones en la nube, a menudo vienen con su propia cuota de problemas y limitaciones. Así que, actualmente, el despliegue en tu propio servidor sigue siendo la mejor manera de poner una aplicación Meteor en producción. El problema es que, hacerlo uno mismo no es tan sencillo, especialmente si lo que estás buscando es un despliegue de calidad.

    Meteor Up (o mup, para abreviar) es un intento de solucionar este problema con una utilidad de línea de comandos que se encarga por nosotros de la instalación y el despliegue. Así que veamos cómo desplegar Microscope utilizando Meteor Up.

    Antes de nada, vamos a necesitar un servidor. Recomendamos o bien Digital Ocean, desde $5 al mes, o bien AWS, que proporciona Micro instancias gratuitas (con las que rápidamente tendremos problemas de escala, aunque deberían ser suficientes si solo buscamos empezar a jugar con Meteor).

    Sea cual sea el servicio que elijas, debes obtener tres cosas: la dirección IP del servidor, un inicio de sesión (normalmente root o ubuntu), y una contraseña. Guarda estas cosas en un lugar seguro, ¡pronto las necesitaremos!.

    Inicializando Meteor Up

    Para empezar, necesitamos instalar Meteor Up vía npm:

    npm install -g mup
    

    A continuación, crearemos un directorio especial donde pondremos la configuración de Meteor Up para un despliegue en particular. Vamos a utilizar un directorio independiente por dos razones: primero, porque, por lo general, es la mejor manera de evitar incluir credenciales privadas en tu repositorio Git, especialmente si estás trabajando en un repositorio público.

    En segundo lugar, mediante el uso de directorios separados, podremos manejar múltiples configuraciones en paralelo. Esto será muy útil para, por ejemplo, desplegar instancias de desarrollo y producción.

    Así que vamos a crear este nuevo directorio y lo utilizaremos para iniciar un nuevo proyecto Meteor Up:

    mkdir ~/microscope-deploy
    cd ~/microscope-deploy
    mup init
    

    Compartir con Dropbox

    Una manera de asegurarse de que todo el equipo de desarrollo utilice la misma configuración de despliegue es crear la carpeta de configuración de Meteor Up dentro de Dropbox, o cualquier servicio similar.

    Configuración de Meteor Up

    Cuando inicializamos un nuevo proyecto, Meteor Up crea dos archivos: mup.json y settings.json.

    mup.json contendrá los ajustes relacionados con el despliegue, mientras que settings.json contendrá todos los ajustes relacionados con la aplicación (tokens OAuth, tokens para análisis, etc.)

    El siguiente paso es configurar el archivo mup.json. Aquí está el archivo mup.json que mup init genera por defecto. Todo lo que hay que hacer es rellenar los espacios en blanco:

    {
      //server authentication info
      "servers": [{
        "host": "hostname",
        "username": "root",
        "password": "password"
        //or pem file (ssh based authentication)
        //"pem": "~/.ssh/id_rsa"
      }],
    
      //install MongoDB in the server
      "setupMongo": true,
    
      //location of app (local directory)
      "app": "/path/to/the/app",
    
      //configure environmental
      "env": {
        "ROOT_URL": "http://supersite.com"
      }
    }
    
    mup.json

    Vamos a repasar cada uno de estos valores.

    Autenticación del servidor

    Te habrás dado cuenta de que con Meteor Up puedes usar SSH con usuario y contraseña o una clave privada (PEM), por lo que lo podemos usar con casi cualquier proveedor de la nube.

    Nota importante: si eliges utilizar la autenticación basada en contraseña, asegúrate de instalar primero sshpass. (Echa un vistazo a esta guia).

    Configuración de MongoDB

    El siguiente paso es configurar una base de datos MongoDB. Recomendamos usar Compose o cualquier otro proveedor en la nube porque ofrecen un apoyo profesional y mejores herramientas de gestión.

    Si has decidido usar Compose, configura setupMongo como false y añade la variable de entorno MONGO_URL en un bloque env en mup.json. Si por el contrario decides usar MongoDB en el propio servidor, configura setupMongo como true y Meteor Up se hará cargo de todo.

    El path de la aplicación Meteor

    Debido a que la configuración de Meteor Up reside en un directorio diferente. Mediante la propiedad app le decimos cómo llegar hasta nuestra aplicación. Sólo hay que introducir la ruta local completa, que se puede obtener con el comando pwd de la terminal, cuando estamos dentro del directorio de la aplicación.

    Environment Variables

    Dentro del bloque env podemos especificar todas las variables de entorno de nuestra la aplicación (por ejemplo, ROOT_URL, MAIL_URL, MONGO_URL, etc.).

    Configuración y despliegue

    Antes de que podamos desplegar, tendremos que configurar el servidor para que esté listo para alojar aplicaciones Meteor. La magia de Meteor Up encapsula este complejo proceso ¡en un solo comando!

    mup setup
    

    Esto llevará un tiempo dependiendo del rendimiento del servidor y la conectividad de la red. Después de que la instalación termine correctamente, por fin podemos desplegar nuestra aplicación con:

    mup deploy
    

    Esto empaqueta la aplicación, y la despliega en el servidor que acabamos de configurar.

    Mostrando logs

    Los registros son muy importantes y Meteor Up proporciona una forma fácil de manejarlos, emulando el comando tail -f. Solo tienes que escribir:

    mup logs -f
    

    Aquí termina nuestro resumen de lo que puede hacer Meteor Up. Para más información, le sugerimos visitar el repositorio GitHub de Meteor Up.

    Estas tres formas de desplegar aplicaciones Meteor deberían ser suficiente para la mayoría de los casos de uso. Por supuesto, sabemos que algunos de vosotros preferiríais tener el control y configurar un servidor Meteor desde cero. Eso, lo dejaremos para otro día… o tal vez para otro libro!