Um mecanismo rápido de microsserviços Node.js para executar funções de nuvem com baixa latência. Painel de administração incluído.
Explore os documentos »
Reportar bug · Solicitar recurso
O Boltz Engine é um mecanismo de microsserviços Node.js rápido e agrupado, iniciando instâncias a partir de uma inicialização a frio em 100 ms, e as interações subsequentes com funções caem abaixo de 10 ms em condições normais. As instâncias de VM V8 são usadas para separar contextos e permitir que você arquitete seu código como microsserviços auto-hospedados interoperáveis com serviços baseados em nuvem. Multithreading significa que suas instâncias são dimensionadas em todo o cluster em todos os núcleos da CPU. Uma API de administração permite que você gerencie o Boltz a partir da interface de administração incluída.
Baixe na página de lançamentos e execute o arquivo start.sh ou start.bat para instalar e executar o Boltz.
Ou extraia do bsnk/boltz-engine
no Docker Hub e configure as seguintes etapas:
Crie um config.json e um secrets.json - você pode baixá-los de um lançamento na página de lançamentos
Coloque-os em uma pasta, aqui estaria boltz-data
Execute a imagem do Docker com
$ 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
Você pode alterar essas pastas de acordo com sua preferência e personalizar as portas usadas em config.json e no comando start. Você provavelmente também deve usar uma versão do boltz como 1.1.0
em vez da mais recente para garantir que bugs não apareçam na produção. /boltz é onde ele irá procurar o arquivo config.json dentro do container, e o restante pode ser customizado conforme a documentação.
Boltz permite criar instâncias de VM para receber e processar solicitações da web e volumes para armazenar código, configurações e salvar dados em um disco virtual temporariamente. Todas as alterações são apagadas quando a instância ou o volume precisa ser recarregado.
Os pacotes são carregados do package.json e instalados em pastas em área restrita no sistema de arquivos host, eles são compartilhados com qualquer instância usando o mesmo volume no mesmo processo.
O uso recomendado do Boltz Engine é para projetos simples de microsserviços que podem posteriormente ser dimensionados com um produto de nuvem adequado. Possui baixa sobrecarga e curva de aprendizado, permitindo que você se concentre na funcionalidade do seu projeto e não configure-o para rodar em uma plataforma em nuvem quando for leve o suficiente para ser manuseado localmente. Também é super rápido, fornecendo resultados em sua máquina local em menos de 10 ms, em vez de milhares de milissegundos nas funções normais da nuvem. Além disso, é fácil de usar com a interface de administração incluída.
O motor Boltz tem alguns problemas, incluindo:
Grande tamanho de instalação de pacote devido à implementação de sandboxes node_modules de volume individual.
A API admin usa autenticação básica, o que significa que você precisa reiniciar o servidor para alterar a senha.
Usando uma instância do GCP Cloud Shell, uma função foi encarregada de repetir o parâmetro de consulta name
com um ponto de exclamação e foi executada da seguinte forma:
Usando um único processo de trabalho: 4500-5000
solicitações por segundo com uma latência de 50ms
.
Usando quatro processos de trabalho: 5500-6000
solicitações por segundo com uma latência de 4-8ms
.
Usando a mesma função com 1 trabalhador podemos atingir 1000
conexões simultâneas fazendo 200,000
solicitações com latência de cerca de 100ms
e 5600rps
.
Boltz está aceitando solicitações pull para melhorar o mecanismo ou a interface da web, localizadas no repositório da web aqui. Ele usa texto datilografado com o conjunto de regras eslint do Google, então tente permanecer consistente e com bom desempenho.
Quando estiver pronto para distribuir suas alterações, você precisa ter certeza de que os arquivos da web estão no diretório public
; caso contrário, basta executar a interface da web no modo de desenvolvimento junto com o mecanismo.
Direitos autorais 2021 bsnk-dev
É concedida permissão, gratuitamente, a qualquer pessoa que obtenha uma cópia deste software e dos arquivos de documentação associados (o "Software"), para negociar o Software sem restrições, incluindo, sem limitação, os direitos de usar, copiar, modificar, mesclar , publicar, distribuir, sublicenciar e/ou vender cópias do Software e permitir que as pessoas a quem o Software seja fornecido o façam, sujeito às seguintes condições:
O aviso de direitos autorais acima e este aviso de permissão serão incluídos em todas as cópias ou partes substanciais do Software.
O SOFTWARE É FORNECIDO "COMO ESTÁ", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM DETERMINADO FIM E NÃO VIOLAÇÃO. EM HIPÓTESE ALGUMA OS AUTORES OU DETENTORES DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER RECLAMAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE.