Costo y eficiencia entre iFaaS y FaaS (AWS) en la creación de aplicaciones sin servidor

La arquitectura sin servidor es un diseño de sistema poderoso que permite a los desarrolladores crear y ejecutar código sin administrar servidores y sin pagar por servicios en la nube inactivos.
AWS es uno de los mayores proveedores de servicios en la nube, donde puede crear un sólido sistema sin servidor. Sin embargo, hay tres perspectivas a continuación que nos gustaría mencionar sobre las diferencias entre Lolo Code (función como servicio de integración) y AWS (función como servicio) en la creación de aplicaciones sin servidor.
- Costo
- Rendimiento
- Eficiencia
Precios de AWS
AWS le ofrece un enfoque de pago por uso para la fijación de precios. En otras palabras, pagará por cuánto ha utilizado los recursos de AWS.
Ejemplo de precios de AWS
Se utiliza una API en una aplicación web sin servidor que invoca a Lambda para devolver contenido de página web dinámico. El sitio recibe 10.000 cargas de página por minuto. Cada solicitud de API es de 12 KB y la respuesta es de 46 KB.
Esto supondrá un total de 432 millones de solicitudes al mes.
Costos mensuales = $418,8 ($0,97 por millón) * en costos de Amazon API Gateway (sin incluir Lambda ni DynamoDB)
Precio del código Lolo
Lolo Code también le ofrece un modelo de pago por uso, pero es más sencillo: paga por la cantidad de eventos que su aplicación necesita procesar simultáneamente en lugar del total de eventos.
Puedes suscribirte a 1 Aplicación con 1 LCU (o Réplica) con 256 mb de memoria y 0,125 cores (CPU) desde 9 euros al mes. El nivel gratuito incluye dos aplicaciones con 1 LCU cada una, pero requiere que interactúes con la aplicación una vez a la semana para que siga funcionando. Si desea aumentar sus réplicas para una aplicación de nivel gratuito, el precio comienza en 9 € cada una.
Ejemplo de precio Código Lolo
Tomando el mismo ejemplo anterior para API Gateway, hicimos algunos cálculos.
Si el sitio recibe 10 000 cargas de página por minuto y cada solicitud de API es de 12 KB y la respuesta es de 46 KB, necesitamos procesar 10 000 solicitudes por minuto para una aplicación Lolo. Esto requiere 0.131 (núcleos) y 85 mb de memoria. En consecuencia, esto requiere dos réplicas a 9 € cada una, pero aún tendremos espacio para más solicitudes dentro de esa aplicación. El resultado es
Costes mensuales = 18 € de coste mensual para la aplicación Lolo.
Lolo podría verse como una combinación de AWS Lambda y API Gateway. También puede usar la tienda estatal horneada de Lolo para almacenar el contenido dinámico de su página web. De esta manera no habría costes ocultos. El total que pagarías sería simplemente 18 € al mes.
Rendimiento: diferencias entre iFaaS y FaaS
AWS puede ofrecerle todo lo que necesita y puede diseñar una aplicación a gran escala con redundancia, escalabilidad y alta disponibilidad. Por otro lado, debe conocer bien los sistemas de red y estar familiarizado con la arquitectura de AWS para desbloquear su potencial. Serverless también tiene sus desventajas. Uno de ellos es el notorio “arranque en frío”.
Para ilustrar, su aplicación esperará un período determinado hasta que un contenedor esté listo para ejecutar el código. Esta solicitud tarda más en procesarse porque una aplicación sin servidor necesita activar la función (es decir, descargar código, biblioteca, módulos, etc. e inicializar un entorno para ejecutar el código). Este problema aparece en cualquier aplicación sin servidor, ya sea en Lolo Code o AWS.
AWS
AWS ha mejorado notoriamente desde que las flotas de Lambda migraron a la tecnología Firecracker en 2018. Sin embargo, dado que la función aún debe funcionar, prevalecerán los arranques en frío.
En AWS, puede activar Lambda con una cantidad mínima de contenedores. Pero tendrá que pagar un costo adicional para ejecutarlo continuamente.
Hicimos que un usuario hiciera una prueba * en los inicios retrasados de AWS Lambda este verano (usando AWS EU). El resultado del experimento está abajo.
+-----------+--------------------
| time | ms
+-----------+--------------------
| 1 min | 180 ms
| 15 min | 750 ms
| 3h | 1467 ms
| 10h | 2060 ms
+-----------+--------------------
Las aplicaciones en Lolo Code también tienen el problema de "Inicio en frío", pero su aplicación Lolo sigue funcionando hasta que la detiene. Es decir, dado que Lolo Code funciona con contenedores, su aplicación técnicamente siempre estará ejecutándose hasta que la detenga. Esencialmente, no debería tener que preocuparse por los arranques en frío.
Sin embargo, el usuario de arriba que hizo la prueba en AWS hizo exactamente la misma prueba en Lolo Code. * Sus resultados se muestran a continuación.
+-----------+--------------------
| time | ms
+-----------+--------------------
| 1 min | 172 ms
| 15 min | 210 ms
| 3h | 602 ms
| 10h | 890 ms
+-----------+--------------------
Otra cosa a considerar es que si su secuencia de comandos se ejecuta durante demasiado tiempo, es posible que AWS no sea la mejor opción. El tiempo de espera máximo de AWS Lambda es de 900 segundos (15 minutos), mientras que Lolo no tiene un tiempo de espera máximo.
Eficiencia: ¿Cómo construir y administrar una aplicación sin servidor?
La creación de API tanto en AWS como en Lolo Code es sencilla. Sin embargo, hay diferencia.
AWS
En AWS, crea su función Lambda y luego la conecta con otro servicio, API Gateway, que actuará como su disparador. Aquí tienes una función anónima que se activará cuando suceda algo. Este es el ideal de FaaS, una función anónima que solo se activa cuando ocurre un evento.
Como la función no tiene estado, deberá obtener datos en otro lugar; en este caso, puede usar AWS DynamoDB para almacenar y obtener datos.

Esto parece un diseño escalable y robusto, sin embargo, debe considerar algunos factores importantes:
- ¿Cómo gestionar los cambios en el código del software?
- ¿Cómo implementar o personalizar su aplicación rápidamente?
- ¿Dónde comenzar a verificar los servicios en caso de problemas de infraestructura?
Vea un tutorial completo sobre cómo crear una API HTTP con Lambda, API Gateway y DynamoDB aquí .
código lolo
Con Lolo Code, puede agregar un activador HTTP y luego usar el almacén de estado integrado para una base de datos. Puede agregar una nueva función sin procesar para que actúe como su lambda (para seguir el caso de uso exacto de arriba).
Su aplicación Lolo puede verse así.

Usted decidirá qué hay en los bloques de código simplemente cambiando su código (NodeJS) y luego renombrándolo.
Además, Lolo Code ofrece funciones de biblioteca que puede copiar y usar funciones de plantilla existentes y crear sus propias plantillas. Para el caso de la API, podemos usar la función Lolo/CRUD API v3 para crear rápidamente una API CRUD. Esto será más rápido que configurar el nuestro desde cero.

No tienes que cambiar demasiadas cosas en diferentes lugares. Con Lolo Code, todo tu trabajo está en un solo lugar.
Una vez que guarda y ejecuta su aplicación, no tiene que preocuparse por mantener o aprovisionar sus propios servidores para que siga funcionando (es decir, es completamente "sin servidor"). A menos que decida usar un tiempo de ejecución privado en su propia cuenta de nube pública o centro de datos privado. Consulte la documentación de Lolo runtime-d aquí . Runtime-d es un binario independiente que convierte cualquier computadora portátil o servidor Linux en un tiempo de ejecución de Lolo.
Resumen
AWS es una plataforma en la nube muy extendida que ofrece servicios completos desde centros de datos de todo el mundo.
Con AWS, puede hacer muchas cosas, pero también requiere un esfuerzo y tiempo decentes para convertir su idea en una aplicación e implementarla en AWS. Lolo Code lo ayudará a acelerar su desarrollo y mantenerlo funcionando por menos. Aunque Lolo Code usa la nube de AWS para implementar aplicaciones, también le ofrece la posibilidad de usar sus propios tiempos de ejecución, lo que lo hace independiente de la nube.
❤️ Lolo