Ventajas de usar arquitecturas Serverless




Muchas compañías están ganando muchos beneficios a la hora de tener sus aplicaciones en la nubes públicas, incluidos lel ahorro de costo en facturación gracias al modelo (pay as you go) pago por lo que usas y agilidad mejorada a través del uso (en demanda) de recursos IT. Hay estudios que han demostrado que existen una migraciones de las aplicaciones hacia computación en la nube, bajando el costo en infraestructura y mejorando el tiempo de salida al mercado.

Comparando las "on-primises" (servidores local ) y las nubes privadas, la nubes públicas (AWS, GPC,DOP) hace significativamente más simple la construcción, despliegue y la administración de flotas o granjas de servidores, mucho mejora aun facilita la administraciones de las aplicaciones que corren en esos servidores. las compañías hoy en día tiene una opción más allá de los clásicos servidores o arquitectura de máquinas virtuales VMA para aprovechar como es la nube pública.

Aunque la nube elimina la necesidad a las compañías de comprar y mantener su propio hardware, cualquier arquitectura basada en servidores aún requiere de diseños escalables y confiables. Además las empresas necesitan ellos mismos asumir la gestión de la aplicación sobre los servidores y también de todo los parches y seguridad a nivel de sistemas operativos y aplicaciones de tercero que soporte su propias aplicación. Y  por si fuera poco también deben escalar sus servidores para darse cuenta de la carga máxima para luego intentar escalar hacia abajo lo más posible para reducir los costos, todo esto mientras se protege la experiencia del usuario final y la integridad de los sistemas internos.

Los servidores locales y las nubes privadas siempre son adquiridos con unas sobre estimación para satisfacer posibles demandas, sin embargo los servidores inactivos e infrautilizados genera costos que al final es dinero derrochado. en la actualidad se estima que hasta un 85%  de los servidores tiene un capacidad infrautilizada.

Los servicios de cómputos llamados "serverless" son diseñados para abordar estos desafíos al ofrecer a las empresas diferentes caminos para el diseño de aplicaciones, con un costo más bajo y con un tiempo de comercialización más rápido, serverless elimina la complejidad de administrar servidores, y también introduce modelos de facturación ajustados al uso de los recursos donde no hay costo por la capacidad de computo inactivo, la adopción de servicios serverless da dos ventajas muy grandes:

El problema de servidores inactivos deja de existir con sus costos de recursos y tiempo.

El problema del mantenimiento de servidores para que la aplicación esté operativa 24/7 también deja de existir, no se necesita personal que esté pendientes de los servidores, ni gente especializada que mantenga actualizado  los sistemas operativos o aplicaciones de terceros asociados a la aplicación principal, ni mucho menos sistemas de escalamiento y aprovisionamiento de mas hardware para atender las demandas de días especiales.

Por todo lo antes mencionado se puede decir que adoptar estrategias que usen servicios "serverless" da una ventaja comercial importante frente a los competidores al reducir costos, dar mejor respuesta antes la demanda de los cliente con escalamiento automático, quitar trabajo a los especialistas por no tener que administrar los servidores, y  mejorar el tiempo de comercialización.


Características de las arquitecturas serverless:


La arquitectura sin servidor tiene una baja barrera de entrada;  Es fácil seguir un tutorial para comenzar. Aunque la curva de aprendizaje para un desarrollador es baja para empezar, se volverá más pronunciada a medida que las cosas se vuelvan más complejas. Cosas como infraestructura como código, registro y monitoreo siguen siendo esenciales en un mundo sin servidor.

En un mundo sin servidor, no tienes host; No hay servidores para trabajar. Una ventaja que esto brinda es la sobrecarga operativa significativamente menor: no hay servidores para actualizar y no hay parches de seguridad para aplicar. Pero también significa que se deben monitorear diferentes tipos de métricas en una aplicación y, por lo tanto, es necesario volver a aprender cómo ajustar la arquitectura.

Las funciones como servicio (FaaS) son efímeras, lo que significa que sin servidor no tienen estado . Cuando el estado no se almacena en las aplicaciones, el escalado horizontal es muy fácil: solo tiene que girar más instancias. Ser apátrida también significa que se reduce enormemente el margen de error. Pero ser apátrida también significa que las técnicas que requieren estado no pueden usarse en el desarrollo de aplicaciones; por ejemplo, no es posible usar sesiones HTTP.

Estar sin host también significa que la arquitectura es elástica . Esto significa que no es necesario el manejo manual de los recursos y que muchos desafíos en la asignación de recursos desaparecen. Comúnmente, también significa pagar solo por los recursos que realmente se utilizan. Sin embargo, cuando se integra con sistemas heredados, esta elasticidad puede ser un problema, la carga puede tener que limitarse para evitar que se rompa debido a una sobrecarga.

Una arquitectura sin servidor donde muchos componentes están integrados a través de la red se distribuye de manera predeterminada. La persistencia se realiza en Backend as a Service (BaaS), el código se ejecuta en múltiples funciones, otros servicios se utilizan para autentificar y colas, etc. La distribución también brinda alta disponibilidad a la arquitectura. Si la zona de disponibilidad actual enfrenta problemas, la arquitectura puede utilizar otra zona que esté disponible. Una compensación con una aplicación distribuida es la consistencia. Lectura después de escritura y coherencia eventual son dos ejemplos de comportamiento en BaaS que deben tenerse en cuenta al actualizar y leer datos.

Una arquitectura sin servidor está impulsada por eventos debido a la utilización de BaaS, que a menudo admite eventos, esto no significa que una arquitectura impulsada por eventos deba ser totalmente adoptada, aunque cree que estar impulsado por eventos trae muchos beneficios. Un ejemplo es el bajo nivel de acoplamiento entre componentes. Una desventaja es el riesgo de perder la visión holística de un sistema que puede dificultar la resolución de problemas.


La arquitectura sin servidor trae un interesante cambio de paradigma. Mejora muchos aspectos del desarrollo de software, pero también presenta algunos desafíos nuevos con los que los desarrolladores y los equipos deben sentirse cómodos.

Comentarios

Entradas populares de este blog

AWS SAM y AWS Lambda docker Container Image tutorial con PYTHON USANDO A...

Solucion: Docker Error: No such container:

Los unicas 4 herramientas que necesitas para volverte un master en Devops