Logo Studenta

Desplegar-Una-Aplicacion-Java-en-Heroku-3

¡Este material tiene más páginas!

Vista previa del material en texto

Desplegar una aplicación java en Heroku
En esta sección se explicará cómo desplegar una aplicación java en la plataforma Heroku. Es un proceso relativamente sencillo y no requiere conocimientos sobre instalación o configuración de servidores.
Requerimientos:
· Tener una cuenta en Heroku
· Java instalado
· Maven 3 instalado
Configuración Inicial:
En este paso, se instalará Heroku Toolbelt. Esta herramienta provee el acceso a la línea de comandos de Heroku. Toolbelt se puede obtener a través del siguiente enlace: https://s3.amazonaws.com/assets.heroku.com/heroku-toolbelt/heroku-toolbelt.exe
Una vez instalado, puedes usar el comando “heroku” desde el terminal.
Usa la aplicación “Git Bash” para abrir una consola de comandos en Windows. Puedes acceder a ella desde el acceso directo que se creó durante la instalación de Toolbelt. Inicia sesión usando el correo electrónico y la clave de tu cuenta en Heroku.
Presiona enter en la consola para subir tu llave “sh”. Si no tienes una, puedes crearla ahí mismo.
Si deseas verificar que tu llave ha sido añadida, escribe “heroku keys”. Si la llave no se muestra, puedes insrtarla escribiendo “heroku keys:add”.
Preparar la aplicación:
En este paso, se preparará una aplicación simple para que pueda ser desplegada.
Ejecuta los siguientes comandos para clonar la aplicación de ejemplo:
Luego de esto tendrás un repositorio git funcional que contiene una aplicación simple así como también un archivo “pom.xml” usado por el administrador de dependencias java: Maven.
Desplegar la aplicación:
Crea una aplicación en Heroku usando “heroku create”, con lo cual Heroku se prepara para recibir tu código fuente.
“--http-git” es una característica beta de Heroku que se asegura de que las futuras interacciones con Heroku vía git sean a través de HTTP. Si en vez de esto deseas usar el tradicional SSH, ejecuta el comando “heroku create” sin el flag “--http-git”.
Esto también crea un repositorio remoto (llamado “heroku” en este caso) que se configura en tu repositorio git local. Heroku genera un nombre aleatorio (en este caso warm-eyrie-9006) para tu aplicación. Puedes pasarle los parámetros que quieras o renombrarla después con “heroku apps:rename”.
Ahora despliega tu código con “git push heroku master”:
Ahora que tu aplicación ya está desplegada, asegúrate de que al menos una instancia de la misma esté corriendo:
Ahora visita el URL generado usando el nombre de la aplicación:
Ver los logs:
Heroku trata a los logs como eventos en streaming ordenados por tiempo y junta en un solo canal todos los logs de todas tus aplicaciones y componentes.
Si visitas otra vez tu aplicación en el navegador otra vez, verás que se generó otro log. Presiona “ctrl + c” para detener el streaming de logs.
Definir un procfile:
Un Procfile es un archivo de texto que se encuentra en el directorio raíz de tu aplicación usado para declarar que comando debe ser ejecutado para iniciarla.
El procfile de la aplicación ejemplo que acabas de desplegar luce así:
La línea anterior declara un proceso de tipo “web” y el comando necesario para ejecutarlo. El nombre “web” es importante aquí, pues declara que este tipo de proceso será añadido a la pila de la ruta HTTP y recibirá tráfico web cuando la aplicación sea desplegada.
La sintaxis de “Proclife” es importante – Heroku corre el comando exacto especificado cuando inicializa un dyno – y lo ejecuta en un entorno Unix.
Si ejecutas tu aplicación en Windows, es probable que recibas un error debido a que la forma en que Unix pasa las variables de entorno (“$JAVA_OPTS”) y la forma de concatenar rutas (“:”) es incompatible.
Para ejecutar una aplicación en Windows:
· Crea un nuevo archivo, “Procfile.windows” 
· Añade una línea para indicar como inicializar la aplicación bajo “Windows: web: java %JAVA_OPTS% -cp target\classes;"target\dependency\*" Main“
· Cuando veas las instrucciones para correr tu aplicación con Foreman, añade un flag “-f Procfile.windows” para asegurarte que tu archivo “Proclide.windows” sea detectado. Por ejemplo: foreman start web -f Procfile.windows 
Los Procfile pueden contener tipos de procesos adicionales. Por ejemplo, puedes declarar uno para un proceso de fondo “worker” que este procese ítems de una cola.
Escalar la aplicación:
En este momento, la aplicación está ejecutándose en un solo dyno. Piensa en un dyno como en un contenedor ligero que ejecuta el comando especificado en el proclife.
Puedes verificar cuántos dynos se están ejecutando escribiendo el comando “ps”.
Si un solo dyno está corriendo sin hacer nada, este pasará al modo inactivo. En el momento en el que se le haga un ‘request’ al dyno, este se activará de nuevo luego de un corto periodo de retraso.
Para prevenir esto, puedes escalar a un segundo dyno web.
Para prevenir abusos sobre el servicio, el escalar la aplicación requiere autenticación de usuario. Ejecutar más de un dyno al mismo tiempo tiene un costo monetario en Heroku, por lo que deberías escalar hacia atrás.
Declarar dependencias de aplicaciones:
Heroku reconoce que una aplicación es una app Java por la existencia del archivo “pom.xml” en el directorio raíz. Puedes crear un archivo “pom.xml” desde cero usando el comando “mvn clean install”.
La aplicación desplegada ya tiene un archivo “pom.xml”: 
El archivo “pom.xml” establece las dependencias que deberían ser instaladas en tu aplicación. 
Cuando una aplicación es desplegada, Heroku lee el archivo mencionado e instala las dependencias mediante el comando “mvn clean install”.
Otro archivo: “java.properties” determina que versión de java usar.
Introduce el comando “mvc clean install” para instalar las dependencias y preparar al sistema para que corra la aplicación localmente.
Una vez terminada la instalación, la aplicación estará lista para ejecutarse localmente
Desplegar una aplicación java en Heroku
En esta sección se explicará cómo desplegar una aplicación java en la plataforma Heroku. Es un proceso relativamente sencillo y no requiere conocimientos sobre instalación o configuración de servidores.
Requerimientos:
· Tener una cuenta en Heroku
· Java instalado
· Maven 3 instalado
Configuración:
En este paso, se instalará Heroku Toolbelt. Esta herramienta provee el acceso a la línea de comandos de Heroku. Toolbelt se puede obtener a través del siguiente enlace: https://s3.amazonaws.com/assets.heroku.com/heroku-toolbelt/heroku-toolbelt.exe
Una vez instalado, puedes usar el comando “heroku” desde el terminal.
Usa la aplicación “Git Bash” para abrir una consola de comandos en Windows. Puedes acceder a ella desde el acceso directo que se creó durante la instalación de Toolbelt. Inicia sesión usando el correo electrónico y la clave de tu cuenta en Heroku.
Presiona enter en la consola para subir tu llave “sh”. Si no tienes una, puedes crearla ahí mismo.
Si deseas verificar que tu llave ha sido añadida, escribe “heroku keys”. Si la llave no se muestra, puedes insrtarla escribiendo “heroku keys:add”.
Preparar la aplicación:
En este paso, se preparará una aplicación simple para que pueda ser desplegada
Ejecutar la aplicación a nivel local
Ahora, iniciar la aplicación a nivel local utilizando “Foreman”, que fue instalado como parte de la herramienta Toolbelt
Al igual que Heroku , “Foreman” examina el archivo “Procfile” para determinar qué se ejecute.
La aplicación está ejecutando en el puerto 5000 con la dirección http: // localhost: 5000. 
Para ejecutar la aplicación en el servidor local se puede ingresar el comando “curl” o verificar por medio de un cliente web. 
Foreman no sólo ejecutar la aplicación, también establece variables con configuración “config vars", que es un tema que se tratara en detalle en otro apartado.
Guardar las configuraciones locales
En este paso usted aprenderá cómo propagar un cambio local a la aplicación a través de Heroku. A modo de ejemplo, podrás modificar la aplicación para agregar una dependencia adicional y el código para utilizarlo.
Abrir el archivo de configuración pom.xml para agregar una dependencia “ jscience”.Las sección de “dependencies” debe contener los siguientes campos.
Modificar src / main / java / Main.java lo que importa esta biblioteca al inicio. Además de modificar la llamada a la ruta que se encarga de '/' a usarlo. El código final debe ser similar a esto:
Modificar el método showhome () para que se lea así:
Aquí está el código fuente final para Main.java , el cual debería contener lo siguiente:
Ahora se realiza la prueba a nivel local:
Visitar la aplicación en la ruta http: // localhost: 5000, debería ver algunas grandes conversiones científicas muestran:
Ahora desplegar. Casi todas las despliegues en Heroku siguen este mismo patrón. En primer lugar, se agregan los archivos modificados al repositorio git local:
Ahora confirmar los cambios en el repositorio:
Implementar Ahora, tal anteriormente Como lo Hizo:
  
Por Ultimo, comprobar que todo se está ejecutándo correctamente.
   
Agregar complementos
Los complementos son los servicios cloud de terceros que prestan servicios adicionales fuera del entorno de desarrollo de su aplicación, de la persistencia a través de la tala para la vigilancia y más.
Por defecto, las tiendas Heroku 1.500 líneas de registros de la aplicación. Sin embargo, hace que la secuencia de registro completo disponible como un servicio - y los servicios de registro de varios proveedores de complementos de han escrito que proporcionan cosas tales como la persistencia de registro, búsqueda y correo electrónico y SMS cuando se cumplen ciertas condiciones.
Para ayudar con la prevención del abuso, el aprovisionamiento de un add-on puede requerir verificación de la cuenta. Si su cuenta no ha sido verificada, se le dirigirá a un sitio de verificación.
El add-on está implementada y configurada para su aplicación. Puede enumerar los complementos para su aplicación, así:
  
Para ver este complemento en particular, en acción, visite Heroku URL de la aplicación varias veces. Cada visita generará más mensajes de registro, que ahora debe quedar dirigida a las PaperTrail complemento. Visita la consola PaperTrail para ver los mensajes de registro:
  
Una consola se abrirá, mostrando los últimos eventos de registro, y que le proporciona una interfaz para buscar y configurar alertas:
Iniciar un banco de pruebas 
Puede ejecutar un comando, típicamente scripts y aplicaciones que forman parte de su aplicación, en un banco de pruebas de una sola vez utilizando el comando de marcha Heroku. También se puede utilizar para poner en marcha un proceso REPL conectado a su terminal local para experimentar en el entorno de su aplicación, o código a medida que se implementó con su solicitud:
  
No te olvides de escribir exit para salir de la cáscara y terminar el banco de pruebas.
Definir Variable de Configuracion “Vars Config”
Heroku le permite externalizar configuración - almacenamiento de datos, tales como claves de cifrado o direcciones de recursos externos en vars config.
En tiempo de ejecución, vars config se exponen como variables de entorno a la aplicación. Por ejemplo, modifique src / main / java / Main.java para que el método se repite toma un valor de energía a partir de la variable de entorno ENERGÍA:
 
Ahora compila la aplicación de nuevo para que este cambio se integra mediante la ejecución mvn clean install.
Capataz configurará automáticamente el medio ambiente basado en el contenido del archivo .env en su directorio local. Crear un archivo .env que tiene el siguiente contenido:
 Si ejecuta la aplicación con inicio capataz y lo visita en la dirección http: // localhost: 5000, verá el valor de conversión de 20 GeV.
Para establecer el var config en Heroku, ejecutar lo siguiente: 
A continuación se muestran las variables de configuración que se establecen con config Heroku: 
Conexión a base de datos
El add-on mercado tiene un gran número de almacenes de datos, desde Redis y MongoDB proveedores, a Postgres y MySQL. En este paso usted aprenderá acerca de los libres Heroku Postgres complemento que se aprovisiona automáticamente despliega toda aplicación Java.
Una base de datos es un complemento, y para que pueda conocer un poco más sobre la base de datos proporcionado para su aplicación con el comando de complementos en la CLI:
Listado de las vars de configuración para su aplicación se mostrará la dirección URL que su aplicación está utilizando para conectarse a la base de datos, DATABASE_URL:
  
Heroku también proporciona un comando pg que muestra mucho más:
Esto indica que tengo una base de datos de manía (gratis), que ejecuta Postgres 9.3.3, con una sola fila de datos.
El ejemplo aplicación ya ha implementado tiene una funcionalidad de base de datos, que usted debería ser capaz de llegar visitando la URL de su aplicación y añadiendo / db. Por ejemplo, si su aplicación se desplegó a https://wonderful-app-287.herokuapp.com/ luego visitar https://wonderful-app-287.herokuapp.com/db.
El código para acceder a la base de datos es sencillo. Aquí está el método getConnection () que recupera el DATABASE_URL variable de entorno establecido por la base de datos complemento, y establece una conexión:
Y aquí hay un método para insertar valores en una tabla llamada garrapata:
Esto asegura que cuando acceda a su aplicación utilizando la ruta / db, se añadirá una nueva fila a la tabla de la garrapata, y todas las filas será regresada para que puedan ser prestados en la salida.
Implemente este a Heroku.
Ahora, cuando se accede a la ruta / db de su aplicación, verá algo como esto:
Asumiendo que el usuario tiene Postgres instalados localmente, utilice el Heroku pg: comando psql para conectarse a la base de datos remota y ver todas las filas:

Continuar navegando