Pirobits
  

Serverless vs K8S vs VPS ¿Cuál es la mejor opción para desplegar tu proyecto?

alberto avatar
infrastructure
Alberto Sola · 5/27/2024 · 4 min

Desplegar un proyecto puede parecer complicado, pero realmente es la parte más fácil y divertida. Profesionalmente me dedico a gestionar infraestructura, por lo que te quiero enseñar qué opciones existen y por qué lo mejor es elegir un VPS.

Hoy en día existen multitud de plataformas que te facilitan el despliegue de tu proyecto, y en general son muy cómodas ya que te evitan tener que saber ni configurar infraestructura. Por otro lado tienen algunas desventajas como puede ser el coste, que en general suele ser elevado si tu proyecto empieza a tener bastante tráfico, o el encontrarte problemas que no puedes solucionar ya que no tienes acceso a la infraestructura. Al final es algo que tienes que valorar tú en base a tus necesidades y conocimientos.

Si lo que necesitas es probar un prototipo de tu proyecto rápidamente y ver si funciona o no, entonces te recomiendo que empieces utilizando alguna de estas plataformas porque te permiten poder probar tu proyecto en unos pocos minutos. En caso contrario, te recomiendo probar a configurar un servidor VPS, ya que no es tan difícil y sale mucho más rentable.

En general he observado que, salvo a algunas personas a los que nos gusta aprender y experimentar con los servidores, a muchos desarrolladores en general parece que no suele interesarle el mundo de la infraestructura. Aquí te lanzo una pregunta, ¿te gusta configurar infraestructura? Te animo a responder el siguiente formulario para conocer tu experiencia.

Si quieres desplegar un proyecto nuevo en el que estás trabajando, yo suelo contemplar las siguientes cuatro opciones. Voy a explicar cada una y brevemente explicar los pros y los contras.

Serverless

Diría que esta es la opción de moda actual. Hay múltiples servicios cloud como AWS Lambda y Cloudflare Workers sobre los que otras empresas han construido sus servicios, por ejemplo Vercel que parece funcionar con AWS Lambda. Estos servicios me encantan para solucionar casos de uso concretos, pero no los recomendaría para uso base debido a la complejidad asociada o los costes por volumen, ya que pueden sorprenderte.

Servicios Cloud

Los servicios cloud me parecen una excelente opción porque te permiten gestionar la infraestructura, tener copias de seguridad, mejorar la escalabilidad... lo que quieras cuando lo necesites a golpe de click y sin tener que preocuparte. El problema principal es la diferencia de coste con otros servicios. Si de verdad te aportan valor y te salen rentables, úsalos, y si no, sigue leyendo. Aquí mis opciones suelen ser Amazon Web Services y Google Cloud Platform. También hay otra empresa que me resulta interesante, que no he probado aún: fly.io.

Kubernetes

Es un servicio perfecto para equipos grandes que gestionan múltiples proyectos. Al final un entorno con contenedores y en cloud te garantiza estabilidad, abstrae partes de la infraestructura pero tiene un gran coste en cuanto gestión y conocimientos. A mi me encanta kubernetes, lo uso en mi día a día, pero si pudiese simplificar el stack iría a un entorno de VPS para reducir la complejidad de manejar un cluster cloud con autoescalado, ya que son muchas piezas móviles las que involucra: actualizaciones de versiones continuas, métricas de contenedores (hpa, keda), métricas de nodos (karpenter), grupos de nodos, manifiestos... entre otras muchas cosas.

VPS

Está es la opción más simple, más asequible y más práctica. Es la que llevo utilizando para mis proyectos personales estos últimos años. Configuras un servidor una única vez, despliegas tu proyecto, automatizas el proceso y voilà. Únicamente tendrás que, cada cierto tiempo, actualizar el servidor y hacer algún ajuste cuando lo necesites. Igual que si el tráfico de tu aplicación escala, siempre puedes escalarlo verticalmente o añadir redundancia con un balaneador y un par de máquinas. Es cierto que esta opción requiere algunos conocimientos sobre gestión de servidores y que no todo el mundo puede tener el interés o el tiempo de gestionarlo.

Aquí me gustaría conocer cuál es tu opinión frente a este tema, ¿qué opción elegirías y por qué? Como mencioné anteriormente, he creado un breve formulario donde puedes expresarme tu opinión del tema.

Como siempre digo tus necesidades o las de tu empresa dependen de multitud de factores que, posiblemente no sean triviales y con un único post sea difícil encontrar respuestas, pero sí que siempre insistiré en lo mismo. Cada vez me gustan más las cosas simples, eficientes y que son fáciles de gestionar de forma que pueda iterar rápido. Si tengo que dedicar mi tiempo a gestionar un clúster de kubernetes, y estoy yo sólo, posiblemente esté haciendo algo mal ya que mi tiempo debería estar enfocado en realizar otras operaciones.

Si te ha resultado útil este artículo agradecería si te suscribes a mi newsletter. Recibirás contenido exclusivo de calidad y también me ayudarás enormemente. Cada suscripción apoya el trabajo que realizo y me permite conocer mejor los temas que te interesan, de forma que puedo mejorar los conocimientos que comparto contigo.


Posts recientes