Nueva visita a 5+ opciones de «hosting» para aplicaciones

Publicado por pico.dev el , actualizado el .
programacion blog-stack planeta-linux planeta-codigo
Comentarios

En esta nueva revisión de las opciones de alojamiento que disponemos incluyo algunas nuevas que en su momento no conocía. Dependiendo de las necesidades y del presupuesto que tengamos podemos optar por un servidor propio, un proveedor de hosting, usar alguna de las nubes más utilizadas o algún otro PaaS o IaaS.

Hace tres años escribí un artículo sobre varias opciones de hosting que disponemos para hospedar aplicaciones o páginas web. En ese artículo comentaba varias posibilidades desde un servidor propio usando una Raspberry Pi, proveedores de hosting, Amazon EC2, Google App Engine, Jelastic, OpenShift, AppFog, Cloud Foundry (VMWare), Heroku, Azure (Microsoft) y Google Compute (Google Cloud Platform). Pasado todo este tiempo en este artículo revisaré las opciones de hospedaje con algunas nuevas que en su momento no conocía, otras siguen siendo totalmente válidas.

Servidor propio

Si queremos una opción para algo simple y para nosotros mismos podemos utilizar un servidor propio usando como hardware por ejemplo una Raspberry Pi 2 Model B, con la segunda versión de este miniordenador que ahora tiene 4 núcleos y 1 GiB de memoria puede servirnos para cantidad de cosas interesantes. Además de la Raspberry Pi 2 hay multitud de dispositivos similares, en la página de Arch Linux ARM podemos ver los modelos soportados en esta distribución. Otro modelo destacado es la Cubox-i también con 4 núcleos y en el modelo más potente con 2 GiB de memoria aunque bastante más caro que la Raspberry Pi.

Uno de los usos para los que nos puede servir es para albergar con ownCluod tu información personal como archivos, fotos, calendarios, contactos pudiendo acceder desde cualquier dispositivo ya sea el ordenador personal, teléfono inteligente o dispositivo móvil. Su punto a favor es que tus datos están bajo tu control. Aunque esta opción es posible se puede optar por otras opciones que comento más adelante, uno de los motivos es que no es fiable el servicio que podemos ofrecer ya que depende la conexión a internet que podemos tener en nuestra casa y por los cortes de corriente que se pueden producir o los fallos en el hardware que puede provocar que perdamos los datos si no tenemos copias de seguridad.

Con esta opción tendremos un control total del software instalado sin ninguna limitación, sin embargo, si necesitamos escalar la aplicación tendremos más dificultades si necesitamos comprar hardware nuevo.

Raspberry Pi

Proveedor de hosting

La siguiente opción a considerar puede ser un servidor ofrecido por muchos registradores de dominios. Si el tráfico del servicio que planeamos ofrecer no es muy alto (y así serán en los inicios) es una opción adecuada. En la mayoría de las opciones de este tipo estaremos limitados en el lenguaje de programación que podremos usar generalmente PHP o la base de datos generalmente MySql.

Mucha gente usa esta opción para albergar su bitácora con WordPress que incluso para un tráfico considerable es suficiente, por supuesto es válida para las empresas que quieran tener presencia en internet aunque solo sea para incluir su dirección teléfono de contacto y una breve descripción y los productos que ofrece. Para estos usos el coste de esta opción puede estar entre 1€/mes y 20€/mes aparte del coste del dominio.

Hay multitud de proveedores algunos de los más conocidos son DonDominio, Arsys, Piensa Solutions, … pero ninguno de estos y en otros casos muy pocos ofrecen hosting para aplicaciones de la plataforma Java. No tendremos libertad en la tecnología que usamos ni siquiera en las versiones de la misma.

Amazon EC2, Azure, Google Cloud

Si la aplicación o proyecto crece las nubes de Amazon EC2, Azure y Google Cloud se adaptan a las necesidades que tengamos ahora y, mejor aún, en el futuro. Y si en un futuro es necesario nos proporcionan flexibilidad pudiendo ampliar o reducir los recursos consumidos. Son algo más caras que otras opciones pero por lo que ofrecen son buenas opciones, por ejemplo, Amazon EC2 ofrece varios servicios que enriquecen su oferta de infraestructura como servicio (IaaS, Infrastructure as a service). En estas opciones de IaaS tendremos gran control sobre el software que instalamos, deberemos tener en cuenta que los datos que maneja la aplicación estarán hospedados en los sistemas de la nube elegida.

En estas opciones IaaS tenemos libertad de elegir el lenguaje de programación que queremos emplear para en la aplicación ya sea Java, PHP, Python, C# o Ruby, … también tendremos libertad en la base de datos MySQL, PosgreSQL, Redis, … o en el servidor de aplicaciones o servidor web.

En Amazon EC2 el coste puede variar dependiendo de los recursos que reservemos, para una aplicación mediana una instancia t1.small con 2GiB de memoria reservada previamente y 50 GiB de espacio de disco SSD durante 3 años cuesta unos 332.00€ por reservar la instancia durante ese periodo y unos 2€ adicionales al mes, a esto deberemos sumar el coste del dominio. En la calculadora de Amazon EC2 podemos estimar el coste según los recursos que necesitemos.

Amazon Web Services Microsoft Azure Google Cloud

Linode, Digital Ocean

Algunas opciones totalmente válidas para muchos casos que también nos proporcionan flexibilidad son Linode y Digital Ocean, también entran dentro de la categoría de IaaS. El coste de los planes ofrecidos por cada una de estas es muy sencillo en Linode empieza desde los 10€/mes hasta los 80€/mes y en Digital Ocean desde los 5€/mes pasando por los 80€/mes hasta los 640€/mes. Salvo los planes de volúmenes altos de Digital Ocean los precios son similares a Linode según las características disponibles en ambos.

Estas opciones son totalmente válidas tanto para proyectos personales como un blog con WordPress como para proyectos profesionales. La nube de Amazon ofrece multitud de servicios que en algunos casos son útiles pero si no nos son necesarios las opciones comentadas en este apartado serán suficientes y algo más baratas.

Linode Digital Ocean

Otras

Hay otro tipo de opciones conocidas como plataforma como servicio (PaaS, Platform as a service) como OpenShift, AppFog, Cloud Foundry, Heroku. De entre estas destacaré OpenShift ya que proporciona una capa gratuita con la que tendremos lo que ellos denominan gears, nos ofrecen gratuitamente 3 con 512 MiB de memoria y 1 GiB de espacio en disco. Esta opción es la que he utilizado para construir Blog Stack, en el artículo Arquitectura y hospedaje de Blog Stack detallo técnicamente el proyecto en el que el único coste es el dominio (12€/año).

Notas finales

Las opciones son múltiples para hospedar nuestra aplicación. Si se trata de algo para uso personal una Raspberry Pi pueda valernos, si se trata de una web presencial estática que no requiera programación un proveedor de hosting será suficiente. Si queremos tener flexibilidad y más libertad en las herramientas del proyecto las nubes de Amazon, Azure o Google nos servirán. Si no necesitamos todos los servicios de los anteriores Linode o Digital Ocean ofrecen unos planes de precios muy sencillos y previsibles. Finalmente están los PaaS que permiten desentendernos de la infraestructura y centrarnos en la aplicación.