Hola, soy Ashher Syed con el equipo de IBM Cloud. Hoy voy a hablar de sin servidor, pero primero, vamos a definir qué significa realmente sin servidor. ¿Significa que no hay servidores involucrados? La respuesta es no, obviamente. Lo que significa es que no eres responsable de manejar y aprovisionar estos servidores, es como si estuviera externalizado al proveedor de la nube, mientras que tú, como desarrollador, te enfocas en escribir código o lógica empresarial. Y nuestros modelos de implementación han evolucionado a lo largo de los años, así que permíteme mostrarte cómo hemos llegado a donde estamos ahora en cuanto a sin servidor y el viaje detrás de eso. Así que, en el eje Y, ves un mayor enfoque empresarial en la lógica, lo que significa que te preocupa más escribir código y menos la infraestructura subyacente. Y en el eje X, ves una implementación de pila decreciente. Lo que significa es que tienes menos control sobre lo que sucede en segundo plano cuando implementas tu código o escribes tu código.
Índice
Del metal desnudo a sin servidor
Primero, empezamos con el metal desnudo. Con el metal desnudo, estabas administrando y configurando estos servidores y el entorno en el que quieres implementar tu código. Esto significa que eras responsable de instalar el sistema operativo, aplicar todos los parches y todo lo demás. Así que lleva tiempo descubrir ese entorno.
A continuación, pasamos a las máquinas virtuales. Optimizadas en recursos en comparación con el metal desnudo, donde gestionabas mejor los tiempos de inactividad. Pero al mismo tiempo, todavía eras responsable de configurar tu entorno, nuevamente, instalar el sistema operativo, aplicar parches y todo lo demás.
En el camino, llegamos a los contenedores. En realidad, Docker popularizó esta idea. Básicamente, lo que estás haciendo es empaquetar tu código de implementación, el código de la aplicación y todas sus dependencias en un solo contenedor que puede ejecutarse en cualquier infraestructura subyacente. Simplificó muchas cosas desde el punto de vista de la implementación, pero al mismo tiempo, algunos desafíos con los contenedores podrían ser la gestión cuando escalas tus aplicaciones. En cualquier momento dado, tu código de la aplicación se está ejecutando al menos en un servidor, por lo que todavía tienes algo de tiempo de inactividad.
Luego pasamos a sin servidor, que es donde estamos ahora. Y en este modelo, como dije antes, en este modelo te abstraes de toda la infraestructura subyacente y te enfocas principalmente en escribir la lógica empresarial.
Cómo funciona sin servidor
Veamos cómo funciona realmente sin servidor. Todos los principales proveedores de la nube tienen esta opción de Funciones como Servicio (FaaS). Esencialmente, es una plataforma de computación para sin servidor donde ejecutas tus funciones: funciones que son, nuevamente, una unidad única de implementación de tu código, podrías considerarlo como el procesamiento de archivos como un ejemplo, que se ejecutan mediante eventos que podríamos llamar eventos. Los eventos pueden ser cualquier cosa, piénsalo como en el caso de un usuario cuando hace clic en un botón, eso crea un evento que llama a una función y luego se ejecuta tu código. Y en este entorno sin servidor de Funciones como Servicio, tienes una arquitectura orientada a eventos que es, nuevamente, un ecosistema proporcionado por el proveedor de la nube que tiene diferentes servicios en ejecución como base de datos, IoT, según cómo quieras construir tu aplicación. Entonces, todos ellos emiten esos eventos y construyes tu aplicación, buscas esos eventos y los programas en tu código. Y al igual que cualquier otra plataforma, algunos de los inconvenientes de sin servidor pueden ser los tiempos de espera, ya sabes, estos son contenedores sin estado que se inician durante un tiempo corto y luego se eliminan. Así que, si tu código de ejecución no se termina en ese tiempo, tu aplicación podría fallar. Y también puedes tener problemas de latencia dependiendo de qué tan sensible al tiempo desees que sea tu aplicación. Permíteme ilustrarlo con un ejemplo aquí.
Por ejemplo, un usuario viene aquí, en el lado del cliente, y sube una imagen y presiona un botón para enviarla, eso crea un evento. Entonces, un evento llama a una función o invoca una función que cambia el tamaño de esa imagen y la almacena en el almacenamiento. Esto es solo un ejemplo muy simplificado de cómo funciona Funciones como Servicio y cómo construyes tus aplicaciones en ese entorno sin servidor.
Beneficios de sin servidor
Veamos algunos de los beneficios. Solo pagas por la ejecución. Lo que significa que no hay tiempo de inactividad. Así que, a diferencia de los casos anteriores en los que siempre mantenías una capacidad o aprovisionabas para diferentes escenarios para que siempre hubiera algo en ejecución, aquí, cuando tu función está en ejecución, ese es el único momento por el que estás pagando y es muy eficiente en costos, y las funciones generalmente se ejecutan en 100 milisegundos.
Escalable de forma automática. Esa es una responsabilidad asumida nuevamente por el proveedor de la nube. Cuando diseñas tu aplicación, no estás aprovisionando nada de eso, tienes menos preocupación por los recursos.
Tiempo más rápido para llegar al mercado. Nuevamente, dado que no eres responsable de la gestión y implementación de ninguna de las infraestructuras subyacentes, puedes construir tus aplicaciones más rápido, resolver problemas de los clientes y ponerlos en el mercado.
Entorno políglota. Al igual que otros, es decir, Funciones como Servicio te permite escribir en cualquier lenguaje y marco de trabajo con el que te sientas cómodo. Muchos proveedores de la nube admiten múltiples lenguajes, por lo que puede ser muy útil en casos en los que te sientas cómodo con un lenguaje y quieras escribir en ese. Así que eso está perfectamente bien en el entorno sin servidor.
Por último, pero no menos importante, todas las aplicaciones sin servidor son altamente disponibles. Lo que significa que el proveedor de la nube se encarga de la tolerancia a fallos y las RZM (Regiones de Múltiples Zonas) que construyen para asegurarse de que tu aplicación siempre esté en funcionamiento. Y todos los servicios que estás utilizando en la arquitectura orientada a eventos también son tolerantes a fallas, por lo que tu aplicación en general siempre está altamente disponible.
Tabla de resumen
Modelo de Implementación | Cantidad de Control | Preocupación por la infraestructura |
---|---|---|
Bare Metal (metal desnudo) | Alta | Completa |
Máquinas Virtuales | Media | Parcial |
Contenedores | Baja | Mínima |
Sin Servidor | Mínima | Ninguna |
Preguntas frecuentes
A continuación, responderé algunas preguntas frecuentes sobre el modelo sin servidor:
1. ¿Cuánto cuesta utilizar el modelo sin servidor?
El costo del modelo sin servidor se basa en la ejecución de las funciones, por lo que solo pagas por el tiempo que tu función está en ejecución.
2. ¿Cuáles son algunos de los desafíos del modelo sin servidor?
Algunos desafíos del modelo sin servidor pueden ser los tiempos de espera y las posibles latencias, ya que los contenedores sin estado pueden tener un tiempo de vida limitado y las funciones deben ejecutarse dentro de ese tiempo.
3. ¿Puedo utilizar cualquier lenguaje de programación con el modelo sin servidor?
Sí, la mayoría de los proveedores de la nube admiten múltiples lenguajes de programación en el modelo sin servidor, lo que te permite utilizar el lenguaje con el que te sientas más cómodo.
Gracias por leer este artículo. Si tienes alguna pregunta, déjanos un comentario a continuación. No olvides seguirnos para ver más contenido relacionado en el futuro. Recuerda que puedes comenzar en la nube de forma gratuita registrándote en una cuenta gratuita de IBM Cloud.
Fuentes:
– Información proporcionada por Ashher Syed, equipo de IBM Cloud.
– Experiencia y conocimiento de ciberseguridad.
¿Te ha resultado útil??
0 / 0
Hola, somos Mila Jiménez y César Sánchez. Dos apasionados de la ciberseguridad con muchos años de experiencia. Hemos trabajado en muchas empresas del mundo TI y ahora nos apetece compartir nuestro conocimiento con cualquiera que lo necesite.
¡Si te gusta nuestro contenido puedes invitarnos a un café AQUÍ!