> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Creación de infraestructura de Azure

> Cree paso a paso la infraestructura de Azure necesaria para ABBYY Vantage autoalojado en AKS con el contenedor del instalador, Azure CLI y plantillas ARM.

<Warning>
  **Vantage 3.0 reemplaza este modelo de implementación.** Vantage 2.7 y las versiones anteriores requerían la infraestructura especificada por ABBYY, creada mediante scripts de Ansible y Azure CLI proporcionados por ABBYY. Este modelo no es compatible con la versión 3.0: usted aprovisiona su propia infraestructura y ABBYY no proporciona scripts de aprovisionamiento ni ningún otro tipo de automatización de infraestructura. Esta página se aplica únicamente a Vantage 2.7. Consulte la [descripción general de Vantage 3.0](/es/vantage/self-hosted/v3.0/introduction) y [Migrar desde Vantage 2.7](/es/vantage/self-hosted/v3.0/migration-from-2.7).
</Warning>

<Note>
  Esta página solo se aplica a implementaciones de **Azure AKS**. Para las implementaciones en máquinas virtuales, consulte la guía de [Instalación](/es/vantage/self-hosted/v2.7/installation).
</Note>

<div id="overview">
  ## Descripción general
</div>

Esta guía explica cómo crear la infraestructura de Azure necesaria para ABBYY Vantage mediante Azure CLI y plantillas ARM. La infraestructura se crea desde el contenedor del instalador de Vantage.

<div id="prerequisites">
  ## Requisitos previos
</div>

Antes de comenzar, asegúrese de contar con lo siguiente:

* Una suscripción de Azure con permisos para crear y administrar recursos
* Docker instalado en su equipo local
* Acceso a Internet para descargar imágenes de contenedor
* Para la configuración de alta disponibilidad: clúster de Redis implementado en máquinas virtuales (consulte [Requisitos del sistema](/es/vantage/self-hosted/v2.7/system-requirements#redis-cluster-azure-aks-only))

<Note>
  Puede comenzar a descargar imágenes de contenedor mientras crea la infraestructura, ya que es una operación que lleva tiempo.
</Note>

<div id="infrastructure-components">
  ## Componentes de la infraestructura
</div>

Se crearán los siguientes recursos de Azure:

```
Azure Subscription
└── Resource Group
    ├── AKS Cluster
    │   ├── Services Node Pool (Standard_D8as_v5)
    │   └── Workers Node Pool (Standard_D16as_v5)
    ├── Storage Accounts (5)
    │   ├── Skills (Premium/Hot)
    │   ├── Processing (Standard/Hot)
    │   ├── Temporary (Standard/Hot)
    │   ├── Shared Folders (Premium FileStorage)
    │   └── Archive (Standard/Cool)
    ├── Azure SQL Server
    │   └── Elastic Pool Database
    └── Public IP Address
```

<div id="step-1-download-the-installer-image">
  ## Step 1: Descargar la imagen del instalador
</div>

Primero, descargue la imagen del instalador de Vantage y súbala a su registro de contenedores.

```bash theme={null}
# Iniciar sesión en el registro Docker de Vantage
docker login abyvtgonprm27.azurecr.io -u <username> -p <password>

# Descargar la imagen del instalador
docker pull abyvtgonprm27.azurecr.io/vantage-azure:2.7.1

# Etiquetar para su registro
docker tag abyvtgonprm27.azurecr.io/vantage-azure:2.7.1 \
  registry.yourdomain.tld/vantage/vantage-azure:2.7.1

# Publicar en su registro
docker push registry.yourdomain.tld/vantage/vantage-azure:2.7.1
```

<Note>
  Sustituya `<username>` y `<password>` por las credenciales proporcionadas durante la compra.
</Note>

<div id="step-2-run-the-installer-container">
  ## Step 2: Inicie el contenedor del instalador
</div>

Inicie el contenedor del instalador. Todos los comandos posteriores de esta guía se ejecutan dentro de este contenedor.

```bash theme={null}
docker run -it registry.yourdomain.tld/vantage/vantage-azure:2.7.1
```

<div id="step-3-authenticate-to-azure">
  ## Paso 3: Iniciar sesión en Azure
</div>

En el contenedor, inicie sesión en su cuenta de Azure:

```bash theme={null}
# Iniciar sesión en Azure (abre el navegador para la autenticación)
az login

# Establecer la suscripción
az account set --subscription <subscription_id>
```

<Note>
  Reemplaza `<subscription_id>` por el ID de tu suscripción de Azure.
</Note>

<div id="step-4-create-resource-group">
  ## Step 4: Crear grupo de recursos
</div>

Cree un grupo de recursos en la región de Azure que prefiera:

```bash theme={null}
az group create --location <location> --resource-group <resource_group_name>
```

**Ejemplo:**

```bash theme={null}
az group create --location eastus --resource-group vantage-prod-rg
```

Regiones comunes de Azure: `eastus`, `eastus2`, `westus2`, `westeurope`, `northeurope`

<div id="step-5-create-aks-cluster">
  ## Paso 5: Crear un clúster de AKS
</div>

<div id="preview-the-deployment">
  ### Obtener una vista previa de la implementación
</div>

Primero, comprueba qué recursos se crearán:

```bash theme={null}
az deployment group what-if --name aks-cluster \
  --resource-group <resource_group_name> \
  --template-file files/infrastructure/azure/arms/Cluster.Manual.json \
  --parameters kubernetesClusterName=<cluster_name>
```

<Warning>
  Los nombres de los clústeres no deben superar los **15 caracteres**.
</Warning>

<div id="create-the-cluster">
  ### Crear el clúster
</div>

```bash theme={null}
az deployment group create --name aks-cluster \
  --resource-group <resource_group_name> \
  --template-file files/infrastructure/azure/arms/Cluster.Manual.json \
  --parameters kubernetesClusterName=<cluster_name> \
  --parameters enableFIPS=false
```

<Note>
  Este comando crea un clúster con la configuración **Without high availability**, capaz de procesar 50.000 páginas cada 8 horas. Para otras configuraciones, modifique la configuración del pool de nodos mediante la [Performance Guide](/es/vantage/self-hosted/v2.7/performance-guide) después de crear el clúster.
</Note>

Para implementaciones que cumplan con FIPS, establezca `enableFIPS=true`. Consulte [FIPS Compliance](/es/vantage/self-hosted/v2.7/fips-compliance) para obtener información adicional sobre la configuración.

<div id="step-6-create-storage-accounts">
  ## Step 6: Crear cuentas de almacenamiento
</div>

<div id="preview-the-deployment">
  ### Obtener una vista previa de la implementación
</div>

```bash theme={null}
az deployment group what-if --name storage \
  --resource-group <resource_group_name> \
  --template-file files/infrastructure/azure/arms/StorageAccounts.Template.json
```

<div id="create-storage-accounts">
  ### Crear cuentas de almacenamiento
</div>

```bash theme={null}
az deployment group create --name storage \
  --resource-group <resource_group_name> \
  --template-file files/infrastructure/azure/arms/StorageAccounts.Template.json \
  --parameters kubernetesClusterName=<cluster_name> \
  --parameters enableFIPS=false
```

<div id="retrieve-storage-account-keys">
  ### Recuperar las claves de la cuenta de almacenamiento
</div>

Obtén las claves de acceso y las claves secretas para rellenar la sección `s3storage` en `env_specific.yml`:

```bash theme={null}
az deployment group show --name storage \
  --resource-group <resource_group_name> \
  --query properties.outputs -o yaml
```

Guarda el resultado; necesitarás estos valores para el archivo de configuración `env_specific.yml`.

<div id="step-7-create-azure-sql-server">
  ## Step 7: Crear Azure SQL Server
</div>

### Obtenga una vista previa de la implementación

```bash theme={null}
az deployment group what-if --name dbservers \
  --resource-group <resource_group_name> \
  --template-file files/infrastructure/azure/arms/Databases/DB.Server.Template.json \
  --parameters serverBaseName=<cluster_name> \
  --parameters dbAdminLogin=<db_username> \
  --parameters dbAdminPassword=<db_password>
```

<div id="create-sql-server">
  ### Crear un servidor SQL
</div>

```bash theme={null}
az deployment group create --name dbservers \
  --resource-group <resource_group_name> \
  --template-file files/infrastructure/azure/arms/Databases/DB.Server.Template.json \
  --parameters serverBaseName=<cluster_name> \
  --parameters dbAdminLogin=<db_username> \
  --parameters dbAdminPassword=<db_password>
```

<Note>
  Los parámetros `dbAdminLogin` y `dbAdminPassword` son las credenciales que se usan para acceder a las bases de datos. Guárdalos para la configuración de `env_specific.yml`.
</Note>

<div id="step-8-create-azure-sql-database">
  ## Paso 8: Crear la base de datos SQL de Azure
</div>

### Vista previa de la implementación

```bash theme={null}
az deployment group what-if --name databases \
  --resource-group <resource_group_name> \
  --template-file files/infrastructure/azure/arms/Databases/SQL.Databases.Template.json \
  --parameters serverBaseName=<cluster_name>
```

<div id="create-database">
  ### Crear la base de datos
</div>

```bash theme={null}
az deployment group create --name databases \
  --resource-group <resource_group_name> \
  --template-file files/infrastructure/azure/arms/Databases/SQL.Databases.Template.json \
  --parameters serverBaseName=<cluster_name>
```

<div id="step-9-get-node-resource-group">
  ## Step 9: Obtener el grupo de recursos del nodo
</div>

Obtenga el nombre del grupo de recursos del nodo del clúster de AKS:

```bash theme={null}
az aks show --name <cluster_name> -g <resource_group_name> \
  --query nodeResourceGroup -o tsv
```

Guarda este valor: colocarás la dirección IP pública en este grupo de recursos.

<div id="step-10-configure-public-ip-address">
  ## Step 10: Configurar la dirección IP pública
</div>

1. **Cree una IP pública de Azure** (IPv4 estática estándar) en el grupo de recursos de nodos del Step 9, o mueva una IP pública existente a ese grupo de recursos.

2. **Anote la dirección IP** para la configuración de `env_specific.yml`:

   ```yaml theme={null}
   loadbalancer:
     external_ip: <your_public_ip_address>
   ```

3. **Cree un registro A de DNS** que apunte su dominio a esta dirección IP.

<div id="step-11-install-gpu-driver-optional">
  ## Paso 11: Instalar el controlador de GPU (opcional)
</div>

Si planea implementar workers de GPU para entrenar skills con Deep Learning:

```bash theme={null}
ansible-playbook -i inventories/azure -v \
  playbooks/infrastructure/azure/02_install_gpu_driver.yml
```

Para conocer los requisitos de implementación con GPU, consulte [Requisitos del sistema](/es/vantage/self-hosted/v2.7/system-requirements).

<div id="summary-of-created-resources">
  ## Resumen de los recursos creados
</div>

Después de completar estos pasos, tendrá:

| Recurso                                          | Propósito                                                   |
| ------------------------------------------------ | ----------------------------------------------------------- |
| Grupo de recursos                                | Contenedor para todos los recursos de Vantage               |
| Clúster de AKS                                   | Clúster de Kubernetes para ejecutar Vantage                 |
| Pool de nodos de servicios                       | Ejecuta los servicios de la plataforma Vantage              |
| Pool de nodos worker                             | Ejecuta los workers de procesamiento de documentos          |
| Cuenta de almacenamiento de Skills               | Almacena definiciones y configuraciones de skills           |
| Cuenta de almacenamiento de procesamiento        | Almacena documentos durante el procesamiento                |
| Cuenta de almacenamiento temporal                | Almacenamiento temporal de transacciones                    |
| Cuenta de almacenamiento de carpetas compartidas | Acceso a la carpeta compartida para importación/exportación |
| Cuenta de almacenamiento de archivo              | Archivo de documentos a largo plazo                         |
| Azure SQL Server                                 | Servidor de base de datos                                   |
| Base de datos SQL de Azure                       | Base de datos operativa de Vantage                          |
| Dirección IP pública                             | Acceso externo a Vantage                                    |

<div id="next-steps">
  ## Siguientes pasos
</div>

Después de crear la infraestructura:

1. **Configure env\_specific.yml** - Rellénelo con los valores de esta guía. Consulte [Instalación](/es/vantage/self-hosted/v2.7/installation) para ver el formato completo de la configuración.

2. **Descargue imágenes de contenedor** - Sincronice las imágenes de Vantage con su registro de contenedores.

3. **Ejecute la instalación** - Complete la instalación con los playbooks.

Continúe con [Instalación](/es/vantage/self-hosted/v2.7/installation) para ver el proceso de instalación completo.

<div id="troubleshooting">
  ## Resolución de problemas
</div>

<div id="deployment-fails-with-permission-error">
  ### La implementación falla por un error de permisos
</div>

Asegúrate de que tu cuenta de Azure tenga los siguientes permisos:

* Acceso de Colaborador a la suscripción o al grupo de recursos
* Permiso para crear clústeres de AKS, cuentas de almacenamiento y bases de datos SQL

<div id="cluster-name-too-long">
  ### Nombre del clúster demasiado largo
</div>

Los nombres de los clústeres deben tener 15 caracteres o menos. Usa un nombre más corto.

<div id="storage-account-name-already-exists">
  ### El nombre de la cuenta de almacenamiento ya existe
</div>

Los nombres de las cuentas de Azure Storage deben ser únicos en todo el mundo. La plantilla de ARM genera los nombres en función del nombre de tu clúster. Si hay algún conflicto, prueba con un nombre de clúster distinto.

<div id="cannot-connect-to-sql-database">
  ### No se puede conectar a la base de datos SQL
</div>

Asegúrese de que las reglas de firewall de la base de datos SQL de Azure permitan conexiones desde las direcciones IP salientes del clúster de AKS. Es posible que deba agregar una regla de red virtual o permitir el acceso a los servicios de Azure.

<div id="related-documentation">
  ## Documentación relacionada
</div>

* [Requisitos del sistema](/es/vantage/self-hosted/v2.7/system-requirements) - Requisitos completos de infraestructura
* [Instalación](/es/vantage/self-hosted/v2.7/installation) - Guía completa de instalación
* [Cumplimiento de FIPS](/es/vantage/self-hosted/v2.7/fips-compliance) - Implementaciones con FIPS habilitado
* [Guía de rendimiento](/es/vantage/self-hosted/v2.7/performance-guide) - Escalado y optimización del rendimiento
