# 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)