AppAPI y aplicaciones externas¶
Resumen¶
Esta página explica, para quienes administran el servidor, qué son AppAPI y las ExApps, cómo instalar AppAPI y registrar un daemon de despliegue (con HaRP o con Docker Socket Proxy), cómo instalar ExApps y en qué se diferencian HaRP y Docker Socket Proxy.
Fuente: documentación de Nextcloud, «admin_manual/exapps_management/AppAPIAndExternalApps», versión 3ad9158, licencia CC BY 3.0; traducida y adaptada para APS Conecta Gestión.
En APS Conecta Gestión esto difiere
Antes, APS Conecta Gestión solo admitía aplicaciones escritas en el lenguaje de programación PHP. Para dar soporte a una gama más amplia de casos de uso, se introdujo un ecosistema de ExApps (abreviatura de «External Apps») que permite instalar aplicaciones como contenedores Docker.
La mayoría de nuestras apps de inteligencia artificial (IA) se desarrollan como ExApps, por lo que pueden requerir cierta preparación de la instancia de APS Conecta Gestión antes de poder instalarlas.
Truco
AppAPI y las ExApps son funcionalidades opcionales. Si no se usa ninguna aplicación que no sea PHP, AppAPI puede desactivarse con seguridad: ir a la página de gestión de apps de la instancia de APS Conecta Gestión, entrar en «Tus apps» y hacer clic en el botón «Desactivar» junto a AppAPI.
Instalar AppAPI¶
Todas las ExApps requieren como dependencia la app de APS Conecta Gestión AppAPI. Desde la versión 30.0.1 de APS Conecta Gestión, AppAPI se instala automáticamente de forma predeterminada. Si AppAPI no está instalada, aún puede instalarse: basta con ir a la página de gestión de apps de la instancia de APS Conecta Gestión y buscar AppAPI en la categoría Herramientas.
Configurar el daemon de despliegue¶
Un daemon de despliegue es el medio por el que APS Conecta Gestión instala las ExApps, se comunica con ellas y las controla.
Nota
Si se usa Nextcloud AIO con el contenedor «HaRP» activado, se crea automáticamente un daemon de despliegue configurado para funcionar desde el primer momento. En caso contrario, seguir los pasos siguientes para configurar un daemon de despliegue desde las configuraciones de administración de AppAPI.
Truco
Después de registrar un daemon de despliegue, usar la acción Probar despliegue para verificar que es accesible y que funciona. En la lista de daemons de despliegue, hacer clic en el menú ... (tres puntos) junto al daemon que se quiere verificar y elegir Probar despliegue. Para saber qué hace esta comprobación y cómo interpretar sus resultados, véase Probar despliegue.
HaRP¶
Esta es la forma más reciente y la recomendada de instalar ExApps.
Requiere cambios en el proxy de la instancia de APS Conecta Gestión. Si no se tiene acceso al proxy, puede usarse el método habitual descrito más abajo.
Configurar un contenedor Docker llamado HaRP que hace de proxy del acceso a Docker y a las ExApps para la instancia de APS Conecta Gestión. Tener cuidado de cambiar los valores de
HP_SHARED_KEYyNC_INSTANCE_URL.Ir a las configuraciones de administración de AppAPI.
Hacer clic en el botón «Registrar Daemon».
Debería aparecer un formulario completado. Esta configuración predeterminada,
HaRP Proxy (Host), debería funcionar en la mayoría de las instalaciones. Para Nextcloud AIO, usarHaRP All-in-One.Si se usa APS Conecta Gestión en una red Docker personalizada y se quiere limitar el contenedor HaRP a ella, usar la opción
HaRP Proxy (Docker)para que los campos se completen con las opciones habituales, o cambiarlos manualmente.En ese caso, asegurarse de que el propio contenedor HaRP se inicie en el paso 1 en la misma red que la instancia de APS Conecta Gestión, opcionalmente sin puertos expuestos al host, y de que esa misma red Docker figure en el campo
Networkde la configuración de despliegue.Asegurarse de usar la misma clave compartida en el contenedor HaRP y en los ajustes de AppAPI.
Hacer clic en «Verificar conexión» para comprobar que la configuración es correcta.
Hacer clic en «Registrar» para guardar la configuración del daemon de despliegue.
Configurar en el proxy principal de APS Conecta Gestión una redirección de ubicación que redirija las solicitudes al contenedor HaRP. En el apartado Configurar el proxy inverso del readme de HaRP hay ejemplos para los proxies inversos más populares.
Probar toda la configuración con «Probar despliegue» en el menú de tres puntos del daemon de despliegue.
Esto es adecuado para instalaciones locales en las que el servidor APS Conecta Gestión y las ExApps están en la misma máquina o en la misma red Docker. En esta configuración, ni las ExApps ni el servidor de ExApps tienen por qué exponer al host ningún puerto relacionado con las ExApps (23000-23999), ni necesitan ser accesibles desde el host. Deben poder alcanzar el contenedor HaRP en el puerto FRP y la instancia de APS Conecta Gestión. Para instalaciones distintas o remotas, véanse los ejemplos de configuración de despliegue aquí.
Nota
Las ExApps existentes pueden migrarse al nuevo proxy HaRP siguiendo esta guía.
Docker Socket Proxy¶
Configurar un contenedor Docker llamado docker-socket-proxy que hace de proxy del acceso a Docker para la instancia de APS Conecta Gestión.
Ir a las configuraciones de administración de AppAPI.
Hacer clic en el botón «Registrar Daemon».
Completar los campos obligatorios:
Nombre: nombre único del daemon de despliegue
Display name: el nombre que se mostrará en la interfazDeployment method: de forma predeterminada, hay que elegirdocker_install(manual_installes para desarrollo o para un caso de uso personalizado de instalación manual de ExApps)Daemon Host: nombre de host o dirección IP + puerto del daemon de despliegueURL de APS Conecta Gestión: se completa automáticamente con el dominio actual; puede ser necesario cambiar el protocolo a http/https según la instalación
Set as default daemon: marcar si se quiere establecer el nuevo daemon de despliegue como predeterminadoEnable https: marcar si el daemon de despliegue (Docker Socket Proxy) está configurado con TLSConfiguración de despliegue:
Network: nombre de la red Docker; depende de la configuración de red; se fuerza a «host» si «Habilitar https» está marcadoHaProxy password: contraseña de Docker Socket Proxy, si está configurado con TLSCompute Device: CPU, CUDA o ROCm, según la configuración de hardware de la máquina host del daemon de despliegueAdd additional option(véase Opciones adicionales): configurar opciones adicionales de la configuración de despliegue como CLAVE + VALOR
Hacer clic en «Verificar conexión» para comprobar que la configuración es correcta.
Hacer clic en «Registrar» para guardar la configuración del daemon de despliegue.
Nota
En una instalación remota de DSP, este debe exponer los puertos en el host.
Hay ejemplos de configuración de despliegue aquí.
Instalar ExApps¶
Ahora es posible instalar ExApps desde la tienda de apps de Nextcloud haciendo clic en «Instalar» en la app correspondiente de la página Apps. Si la instalación tiene éxito, la ExApp se muestra en la lista «Tus apps».
Preguntas frecuentes¶
Tengo dos tarjetas gráficas (p. ej., NVIDIA RTX 3060) con 8 GB de VRAM cada una. ¿Cómo puedo ejecutar algo que no cabe en una sola tarjeta gráfica?
Actualmente no se admite distribuir modelos entre varias GPU. Hace falta una GPU en la que quepa todo el modelo que se intenta usar.
Tengo una tarjeta gráfica que no admite CUDA: ¿puedo usarla, y cómo?
No; por ahora, nuestras apps de IA requieren GPU compatibles con CUDA para funcionar.
¿Cuál es el requisito mínimo de VRAM de la GPU si quiero instalar varias apps?
Cuando se ejecutan varias ExApps en la misma GPU, esta debe poder alojar el modelo más grande de entre las apps que se instalen.
¿Es posible añadir más tarjetas gráficas a mi instancia para permitir solicitudes en paralelo o para acelerar una solicitud?
Actualmente no se admite el procesamiento en paralelo de cargas de trabajo de IA de una misma app con varias GPU.
¿Puedo usar la CPU y la GPU en paralelo para el procesamiento de IA?
No; para una app, las cargas de trabajo de IA solo pueden procesarse en la CPU o en la GPU. Para apps distintas, se puede decidir si se ejecutan en la CPU o en la GPU.
Docker Socket Proxy frente a HaRP¶
HaRP puede considerarse la versión 2.0 de Docker Socket Proxy. Hace todo lo que hace Docker Socket Proxy, pero además resuelve el principal problema: que el servidor APS Conecta Gestión (o AppAPI) no pueda alcanzar las ExApps.
Se usa FRP para crear un túnel entre la ExApp y el contenedor HaRP, de modo que los contenedores de las ExApps no necesitan exponer ningún puerto al host ni ser accesibles desde el servidor APS Conecta Gestión.
El servidor APS Conecta Gestión puede alcanzar los contenedores de las ExApps a través del contenedor HaRP.
HaRP tiene la ventaja adicional de poder hacer de proxy de las solicitudes que llegan desde la interfaz web o desde una API hacia el contenedor de la ExApp sin pasar por el servidor APS Conecta Gestión, lo que ahorra recursos, mejora el rendimiento y admite protocolos adicionales como WebSockets.
HaRP es la forma recomendada de ejecutar ExApps, pero si no es posible usarlo, Docker Socket Proxy sigue siendo compatible.
Solicitudes del frontend en el caso de Docker Socket Proxy: el frontend, en el navegador, envía todas las solicitudes al proxy; el proxy pasa al servidor APS Conecta Gestión / AppAPI tanto las solicitudes habituales como las dirigidas a una ExApp, y el servidor convierte estas últimas a la autenticación de ExApp y las reenvía a la ExApp.
Solicitudes del frontend en el caso de HaRP: el frontend, en el navegador, envía las solicitudes al proxy; el proxy pasa las solicitudes habituales al servidor APS Conecta Gestión / AppAPI y envía las dirigidas a una ExApp directamente al contenedor HaRP; HaRP valida la autenticación del usuario con el servidor APS Conecta Gestión / AppAPI, convierte la solicitud a la autenticación de ExApp y la reenvía a la ExApp.