Aplicaciones y servicios: ¿dónde desplegarlos?
¿Alguna vez te ha pasado que creas una aplicación en tu trabajo o de índole personal y no tienes idea de dónde desplegarla para su uso productivo o de pruebas? Esta nota es para ti.
El despliegue de aplicaciones y servicios es un proceso delicado en el desarrollo de software, ya que permite llevar tu solución de un ambiente de desarrollo hacia uno de pruebas o productivo y que el usuario pueda interactuar con ella.
Por esta razón, presento una serie de alternativas que podrías emplear según tus necesidades, al tiempo que te ayudarán a tomar una dirección concreta y conveniente.
El espacio o entorno de despliegue que soporte tu aplicación podría variar según el lenguaje o tecnología que utilices. Entonces te preguntas: ¿Dónde despliego el aplicativo? ¿Cuáles alternativas tengo?
Quizás podemos responder a la primera interrogante si tomamos en cuenta variables como costo, escalabilidad, mantenimiento, seguridad, tiempo de lanzamiento, soporte o disponibilidad, entre otras. Existen diferentes opciones y debes elegir la que más se adecúe a tus necesidades y a las de tu aplicación.
Alojamiento gestionado
En general, el alojamiento gestionado (ya bastante conocido en nuestra actualidad y entorno) está pensado para aplicaciones más pequeñas y sencillas como un sitio web, blogs, comercio electrónico y sitios web puramente informativos (estáticos).
Aquí comparto algunas plataformas para alojamiento gestionado:
GoDaddy
Empresa estadounidense de las más grandes en temas de alojamiento web con más de 20 millones de usuarios. Algunos de sus servicios incluyen PaaS, CPanel y Servidores virtuales (VPS), entre otros.
HostGator
Fundada en 2002, es una empresa con mucho crecimiento en servicios de alojamiento web, reuniendo más de 2 millones de usuarios. Ofrece servicios tales como alojamiento compartido, servidores virtuales (VPS), servidores dedicados y cloud hosting, así como otros tantos.
DigitalOcean
Es quizás una de las alternativas de alojamiento gestionado más orientadas a tecnologías en la nube, pensada más para desarrolladores que buscan personalizar y hacer más escalables las aplicaciones web con servicios que esta empresa brinda, tales como VPS, alojamiento en nube, espacio de almacenamiento en bloque y de objetos. Ha tenido un crecimiento sostenido desde su fundación en 2011.
Hostinger
Creada en 2004, ofrece una gran gama de servicios orientados al despliegue aplicaciones web tales como alojamiento compartido, servidores virtuales privados (VPS), servidores dedicados o alojamiento en la nube.
Si bien el alojamiento gestionado no es una alternativa tan robusta para aplicaciones en términos de escalabilidad autogestionada, seguridad y otros; es una muy buena opción para desplegar aplicaciones más simples a precios accesibles.
Observa este cuadro comparativo entre los alojadores antes mencionados:
Plataformas como servicio (PAAS)
Brindan una gama completa de herramientas para desarrollar, ejecutar y administrar aplicativos, es decir, el desarrollador se despreocupa (de cierta manera) del despliegue del aplicativo y se enfoca en la programación (codificación) y ejecución del mismo. Igualmente, en esta categoría podrían incluirse los servicios de Google, AWS y Azure, los cuales describiré más adelante.
Dentro de las PAAS más conocidas se puede mencionar:
Heroku
Plataforma popular de paga para el desarrollo y despliegue de aplicaciones que provee:
- Alojamiento de aplicaciones web.
- Gestión de base de datos.
- Escalabilidad.
- Buildpacks (desarrollo ágil).
- Integración con otras herramientas.
OpenShift
Servicio de código abierto ideal para todo tipo de desarrolladores que gustan de herramientas prácticas y poderosas. Entre sus servicios figuran:
- Alojamiento de aplicaciones web.
- Gestión de contenedores.
- Escalabilidad.
- Seguridad.
- Integración continua y entrega continua.
Contenedores
¿Qué pasa cuando quieres aislar el desarrollo y despliegue de tu aplicación por temas de compatibilidad, portabilidad y demás? Para eso están los contenedores.
Una de las ventajas más significativas de los contenedores es su portabilidad, es decir, su alta capacidad de poder mover todo el entorno entre diferentes plataformas. También podemos mencionar el hecho de que las aplicaciones están aisladas de otras, son escalables y eficientes dentro de este tipo de tecnología.
Estos son algunos de los contenedores más populares:
Kubernetes
A diferencia de Docker (lo veremos más adelante), en Kubernetes podemos desplegar proyectos más grandes, sobre todo en contextos empresariales que involucran gran cantidad de aplicaciones. Entre sus servicios están:
- Orquestación de contenedores.
- Escalabilidad.
- Gestión de recursos.
- Despliegue continuo.
- Monitoreo y registro.
Mesos
Servicio de Apache similar a Kubernetes. Aunque posee menor tamaño en cuanto a los servicios que brinda, presenta mayor complejidad de sus servicios ya que posee una arquitectura robusta. Es una opción a Kubernetes que podría servir igualmente para el despliegue. Mesos ofrece:
- Orquestación de contenedores.
- Escalabilidad.
- Gestión de recursos.
LXC/LXD
Tecnología basada en sistemas Linux multiplataforma que ha ganado terreno frente a Kubernetes o Apache Mesos.
Brinda servicios como:
- Ligereza (virtualización ágil).
- Integración con herramientas de gestión.
- Compatibilidad y flexibilidad.
Docker
Una de las más conocidas en el mundo de los contenedores por su gran variedad de servicios y la preferida para despliegue de aplicaciones pequeñas y grandes en entornos de desarrollo. Docker puede ayudar con:
- Creación de contenedores.
- Implementación.
- Gestión de contenedores.
- Escalabilidad y portabilidad.
Nube pública
La nube pública básicamente engloba tres elementos: Infraestructura como servicio (IaaS), Plataforma como servicio (PaaS) y Software como servicio (SaaS). Se refiere a aquellos servicios informáticos que ofrecen los proveedores por medio de internet, disponibles para todo aquel que desee emplearlos.
Estos proveedores varían en cuanto a si son gratuitos o de paga, con base en consumo o tomando en cuenta factores como CPU, almacenamiento y ancho de banda, entre otros.
Podemos decir que, a diferencia de una nube privada (propia de la compañía), las nubes públicas ahorran enormes costes en hardware e infraestructura a las empresas.
Algunas de alternativas ya bastante conocidas son las siguientes:
Amazon Web Services (AWS)
Posee una amplia gama de servicios en la nube y es conocida por su gran capacidad de escalabilidad y flexibilidad de aplicaciones desplegadas por las empresas, lo que permite ahorrar costos y fortalecer la eficiencia.
Uno de los detalles en los cuales se centra este proveedor es en la seguridad y cumplimiento normativo, bastante útil para las empresas con datos sensibles.
Ofrece servicios para desplegar aplicaciones tales como:
- Elastic Compute Cloud EC2.
- Simple Storage Service (S3).
- Relational Database Service (RDS).
- Cloud Front.
- Simple Queue Service (SQS).
- DevPay.
Google Cloud Platform
Proporciona una amplia gama de productos o servicios. Entre ellos sobresalen el almacenamiento de datos, análisis de datos e inteligencia artificial.
Es ideal para todo tipo de empresas sin importar su tamaño, pero que buscan tener grandes cantidades de datos para sus aplicaciones, con capacidad sobrada de analizarlos mediante inteligencia artificial y aprendizaje automático.
Entre sus herramientas o servicios se encuentran:
- Google App Engine.
- Google Compute Engine.
- Cloud Functions.
- Cloud Run.
- Google Kubernetes Engine.
Microsoft Azure
Al igual que las anteriores, proporciona una gran gama de servicios, destacando por su escalabilidad, rendimiento y flexibilidad. No está demás decir que también proporciona herramientas de análisis de datos e inteligencia artificial, así como brindar seguridad a través del cumplimiento de normativas.
Microsoft Azure es recomendable para las empresas con transaccionalidad constante y que manejan datos muy sensibles.
Algunos de sus servicios en aplicaciones son:
- Azure App Service.
- Azure Kubernetes Service (AKS).
- Azure Virtual Machines.
- Azure Functions.
- Azure Container Instances (ACI).
Otras alternativas
Existen otras opciones como servidores físicos (tradicionales) o virtuales, propios del desarrollador o la empresa.
En lo personal, no los recomendaría por temas de costo, mantenimiento, disponibilidad, escalabilidad y, en este caso, logística, ya que deberás hacerlo todo por tu cuenta.
¿Con cuál me quedaría? ¿Cuál elijo?
No hay una opción única o ideal para el despliegue de tu aplicación, eso es claro. Depende del alcance, requerimientos y de cuál sea el objetivo al desplegarla: si es para un entorno de desarrollo, de pruebas o productivo.
Si buscamos un entorno de desarrollo para nuestra aplicación, podríamos optar por herramientas Open Source o gratuitas, pero si piensas en un entorno de pruebas (con el usuario) o productivo, entonces tendrías que evaluar costos y otras variables. En ese sentido, sería necesario analizar los requerimientos funcionales y elegir la alternativa que mejor se acople a la aplicación para desplegarla, aprovechando al máximo el servicio o herramienta seleccionada.
Espero que este artículo haya sido de utilidad y te permita seleccionar lo que más se ajuste a tus proyectos. ¡Hasta pronto!
Referencias
- (n.d.). Microsoft Azure: Servicios de informática en la nube. Retrieved March 25, 2023, from https://azure.microsoft.com/es-es
- AWS | Hospedaje de aplicaciones. (n.d.). Amazon AWS. Retrieved March 16, 2023, from https://aws.amazon.com/es/application-hosting/
- Cloud Run: Pasa del contenedor a la producción en segundos | Cloud Run. (n.d.). Google Cloud. Retrieved March 28, 2023, from https://cloud.google.com/run?hl=es-419
- Conoce más sobre Hostinger. (n.d.). Hostinger. Retrieved March 19, 2023, from https://www.hostinger.mx/sobre-nosotros
- GoDaddy Catalog | Shop Faster With Our Catalog. (n.d.). GoDaddy. Retrieved March 18, 2023, from https://www.godaddy.com/catalog
- Mesos Architecture. (n.d.). Apache Mesos. Retrieved March 27, 2023, from https://mesos.apache.org/documentation/latest/architecture/
- Product Docs Home. (2018, June 26). DigitalOcean Documentation. Retrieved March 27, 2023, from https://docs.digitalocean.com/products/
- ¿Qué es el alojamiento administrado? (n.d.). Website Rating. Retrieved March 08, 2023, from https://www.websiterating.com/es/web-hosting/glossary/what-is-managed-hosting/
- ¿Qué es Kubernetes? (2022, July 17). Kubernetes. Retrieved March 25, 2023, from https://kubernetes.io/es/docs/concepts/overview/what-is-kubernetes/
- What is a Container? (n.d.). Docker. Retrieved March 07, 2023, from https://www.docker.com/resources/what-container/
- What Is Cloud Computing? A Beginner’s Guide. (n.d.). Microsoft Azure. Retrieved March 08, 2023, from https://azure.microsoft.com/en-us/resources/cloud-computing-dictionary/what-is-cloud-computing/
- Why Docker. (n.d.). Docker. Retrieved March 26, 2023, from https://www.docker.com/why-docker/
Listopro Community da la bienvenida a todas las razas, etnias, nacionalidades, credos, géneros, orientaciones, puntos de vista e ideologías, siempre y cuando promuevan la diversidad, la equidad, la inclusión y el crecimiento profesional de los profesionales en tecnología.