Cuando muchos desarrolladores terminan de crear su aplicacion uno de los siguientes puntos a tener en cuenta es donde desplegar o subilar, o como hacer que se mantenga funcionando siempre. Y para esto hoy en dia la solucion mas ampliamente usada es la nube.
Y si por alguna razon hasta este momento muchos de ustedes no tiene la idea de que es la nube, esta se trata basicamente de alquilar servidores, también conocido como computación en la nube, y es uno de los mejores modelos de negocio del siglo XXI, porque casi todas las startups, empresas independientes y grandes corporaciones son muy dependientes a estas soluciones de algun modo.
De hecho puede cueste creer esto, pero el negocio minorista de amazon.com si bien es rentable, no es de los mayores ingresos para Jeff Bezzos. Vender productos baratos de China a los consumidores es un negocio altamente competitivo y con bajos márgenes. Sin embargo, Amazon Inc se vuelve rentable después de que incluyes Amazon Web Services, una fuente increíble de ingresos que solo este año alcanzó márgenes operativos del 30%.
Por lo que tiene sentido que estos servicios de la nube traten de ofrecerte servicios o soluciones para todos los problemas o caracteristicas que tu aplicacion necesite. Y es lo que los convierte tan complicados, porque hoy ya no solo sirven para subir aplicaciones, o alojar archivos, hoy hacen cosas muchas mas complejas desde ejecutar modelos de inteligenci artificial, hasta poder pagar usar computadores cuanticos, cobrandote por todo el consumo que hagas por supuesto.
Aunque esto no siempre fue asi, de hecho Amazon Web Services fue un servicio innovador y fue el servicio original de la nube cuando lanzó S3 (Simple Storage Service) y EC2 (Elastic Computer Cloud) en 2006 y que a partir de alli AWS sigue dominando el mercado al dia de hoy junto con Azure de Microsoft en segundo lugar y Google Cloud Platform en tercero.
Aunque los servicios de la nube no solo se quedaron alli sino que en un punto ofrecian soluciones de todo tipo, como para guardar archivos, para autenticar, para base de datos, streaming de datos, y por supuesto para desplegar aplicaciones, ya sea pagando por un servidor completo o uno que ya despliega el proyecto de una forma facil, y aqui estarian tambien por ejemplo servicios de la nube como Vercel, Railway, render, heroku, netlify, y muchos otros.
Que quizas pudiste haber llegado a pensar que estos tienen sus propios servidores y toda una infraestructura propia, pero en realidad casi todos estan encima de otros servicios de la nube que son mas grandes, pore ejemplo Vercel o Netlify estan encima de AWS.
Lo que significa que cuando usas vercel en realidad estas pagando por los servicios AWS, a un precio mas caro, con la diferencia que Vercel te esta ayudando a que despliegues tu proyecto mucho mas facil con interfaces mas sencillas de usar configuraciones simples de establecer desde su plataforma. es decir te cobra por la experiencia de usuario, y tambien puede que los recursos que consumes como RAM, bandwith y espacio sean mas caros.
Lo increíble es que empresas como vercel, y demas tienen los medios para instalar sus propios servidores, pero están tan atrapados en AWS como nosotros.
Veran muchos proveedores de la nube ofrecen un Nivel Gratuito
Cualquier nueva cuenta que se registre obtiene unos cientos de dólares gratis, pero si eres una startup y tienes el VC (Venture Capital) adecuado detrás de ti, fácilmente puedes obtener $100,000 en créditos gratuitos de AWS. Es un trato increíble para una startup, pero Amazon está jugando a largo plazo. Si tu startup no fracasa, van a ganar 100 veces esa cantidad contigo en el futuro.
Además, los modelos de precios de la nube son bastante complejos de predecir por diseño. Cuanto más opaco sea el modelo de precios, más difícil es determinar las implicaciones reales de costos al cambiar de proveedor.
Es decir Lograr que entres es bastante obvio, pero una vez que estás dentro, también necesitan formas de hacer que sea difícil para ti salir. Asi que una de las maneras en que lo hacen es cobrando tarifas de salida exorbitantes.
La salida es cuando los datos salen de la red, a diferencia de la entrada, cuando los datos ingresan a la nube, lo cual generalmente es gratuito.
Esto significa que si usas un almacenamiento en la nube y subes, digamos, unos pocos petabytes de datos y luego decides que quieres cambiar a otra nube, vas a tener una factura enorme para mover esos datos de una nube a otra. La gente generalmente cambia de nubes para ahorrar dinero, pero cuando tienes en cuenta esa factura por la transferencia de datos, por lo general no vale la pena. Por ejemplo, hay un caso conocido de la empresa 37signals migró fuera de la nube, estaban viendo una factura de $300,000 a $400,000 solo para mover los datos de S3.
Google Cloud eliminó las tarifas de transferencia al migrar desde Google Cloud. Eso es una gran noticia para los desarrolladores porque derriba las barreras del bloqueo de proveedores.
Este movimiento podría estar relacionado con la Ley de Datos de la UE, que busca poner freno a las tarifas de salida de datos en la nube.
Echa un vistazo a esta comparación en las plataformas de implementación:
https://getdeploying.com/reference/data-egress
como Cloudflare, que es totalmente gratuito, mientras que los proveedores de servidores físicos como Linode y Hetzner son muy razonables. Pero a medida que subimos a AWS y Azure, vemos que la asignación gratuita disminuye y las tarifas de salida aumentan. Luego, la situación empeora aún más cuando miramos plataformas como Vercel y Netlify, que básicamente fijan el precio de su ancho de banda a cinco veces lo que AWS les cobra.
Y aqui esta la clave, porque si ellos tambien quisieran ahorrar en costos, usarian sus propios servidores, pero como su infraestructura depende en gran medida de AWS y sus tarifas de salida (Egress) serían gigantescas.
Otro aspecto es que muchas compañías de bases de datos, como MongoDB, te dan la opción de elegir una nube cuando creas una cuenta. Si eres un cliente con un conjunto de datos masivo, va a ser extremadamente costoso usar este servicio si no está en la misma nube, lo que, en esencia, obliga a todas las grandes empresas de SaaS de Big Data a usar la nube.
Pero las tarifas de transferencia de datos son solo una pequeña manera de quedar atrapado. Otro gran problema es la tecnología propietaria. Todas las grandes nubes tienen sus propias bases de datos personalizadas, que son de código cerrado y no es fácil migrarlas a otras plataformas. Incluso si usas una base de datos de código abierto como PostgreSQL o MySQL alojada en servicios de la nube, lo más probable es que uses un servicio completamente gestionado como RDS, en cuyo caso dependes de la nube para escalar la infraestructura y manejar cosas como actualizaciones de seguridad y que sea facil de integrar con otros servicios. Todos los productos funcionan muy bien cuando están en la misma nube, pero la mayoría de las cosas no están estandarizadas para funcionar correctamente fuera de esa nube, y a veces eso puede incluir herramientas de código abierto.
Cuando construyes tu infraestructura alrededor de APIs personalizadas y tecnología propietaria, se vuelve cada vez más difícil simplemente transferir las cosas a otro lugar. Pero nadie quiere ser esclavo de la nube, ¿así que qué hacemos al respecto? Bueno, tenemos tres opciones principales.
La opción uno es no usar la nube en absoluto. En su lugar, compras tu propio servidor, obtienes algunas direcciones IP estáticas y tratas de gestionar todo por ti mismo. Será mucho más caro al principio, mucho más laborioso de mantener, no será tan tolerante a fallos ni seguro, pero podría valer la pena a largo plazo, y para una empresa que quiere mantener sus datos lo mas privado posible, esta es la mjeor opcion probablemente. empresas medianas, como Basecamp, que afirma que ahorrará $7 millones en los próximos 5 años al dejar de usar la nube.
Esta opción no tiene mucho sentido para desarrolladores independientes, es decir, si puedes comprar un servidor propio y tener todas tus aplicaciones de tus clientes como se hacia antiguamente, o quizas tienes un comptuador viejeo que puedes hacer funcionar como servidor, o hasta quizas tienes un raspbery, pero dificilmente tu infraestuructra humilde llegara a tener el grado de calidad y tamaño que la de estos probredores.
La opción dos es usar la nube de manera responsable, y con eso me refiero a usar tecnologías de código abierto que sean portables en gran medida, lo que te permitirá utilizar una estrategia multicloud donde seleccionas los mejores servicios de cada una de las principales nubes, o una estrategia híbrida donde usas tu propio hardware para algunas cosas y la nube para otras.
Aunque estas son consideraciones tan solo para algunos proyectos no para todos, porque otra forma es tambien alojando todos tus servicios en una misma nube, y en algun momneto aplicar a un partner o tratar de contactar directamente a la nube y establecer un trato directo y mas accesible para tu aplicacion sin que los gastos sean excesivos, auqnue este no es el caso para todos.
Pero si es el camino tomar el camino fácil con toda su tecnología propietaria. La nube no está pensada para ser más barata; lo que pagas es la conveniencia. Hardware físico menos dolor equivale a AWS. AWS menos dolor equivale a Vercel. La verdadera pregunta es, ¿cuánto dolor estás dispuesto a tolerar?