viernes, 11 de diciembre de 2020

Como publicar mi proyecto Java EE en internet




Este 2021 inicio con un proyecto personal, para ello he desarrollado mi aplicación Java EE tomando como base Shopizer, y llegado la hora de publicarlo a internet me he encontrado con desafíos, le he dedicado muchas horas a investigar, por ello en esta entrada documento todo.

Conceptos que aprendí

Sitio Web, Aplicación Web, Hosting, Servidor en la nube (cloud), Servidor VPS, 

Esta entrada trata sobre

Preparar un servidor virtual para desplegar aplicaciones Java EE y hacerlo accesible a Internet con un presupuesto de 50USD anual.

Lo primero que hice fue comprar el dominio, este lo compré en GoDaddy, no tuve mayores problemas. Luego voy por el Hosting, y aquí me encontré con muchas confusiones, probé con Wordpress para luego enterarme que Wordpress es un Hosting + CMS, algo que definitivamente no me sirve, yo solo tenía acceso a la aplicación CMS, olvídate de tener un MySQL, Wildfly y Apache.

Investigando descubrí que generalmente un Hosting es un ambiente preconfigurado para subir un sitio web y no una aplicación web. La mayoría de los Hosting vienen con un conjunto de software pre instalado y configurado para sitios web PHP.

Seguí investigando y encontré que lo que yo buscaba era un servidor web en la nube, en realidad podría tener mi propio servidor web en el departamento pero al hacer cálculos de costes no es muy conveniente que digamos. 

Siguiendo con la historia, encontré un servidor en la nube muy bueno, viene pre configurado para la tecnología Java, Red Hat Openshift, ya viene instalado MySQL, Java, Tomcat o Wildfly. El problema es el costo, 50 USD mensual, estamos hablando de 600 USD anual. y pues se sale de mi presupuesto, mi presupuesto es de 50 USD anual. Jajajaja.

Seguí investigando y encontré que hay un servidor en la nube virtual, sin nada pre instalado mas que solo el SO, y el costo es de un poco menos de 50 USD anual. Estos son los conocidos Servidor VPS. Por ahora me encuentro en Chile así que elegí a mi proveedor https://www.hosty.cl/cloud-vps/

Una segunda buena opción erá https://www.digitalocean.com/products/droplets/ pero ligeramente más caro, 20 USD aprox más que hosty. Por el precio lo descarté, quizás en el futuro.

Una tercera opción que no me convence del todo es https://www.hostignition.com/index.php?page=jsp-servlets, no me terminar de convencer ya que viene pre configurado con Tomcat y sospecho no se puede instalar Wildfly, pero igual debería darle una revisada.

Conectarte al Servidor VPS

Un servidor VPS es como cualquier servidor, solo que está en la nube, en internet, tiene su SO, en mi caso elegí Ubuntu Server 18, y para acceder a el lo haces mediante un cliente SSH Putty. El proveedor te da la dirección IP, el puerto, y la contraseña del usuario root  la cual puedes cambiar  mas adelante. De entrada Putty no me pareció muy amigable, cuando llegué al login en ingresaba el password de mi usuario Linux, en la consola, el promt no dibuja los caracteres ingresados, por fortuna puedes copiar y pegar el password haciendo click derecho sobre la consola.

Instalando MySQL

Para instalar MySQL ejecutar el siguiente comando Ubuntu

sudo apt install mysql-server

Para verificar si el servicio de MySQL esta ejecutándose correctamente ejecutar el siguiente comando

sudo netstat -tap | grep mysql

Y deberías ver la siguiente salida

tcp        0      0 localhost:mysql         0.0.0.0:*               LISTEN                              6874/mysqld

En caso de que el servicio no esté corriendo puedes iniciarlo ejecutando el siguiente comando

sudo systemctl restart mysql.service

Instalando Java

He decidido instalar OpenJDK ya que es la opción mas sencilla, para instalar, ejecutar los siguientes comandos.

sudo apt update

sudo apt install default-jdk

Instalando Apache Tomcat

Decidí instalar Apache Tomcat en lugar de Wildfly, la razón principal es porque no voy a usar EJB, aquí puedes leer una entrada exclusiva para saber como instalar Tomcat. ¿Cómo instalar Apache Tomcat en un servidor VPS Linux? 

Configurando el nombre del dominio web en Apache Tomcat

Para mostrar tu aplicación web cuando el usuario ingrese en su navegador el nombre de tu dominio deberás configurar el dominio en Apache Tomcat, aquí puedes leer una entrada exclusiva para saber como configurarlo. ¿Cómo configurar el nombre del dominio web en Apache Tomcat?

Configurando nuestro dominio

Pronto...

Seguridad

Pronto...

Y bueno... aun me queda mucho trabajo por hacer, instalar MySQL, Java, Wildfly, Apache Web, y configurar Wildfly con Apache Web.

Seguiré documentando...




No hay comentarios:

Publicar un comentario