Antipatrón: Deja implementados los proxies de la API de NodeJS sin usar

Estás viendo la documentación de Apigee Edge.
Ve a la documentación de Apigee X.
info

Una de las funciones únicas y útiles de Apigee Edge es la capacidad de unir una aplicación de NodeJS en un proxy de API. Esto permite que los desarrolladores creen aplicaciones del servidor orientadas a eventos con Edge.

Antipatrón

La implementación de proxies de API es el proceso de hacerlos disponibles para entregar solicitudes a la API. Cada uno de los proxies de API implementados se carga en la memoria del entorno de ejecución de Message Processor para poder entregar las solicitudes a la API del proxy de API específico. Por lo tanto, el uso de memoria del tiempo de ejecución aumenta con el aumento de la cantidad de proxies de API implementados. Si dejas implementados proxies de API que no se usan, se puede generar un uso innecesario de la memoria del entorno de ejecución.

En el caso de los proxies de API de NodeJS, hay una implicación adicional.

La plataforma inicia una “app de Node” para cada proxy de API de NodeJS implementado. Una app de Node es similar a una instancia de servidor de nodos independiente en el proceso de JVM de Message Processor.

En efecto, para cada proxy de API de NodeJS implementado, Edge inicia un servidor de nodos para procesar las solicitudes de los proxies correspondientes. Si se implementa el mismo proxy de API de NodeJS en varios entornos, se inicia una app de nodo correspondiente para cada entorno. En situaciones en las que hay muchos proxies de API de NodeJS implementados, pero sin usar, se inician varias apps de Node. Los proxies de NodeJS que no se usan se traducen en apps de Node inactivas que consumen memoria y afectan los tiempos de inicio del proceso de la aplicación.

Proxies utilizados Proxies sin usar
# Proxies # Entornos implementados Se lanzaron # nodeapps # Proxies # Entornos implementados # apps de Node lanzadas
10 dev, test, prod (3) 10 × 3=30 12 dev, test, prod (3) 12 × 3=36

En la ilustración anterior, se inician 36 nodos de apps no utilizados, lo que agota la memoria del sistema y tiene un efecto adverso en los tiempos de inicio del proceso.

Impacto

  • Uso elevado de memoria y efecto en cascada en la capacidad de la aplicación para procesar más solicitudes
  • Posibles impactos en el rendimiento de los proxies de API que realmente publican tráfico

Práctica recomendada

  • Anula la implementación de los proxies de API que no se usen
  • Usa el panel Rendimiento de los proxies de Analytics para determinar qué proxies no publican tráfico y, luego, desimplementa los que no necesites.

Lecturas adicionales