Antipadrão: deixar proxies da API NodeJS não utilizados implantados

Você está lendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
info

Um dos recursos exclusivos e úteis do Apigee Edge é a capacidade de encapsular um aplicativo NodeJS em um proxy de API. Isso permite que os desenvolvedores criem aplicativos do lado do servidor orientados a eventos usando o Edge.

Antipadrão

A implantação de proxies de API é o processo de disponibilizá-los para atender às solicitações de API. Cada um dos proxies de API implantados é carregado na memória de execução do processador de mensagens para poder atender às solicitações de API do proxy específico. Portanto, o uso da memória de execução aumenta com o aumento do número de proxies de API implantados. Deixar proxies de API não utilizados implantados pode causar uso desnecessário da memória de execução.

No caso de proxies de API NodeJS, há uma implicação adicional.

A plataforma inicia um "app Node" para cada proxy de API NodeJS implantado. Um app Node é semelhante a uma instância de servidor de nó independente no processo JVM do processador de mensagens.

Na verdade, para cada proxy de API NodeJS implantado, o Edge inicia um servidor de nó para processar solicitações dos proxies correspondentes. Se o mesmo proxy de API NodeJS for implantado em vários ambientes, um app Node correspondente será iniciado para cada ambiente. Em situações em que há muitos proxies de API NodeJS implantados, mas não utilizados, vários apps Node são iniciados. Proxies NodeJS não utilizados se traduzem em apps Node inativos que consomem memória e afetam os tempos de inicialização do processo do aplicativo.

Proxies usados Proxies não utilizados
# Proxies # Ambientes implantados # nodeapps iniciados # Proxies # Ambientes implantados # Apps Node iniciados
10 dev, test, prod (3) 10x3=30 12 dev, test, prod (3) 12x3=36

Na ilustração acima, 36 nodeapps não utilizados são iniciados, o que usa a memória do sistema e tem um efeito adverso nos tempos de inicialização do processo.

Impacto

  • Uso elevado da memória e efeito em cascata na capacidade do aplicativo de processar mais solicitações
  • Provável impacto de performance nos proxies de API que estão realmente atendendo ao tráfego

Prática recomendada

  • Cancelar a implantação de proxies de API não utilizados
  • Use o painel de performance do proxy do Google Analytics para determinar quais proxies não estão atendendo ao tráfego. Cancele a implantação daqueles que não são necessários.

Leitura adicional