# Ejecución y claves de la aplicación Cada parte de una aplicación desplegada (por ejemplo, un sitio web y una API) tiene su propia configuración de ejecución: cómo se ejecuta, su memoria y CPU, y cuántas instancias corren a la vez. Decide qué tan rápido responde y cuánto cuesta. ## Las tres formas de ejecución [#las-tres-formas-de-ejecución] | Opción | Qué hace | Ideal para | | --- | --- | --- | | **Duerme en reposo** | Arranca cuando alguien la visita y no cuesta nada en reposo. La primera visita tras un rato quieto tarda unos segundos. | Herramientas internas, demostraciones, aplicaciones de uso ocasional | | **Siempre activo, más barato** | Sigue en ejecución a un precio menor y puede reiniciarse de vez en cuando. | Aplicaciones que deben responder al instante pero toleran un reinicio ocasional | | **Siempre activo** | Sigue en ejecución y nunca se interrumpe. | Aplicaciones con mucho tráfico y todo lo que no debe reiniciarse | La IA elige la forma más económica para cada parte al configurar. Puede cambiarla cuando quiera. ## Antes de empezar [#antes-de-empezar] - El proyecto debe estar configurado para desplegarse (consulte [Desplegar una aplicación](/docs/es/deploy/deploy-an-app)). - Para cambiar una opción, necesita poder cambiar el proyecto. ## Ver la configuración actual [#ver-la-configuración-actual] Abra el proyecto en y vaya a **Configuración**. Cada parte de la aplicación muestra: - Cómo se ejecuta (una de las tres opciones anteriores). - **Memoria** y **CPU**. - **Máximo de instancias a la vez**, con lo que permite su plan (**El plan permite**). - Lo máximo que puede costar: "Como máximo X créditos por hora, a plena carga". La cifra por hora solo se alcanza cuando todas las instancias están ocupadas. Su gasto real está en (consulte [Créditos](/docs/es/workspace/credits)). La sección indica de dónde viene la configuración: la rama de producción del repositorio vinculado, o el Studio. ```python from klarety import Nexus nx = Nexus.connect() print(nx.projects.deploy_settings("PROJECT_ID")) ``` Cada servicio indica su modo (`on-demand` para Duerme en reposo, `spot` para Siempre activo, más barato, `always-on` para Siempre activo), su tamaño, su máximo de instancias a la vez, el tope del plan para cada uno y lo máximo que puede costar por hora. ## Cambiar una opción [#cambiar-una-opción] Pídaselo a la IA del proyecto. Ella edita la configuración de despliegue y la envía con un push, y ese push despliega el cambio, así la configuración se revisa y versiona en su código. ### Abra Configuración [#abra-configuración] En la página de Despliegue del proyecto, vaya a **Configuración** y busque la parte. ### Pida a la IA que la cambie [#pida-a-la-ia-que-la-cambie] Seleccione **Pedir a la IA que lo cambie** y complete **¿Qué debe cambiar?**, por ejemplo: "Mantén la API siempre activa y deja que el sitio web duerma en reposo." Seleccione **Enviar**. ### Mírela trabajar [#mírela-trabajar] La aplicación dice "Enviado a tu IA. Mírala trabajar en el Studio." Si el Studio está cerrado, la IA empieza cuando se abra de nuevo. ```python nx.projects.ask_ai_to_deploy( "PROJECT_ID", "Keep this service always on, with at most 2 instances", service="api", ) ``` Omita `service` para preguntar por toda la aplicación, por ejemplo para configurar el despliegue por primera vez. ## Qué ve cuando funcionó [#qué-ve-cuando-funcionó] Un push desde el Studio a la rama de producción espera a que una persona lo apruebe (consulte [Aprobaciones](/docs/es/deploy/approvals)). Una vez desplegado, **Configuración** muestra la nueva opción y el tope de costo. ## Ver cómo va cada parte [#ver-cómo-va-cada-parte] En cada parte, **Últimos X días** muestra **Llamadas**, **Errores**, **Respuesta promedio**, **Momento de más carga** (instancias a la vez, del máximo permitido), **Arranque tras inactividad** para una parte que duerme y **Memoria al arrancar**. Úselos para decidir: - **El arranque tras inactividad es muy largo** para sus visitantes: cambie a **Siempre activo, más barato** o **Siempre activo**. - **El momento de más carga** llega al máximo de instancias: permita más instancias, hasta lo que permite su plan. - **La memoria al arrancar** está cerca de la memoria de la parte: dele más memoria antes de que se agote. ## Rotar la clave de la aplicación [#rotar-la-clave-de-la-aplicación] Su aplicación publicada llega a los datos del proyecto con su propia **Clave de la app**. Solo la aplicación publicada la tiene; nunca se muestra. La clave anterior y todo lo que abrió dejan de funcionar ahora. La aplicación se vuelve a publicar con una clave nueva, sin reconstruir nada, y puede mostrar errores durante un minuto. ### Abra la sección Clave de la app [#abra-la-sección-clave-de-la-app] Abra el proyecto en y busque **Clave de la app**. ### Rótela [#rótela] Seleccione **Rotar clave** y confirme. La aplicación muestra **Clave rotada**; la aplicación publicada recibe la nueva clave en menos de un minuto. ```python nx.projects.rotate_app_key("PROJECT_ID") ``` Rótela siempre que crea que se filtró. Nunca la copia: la aplicación la recibe sola. ## Si algo sale mal [#si-algo-sale-mal] - **"Aún no tiene precio en su plan"**: esta opción aún no está disponible en su plan. Contáctenos para activarla. - **La aplicación se quedó sin memoria**: el despliegue lo explica. Aumente la memoria de esa parte o haga que la aplicación use menos al arrancar. - **La aplicación no empezó a responder a tiempo**: si tarda en arrancar (por ejemplo, carga un modelo grande), cárguelo en el primer uso, o ejecútela siempre activa para que arranque una vez y siga en ejecución. ## Siguientes pasos [#siguientes-pasos] - [Desplegar una aplicación](/docs/es/deploy/deploy-an-app) - [Registros](/docs/es/deploy/logs) - [Créditos](/docs/es/workspace/credits)