Autores:
(1) Rabimba Karanjai, Departamento de Ciencias de la Computación, Universidad de Houston ([email protected]);
(2) Lei Xu, Departamento de Ciencias de la Computación, Universidad Estatal de Kent;
(3) Lin Chen, Departamento de Ciencias de la Computación, Universidad de Texas Texh;
(4) Nour Diallo, Departamento de Ciencias de la Computación, Universidad de Houston;
(5) Weidong Shi, Departamento de Ciencias de la Computación, Universidad de Houston.
Tabla de enlaces
Resumen y 1 Introducción
2 antecedentes y motivación
2.1 Infraestructura informática descentralizada y nube
2.2 Ventajas de defaas
2.3 Requisitos del sistema
3 Descripción general de Defaas
4 Diseño detallado de defaas y 4.1 programación descentralizada y equilibrio de carga
4.2 Distribución de eventos descentralizados
4.3 Registro de API y control de acceso
4.4 Soporte OAuth2.0
4.5 Registro y facturación y 4.6 Gestión de fideicomiso
4.7 Soporte de la malla de servicio múltiple
5 Implementación y evaluación
5.1 Implementaciones
5.2 Experimentos
5.3 Evaluación
6 Trabajo relacionado
7 conclusiones y referencias
ABSTRACTO
Function-as-a-Service (FAAS) es una nueva forma de calcular en la nube que simplifica aún más la carga de administración del usuario y permite al usuario centrarse en su negocio principal. La mayoría de los sistemas FAA existentes están centralizados, es decir, la infraestructura es propiedad y administrada por un solo proveedor de servicios en la nube. Este personaje trae algunas limitaciones. Por ejemplo, un usuario final estará vinculado con un proveedor de servicios en la nube específico y existe el riesgo de un solo punto de falla. Para mitigar estas limitaciones, una idea natural es construir un sistema FAAS descentralizado. En este documento, proponemos DeFaaS, un sistema novedoso que utiliza tecnología blockchain y gestión descentralizada de API para construir un sistema FAAS descentralizado, que permite una mayor escalabilidad, flexibilidad, mejor seguridad y confiabilidad. Específicamente, DeFaaS utiliza una cadena de bloques para crear un registro descentralizado de funciones disponibles (servicios) y administrar su ejecución. Una aplicación interactúa con la cadena de bloques para descubrir e invocar funciones de forma segura y transparente. Además de proporcionar una plataforma confiable y escalable para FAA descentralizados, DeFaaS puede admitir otros escenarios de computación distribuidos, como DAPPS, computación voluntaria y malla de servicio múltiple. En general, nuestro sistema propuesto representa un avance significativo en el campo de la computación descentralizada y tiene el potencial de permitir una amplia gama de nuevas aplicaciones y casos de uso emocionantes.
1 Introducción
Cloud Computing ofrece un amplio rango de beneficios que incluyen alta escalabilidad, fácil gestión y flexibilidad. Function-ASA-Service (FAAS) es una nueva forma de ofrecer capacidad de computación en la nube y atrae mucha atención. En comparación con las formas anteriores de entregar servicios de cálculo (por ejemplo, máquina virtual y contenedor), FAAS simplifica aún más el trabajo de administración y permite al usuario centrarse en su propio negocio y el usuario solo necesita pagar cuando se ejecuta una función. Específicamente, un usuario solo necesita proporcionar un conjunto de código de funciones al proveedor de servicios en la nube, y luego llamar a estas funciones cuando sea necesario. Todos los trabajos de gestión relacionados (por ejemplo, implementación, ejecución y escalamiento hacia arriba/hacia abajo) se transfieren al proveedor de servicios en la nube.
La mayoría de los sistemas FAA existentes están centralizados, es decir, un FAAS es propiedad y administrado por un solo proveedor de servicios en la nube. Esta arquitectura tiene varias limitaciones: (i) vinculante con un solo proveedor de servicios. Cuando un usuario selecciona una plataforma en la nube y envía todas sus funciones al código a la plataforma FAAS correspondiente, es difícil para el usuario migrar a otro proveedor de FAAS, incluso si el nuevo proveedor ofrece un mejor rendimiento/precio. (ii) punto potencial de falla. Aunque la nube es una infraestructura distribuida y la disponibilidad suele ser una parte importante de un SLA típico, no es raro que un centro de datos en la nube encuentre interrupciones por varias razones. (iii) Incompatibilidad con aplicaciones descentralizadas emergentes. Web3 y Dapp se están volviendo más populares y también se benefician del modelo FAAS. Sin embargo, la naturaleza de Web3 y DAPP no es automáticamente compatible con el modelo de nube única.
Para mitigar estas limitaciones y cosechar las ventajas de los FAA, se han realizado algunos trabajos en el diseño de FAA de múltiples nubes [Zhao et al.(2022), Baarzi et al.(2021)]que permite que una aplicación de usuario utilice FAA de múltiples proveedores de servicios en la nube. Sin embargo, todos estos trabajos requieren un componente centralizado para coordinar la interacción entre la aplicación del usuario y los sistemas FAA. Por lo tanto, solo abordan el problema vinculante, pero no pueden contribuir mucho para superar las otras dos limitaciones.
En este trabajo, proponemos una infraestructura descentralizada transformadora y primero de su tipo descentralizada para FAA. La infraestructura es única en muchos aspectos, incluido su soporte para aplicaciones DAPP/Web3 para aprovechar los recursos en la nube, su habilitación de FAA de múltiples nubes para desarrolladores DAPP/Web3 con un entorno descentralizado, su pila de protocolo completa basada en estándares abiertos, y su adhesión al principio de descentralización sin depender de ningún componente centralizado. Además, en este documento, proporcionamos detalles de un diseño de concreto utilizando Hyperledger BESU y FAA abiertos. Aunque apuntamos a los centros de datos de múltiples nubes en este documento, el marco puede extenderse para abarcar recursos informáticos administrados y tratados de voluntariado, un tema de investigación futura.
Esta nueva infraestructura permitirá a los desarrolladores de Web3 y DAPP aprovechar la escalabilidad y la flexibilidad de la computación en la nube sin sacrificar la naturaleza descentralizada de sus aplicaciones. Para resumir, este documento hace las siguientes contribuciones principales:
• Proponemos la arquitectura de gestión múltiple basada en blockchain para admitir la función descentralizada como servicio, lo cual es crucial para la implementación de aplicaciones DAPPS y Web3 en entornos de múltiples nubes;
• Se proporcionan detalles del diseño de componentes críticos y la forma en que interactúan entre sí;
• Realizamos prototipos y experimentos preliminares para demostrar la viabilidad y las ventajas del sistema propuesto.