En esta serie de posts vamos a ver como implementar una aplicación escrita en .net en un servidor linux de forma nativa.
Table of Contents
1 - El motivo de porqué Linux
Primero de todo hay que explicar por qué elegimos un servidor Linux, antes de nada decir que hace un par de años, elegir esta configuración (Linux + .Net) no sería posible. pero hoy en día gracias a .Net Core si que lo es, ya que uno de sus objetivos es ser multiplataforma.
1.1 - Diferencia de precios
Como acabo de explicar lo común siempre ha sido utilizar Windows para las aplicaciones escritas en .net, y este era uno de los motivos por los que .net triunfaba en entornos empresariales y no en entornos de usuario, ya que para conseguir un servidor con windows, debes pagar la licencia.
Estamos hablando de que un servidor con windows puede costar unos 12€ al mes, mientras que uno con linux puede costar 3-4€ mes. como vemos la diferencia es abismal y sube considerablemente si queremos incluir SQLServer, o más memoria.
También hay que decir, que ponemos hosting windows, porque por ahora NINGÚN proveedor tiene Linux +NetCore en hosting compartido. Los hostings compartidos en linux son mas baratos.
2 - Hosting vs servidor VPS
Lo primero es tener claro que queremos si un hosting y para ello debemos entender que es cada opción
2.1 - Hosting Windows
Cuando hablamos de hosting tenemos que saber que va a ser compartido. esto quiere decir que la pagina donde contratamos el hosting, nos dará cierto espacio en su disco duro, en su servidor web, ya montado previamente.
contratar un hosting tiene varias ventajas.
1 - La primera y más importante es que es todo configurable a base de clics -y dinero-
Quieres un servidor de correo? de acuerdo, no pasa nada, 5 euros más al mes, quieres más usuarios, 5 euros más al mes, y así podemos seguir y sumar hasta el infinito y mas alla.
Esta es una ventaja muy grande, facilita mucho a la hora de hacerlo todo rápido.
2 - Por supuesto la seguridad viene, en la mayoría de acciones, ya todo protegido por el servidor de hosting, en nuestro caso tendríamos que tener cuidado de que no nos entraran por la web que hemos programado. pero podemos estar seguros con que el servidor es seguro. Otra gran ventaja, quizá la más importante.
Pero por supuesto tiene varias desventajas
1 - Rendimiento y escalabilidad
en caso de que nuestra web triunfe y tengamos que ampliarla, va a llegar a un “límite” por ejemplo nos será imposible contratar mas de 32gb de ram o 1tb de disco duro, esto en el VPS no pasa en tanta medida.
2- Configuración y modificación
Cuando estamos en un hosting compartido, no podemos configurar los ficheros de configuración ya que estos afectan a todos los usuarios del hosting compartido. Por lo que es una gran desventaja.
Un ejemplo muy común -en el mundo laboral- de cuando modificamos la configuración seria si tienes que modificar los hosts files para que tu aplicación llame a otro servidor. o si necesitas instalar certificados, etc.
O por ejemplo intentar añadir otro dominio, no podrás a no ser que pagues un extra al mes.
2.2 - VPS
primero debemos entender que significa VPS y son las siglas de Virtual Private Server, lo que quiere decir que cuando contratamos un servidor VPS lo que estamos haciendo es contratar una máquina virtual vacía, posiblemente el servicio donde contratamos el VPS nos dé varias opciones de instalación en el equipo.
como podemos ver en la imagen, yo tengo un hosting con OVH y la verdad es que estoy muy contento.
En mi caso tengo instalado un CentOS7.
Por supuesto un VPS como los hosting compartidos tienen ventajas y desventajas, y aquí vamos a ver un par de ellas.
Como desventaja principal y obvia
1 - Te lo tienes que configurar tu todo
Esta opción no aplica si eliges instalar un joomla o drupal, etc pero si si instalas cualquier distro de linux. Lo que quiere decir que si quieres un servidor web, o diez, te los vas a tener que montar tú, lo mismo con el servidor de correo, o el FTP, los certificados, etc.
2 - seguridad, lo que más os tiene que preocupar es la seguridad del sitio, así como cuando contratas un hosting, te limpias las manos, cuando tienes un VPS tienes que tener en cuenta la seguridad por ti mismo.
y como ventajas tenemos las siguientes
1 - 100% configurable
Asi como te lo tienes que configurar todo, puedes hacer lo que quieras en el. si de un dia para otro decides utilizar la última versión de .net Core porque salio ayer y la quieres probar, simplemente tienes que instalarla, en un hosting posiblemente nunca la tengas. por ejemplo, en la mayoría ni siquiera puedes instalar net core 2.1 que lleva 2 años a estas alturas.
2 - El precio
El precio del VPS es el que es, sin costes añadidos, obviamente si quieres mas memoria ram, o un procesador más grande, sí te va a costar, pero no por nuevos “módulos”
Estos son los precios de OVH que es el vps que tengo yo:
3 - Elección final
Cuando decidimos que elegir, debemos de tener en cuenta que no hay opciones mejores ni peores, simplemente son dos opciones que cubren distintas necesidades.
yo personalmente para un proyecto personal, prefiero un VPS he tenido servidores compartidos durante toda mi vida, pero, la limitación de la configuración hace que sea todo muy frustrante. De hecho, tuve uno con windows y lo cancele porque no tenían plan de hacer disponible .netCore, únicamente .Net Framework.
Por el contrario, si por ejemplo le hiciera una web a un familiar para su negocio, eligiria un hosting compartido ya que de esa forma, él será capaz de mantener el correo etc. debido a su sencillez. Por supuesto si es una empresa enorme con mucho tráfico, debemos utilizar un VPS pero para la pequeña empresa un servidor compartido.
En nuestro caso, por supuesto VPS ya que así seremos capaces de trastear más con el.
4 - Nombre de dominio
Finalmente solo nos queda elegir el nombre de dominio que vamos a utilizar, pese a que de primeras no lo necesitamos, ya que podemos acceder al VPS mediante la IP siempre está bien tener un nombre de dominio.
Para ello, lo podemos comprar el cualquier proveedor de dominios y luego transferirlo, o directamente comprarlo en la página donde hemos contratado el servidor VPS.
No olvidéis incluir el dominio en la zona DNS con el tipo A apuntando a la ip y el CNAME al sitio.