Un rápido motor de microservicios Node.js para ejecutar funciones en la nube con baja latencia. Panel de administración incluido.
Explora los documentos »
Informar error · Solicitar función
Boltz Engine es un motor de microservicios Node.js rápido y agrupado, que inicia instancias desde un arranque en frío en 100 ms y las interacciones posteriores con funciones caen por debajo de los 10 ms en condiciones normales. Las instancias de VM V8 se utilizan para separar contextos y permitirle diseñar su código como microservicios autohospedados interoperables con servicios basados en la nube. Multiproceso significa que sus instancias se escalan en todo el clúster en todos los núcleos de su CPU. Una API de administración le permite administrar Boltz desde la interfaz de administración incluida.
Descargue desde la página de lanzamientos y luego ejecute el archivo start.sh o start.bat para instalar y ejecutar Boltz.
O extraiga de bsnk/boltz-engine
en Docker Hub y configure los siguientes pasos:
Cree un config.json y secrets.json; puede descargarlos desde una versión en la página de versiones.
Colócalos en una carpeta, aquí estaría boltz-data
Ejecute la imagen de la ventana acoplable con
$ docker run --publish 5000:5000 --publish 8000:8000 -v /boltz-data:/boltz -v /boltz-data:/secrets/ -v /boltz-data:/database -v /boltz-data/sandbox:/sandbox/ bsnk/boltz-engine:latest
Puede cambiar estas carpetas para que se ajusten a sus gustos y personalizar los puertos que utiliza en config.json y en el comando de inicio. Probablemente también deberías usar una versión de Boltz como 1.1.0
en lugar de la más reciente para asegurarte de que no aparezcan errores en producción. /boltz es donde buscará el archivo config.json dentro del contenedor, y el resto se puede personalizar según la documentación.
Boltz le permite crear instancias de VM para recibir y procesar solicitudes web y volúmenes para almacenar código y configuraciones, y le permite guardar datos en un disco virtual temporalmente. Todos los cambios se borran cuando es necesario recargar la instancia o el volumen.
Los paquetes se cargan desde package.json y se instalan en carpetas protegidas en el sistema de archivos del host, y se comparten con cualquier instancia que utilice el mismo volumen en el mismo proceso.
El uso recomendado de Boltz Engine es para proyectos de microservicios simples que luego se pueden escalar con un producto de nube adecuado. Tiene una curva de aprendizaje y gastos generales bajos, lo que le permite concentrarse en la funcionalidad de su proyecto y no configurarlo para que se ejecute en una plataforma en la nube cuando es lo suficientemente liviano para manejarlo localmente. También es súper rápido y brinda resultados en su máquina local en menos de 10 ms, en lugar de miles de milisegundos en las funciones normales de la nube. Además, es fácil de usar con la interfaz de administración incluida.
El motor Boltz tiene algunos problemas, que incluyen:
Tamaño de instalación de paquete grande debido a la implementación de entornos sandbox de node_modules de volumen individual.
La API de administración utiliza autenticación básica, lo que significa que debe reiniciar el servidor para cambiar la contraseña.
Al utilizar una instancia de GCP Cloud Shell, se asignó a una función la tarea de repetir el parámetro de consulta name
con un signo de exclamación y se desempeñó de la siguiente manera:
Usando un solo proceso de trabajo: 4500-5000
solicitudes por segundo con una latencia de 50ms
.
Utilizando cuatro procesos de trabajo: 5500-6000
solicitudes por segundo con una latencia de 4-8ms
.
Usando la misma función con 1 trabajador podemos lograr 1000
conexiones simultáneas realizando 200,000
solicitudes con una latencia de aproximadamente 100ms
y 5600rps
.
Boltz acepta solicitudes de extracción para mejorar el motor o la interfaz web, que se encuentran en el repositorio web aquí. Utiliza texto mecanografiado con el conjunto de reglas eslint de Google, así que trate de mantener la coherencia y el rendimiento.
Cuando esté listo para distribuir sus cambios, debe asegurarse de tener los archivos web en el directorio public
; de lo contrario, simplemente ejecute la interfaz web en modo de desarrollo junto con el motor.
Copyright 2021 bsnk-dev
Por el presente se otorga permiso, sin cargo, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el "Software"), para operar con el Software sin restricciones, incluidos, entre otros, los derechos de uso, copia, modificación, fusión. , publicar, distribuir, sublicenciar y/o vender copias del Software, y permitir que las personas a quienes se les proporciona el Software lo hagan, sujeto a las siguientes condiciones:
El aviso de derechos de autor anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DE DERECHOS DE AUTOR SERÁN RESPONSABLES DE NINGÚN RECLAMO, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN CONTRACTUAL, AGRAVIO O DE OTRA MANERA, QUE SURJA DE, FUERA DE O EN RELACIÓN CON EL SOFTWARE O EL USO U OTRAS NEGOCIOS EN EL SOFTWARE.