Registrar recursos en una aplicación

Si registras tus recursos de Google Cloud como servicios y cargas de trabajo en una aplicación de App Hub, podrás simplificar la gestión organizando los recursos en función de su finalidad empresarial. Este enfoque proporciona visibilidad, monitorización, gobernanza y control operativo unificados.

En esta guía se explica cómo agrupar recursos de Google Cloud que aún no se han definido formalmente como una aplicación.

Antes de empezar

Debes completar la configuración inicial de la gestión de aplicaciones antes de organizar los recursos en aplicaciones. Este proceso suele incluir los siguientes roles y pasos:

Crear una aplicación

Crea una aplicación en App Hub para que actúe como contenedor lógico de tus recursos: Google Cloud

Consola

  1. En la Google Cloud consola, usa el selector de proyectos para seleccionar tu proyecto de gestión.
  2. Ve a la página Aplicaciones desde App Hub:

    Ve a Aplicaciones.

  3. Haz clic en Crear aplicación.

  4. En el panel Elegir la región y el nombre de la aplicación, selecciona la mejor ubicación para tu aplicación en función de tus requisitos de distribución geográfica:

    • Seleccione Regional para crear una aplicación regional. A continuación, selecciona la región específica de tu aplicación en función de las regiones admitidas por App Hub.
    • Selecciona Global para crear una aplicación global.

    Para obtener más información sobre la mejor ubicación para tu aplicación, consulta Aplicaciones globales y regionales.

  5. Introduce el nombre de la aplicación y haz clic en Continuar. Este nombre es un identificador único que solo puede contener letras minúsculas, números o guiones. No podrás cambiar este nombre después de crear la aplicación.

  6. Opcional: Define los atributos de nivel superior de la aplicación para que se pueda descubrir y gestionar:

    • En la sección Añadir atributos, introduzca el Nombre visible. El nombre visible no es un identificador único y puedes cambiarlo después de crear la aplicación.
    • En la lista Criticidad, selecciona un valor para indicar la importancia de la aplicación.
    • En la lista Entorno, seleccione un valor para indicar la fase del ciclo de vida del software.
    • Añada los detalles de la información de contacto de los propietarios, incluidos el nombre visible y la dirección de correo electrónico. Ten en cuenta que las direcciones de correo deben tener el formato username@yourdomain, por ejemplo, jane-doe@gmail.com.
  7. Haz clic en Crear.

gcloud

  1. Usa la CLI de Google Cloud para crear una aplicación desde tu terminal o Cloud Shell:

    gcloud apphub applications create APPLICATION_NAME \
      --project=PROJECT_ID \
      --scope-type=LOCATION \
      --location=REGION \
      --display-name=DISPLAY_NAME \
      --criticality-type=CRITICALITY \
      --environment-type=ENVIRONMENT \
      --developer-owners=display-name=DEV_NAME,email=DEV_EMAIL \
      --operator-owners=display-name=OPERATOR_NAME,email=OPERATOR_EMAIL \
      --business-owners=display-name=BUSINESS_NAME,email=BUSINESS_EMAIL
    

    Sustituye APPLICATION_NAME por el nombre de tu aplicación. Este nombre es un identificador único que solo puede contener letras minúsculas, números o guiones.

    Usa marcas opcionales, como --criticality-type, para definir los atributos de nivel superior de la aplicación y facilitar la detección y la gobernanza.

    En el caso de las marcas obligatorias y opcionales, sustituya lo siguiente:

    • Obligatorio: PROJECT_ID, el ID del proyecto de gestión.
    • Obligatorio: LOCATION: la ubicación de tu aplicación en función de tus requisitos de distribución geográfica. Usa uno de los siguientes valores:

      • REGIONAL para aplicaciones regionales.
      • GLOBAL para aplicaciones globales.

      Para obtener más información sobre la mejor ubicación para tu aplicación, consulta Aplicaciones globales y regionales.

    • Obligatorio: REGION, la región específica de tu aplicación. Se debe utilizar uno de los valores indicados a continuación.

    • Opcional: DISPLAY_NAME: el nombre visible de tu aplicación. El nombre visible no es un identificador único y puedes cambiarlo después de crear la aplicación.

    • Opcional: CRITICALITY: el nivel de importancia de la aplicación para tus operaciones. Usa uno de los siguientes valores:

      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • Opcional: ENVIRONMENT: la fase del ciclo de vida del software. Se debe utilizar uno de los valores indicados a continuación.

      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • Opcional: DEV_NAME y DEV_EMAIL: el nombre visible y la dirección de correo del propietario del desarrollador, respectivamente.

    • Opcional: OPERATOR_NAME y OPERATOR_EMAIL: el nombre visible y la dirección de correo del propietario del operador, respectivamente.

    • Opcional: BUSINESS_NAME y BUSINESS_EMAIL: el nombre visible y la dirección de correo del propietario de la empresa, respectivamente.

  2. Lista las aplicaciones de tu proyecto:

    gcloud apphub applications list \
      --project=PROJECT_ID \
      --location=REGION
    

    Debe obtener un resultado similar al siguiente:

    ID                 DISPLAY_NAME   CREATE_TIME
    APPLICATION_NAME   DISPLAY_NAME   2023-10-31T18:33:48
    

Terraform

Para crear una aplicación con Terraform, usa el recurso google_apphub_application. Este recurso te permite definir las propiedades de la aplicación, como su nombre, ubicación y atributos.

En el siguiente ejemplo se crea una aplicación regional en us-central1 con atributos de importancia, entorno y propietario definidos:

resource "google_apphub_application" "example" {
    project        = "my-project-id"
    location       = "us-central1"
    application_id = "my-application"
    display_name   = "My Application"
    description    = "This application represents our platform."
    scope {
        type = "REGIONAL"
    }
    attributes {
        criticality {
            type = "MISSION_CRITICAL"
        }
        environment {
            type = "PRODUCTION"
        }
        business_owners {
            display_name = "Alice"
            email        = "alice@example.com"
        }
        developer_owners {
            display_name = "Bob"
            email        = "bob@example.com"
        }
        operator_owners {
            display_name = "Charlie"
            email        = "charlie@example.com"
        }
    }
}

Registrar servicios y cargas de trabajo

App Hub te permite seleccionar recursos admitidos ubicados dentro del límite de gestión de tu aplicación para registrarlos como servicios y cargas de trabajo. Después de crear una aplicación, registra tus recursos deGoogle Cloud como servicios y cargas de trabajo en ella.

Solo puedes registrar servicios exclusivos en una aplicación. Sin embargo, los servicios compartidos se pueden registrar en más de una aplicación. App Hub detectará los servicios compartidos cuando los registre en una aplicación, aunque ya estén registrados en otra aplicación, pero es posible que no pueda modificar sus atributos.

Consola

  1. En la Google Cloud consola, usa el selector de proyectos para seleccionar tu proyecto de gestión.
  2. Ve a la página Aplicaciones desde App Hub:

    Ve a Aplicaciones.

  3. Haga clic en el nombre de la aplicación para la que quiera registrar recursos Google Cloud existentes como servicios y cargas de trabajo.

  4. En la página de detalles de la aplicación, seleccione la pestaña Servicios y cargas de trabajo. En esta pestaña se muestra la lista de recursos que puedes registrar en la aplicación. App Hub te permite seleccionar recursos admitidos ubicados dentro del límite de gestión de tu aplicación como servicios o cargas de trabajo.

  5. Para cada servicio o carga de trabajo que quieras registrar, haz lo siguiente:

    1. En la pestaña Servicios y cargas de trabajo, haz clic en Registrar servicio o carga de trabajo.
    2. Ve al panel Seleccionar recurso y haz clic en Buscar para encontrar el servicio o la carga de trabajo que quieras registrar.
    3. Elige el servicio o la carga de trabajo y haz clic en Seleccionar.
    4. En el panel Seleccionar recurso, introduce un nombre para el servicio o la carga de trabajo y haz clic en Continuar.
    5. Opcional: En el panel Añadir atributos, define los atributos de nivel superior del recurso para que se pueda descubrir y gestionar.

    6. Haz clic en Continuar.

    7. Opcional: En la sección Añadir propietarios, añade más detalles sobre los propietarios del servicio o la carga de trabajo.

    8. Haz clic en Registrarse.

En la pestaña Servicios y cargas de trabajo se muestra el servicio o la carga de trabajo registrados.

gcloud

App Hub te permite seleccionar recursos admitidos ubicados dentro del límite de gestión de tu aplicación como servicios o cargas de trabajo. Usa la CLI de Google Cloud para enumerar los servicios o las cargas de trabajo que puedes registrar en la aplicación desde tu terminal o Cloud Shell. Los comandos son ligeramente diferentes para los servicios y las cargas de trabajo:

Registrar servicios

  1. Muestra los servicios disponibles a los que puedes registrar una aplicación:

    gcloud apphub discovered-services list \
      --project=PROJECT_ID \
      --location=REGION \
      --filter=FILTER_EXPRESSION
    

    En el caso de las marcas obligatorias y opcionales, sustituya lo siguiente:

    • Obligatorio: PROJECT_ID, el ID del proyecto de gestión.
    • Obligatorio: REGION: la región específica de tu servicio en función de tu distribución geográfica. Usa uno de los siguientes valores:

    • Opcional: FILTER_EXPRESSION: la expresión de filtro de la marca --filter para mostrar solo los servicios de un proyecto específico dentro del límite de gestión de aplicaciones o con una propiedad específica. Por ejemplo:

      • service_properties.gcp_project=projects/PROJECT_ID
      • service_properties.gcp_project=projects/PROJECT_ID AND service_reference.uri~"forwardingRules"

    La salida es similar al siguiente ejemplo:

    ID            SERVICE_REFERENCE                                                                                             SERVICE_PROPERTIES
    SERVICE_ID    {'uri': '//compute.googleapis.com/projects/PROJECT_NUMBER/regions/REGION/forwardingRules/forwarding-rule'}    {'gcpProject': 'projects/PROJECT_ID', 'location': 'REGION'}
    
  2. Copia el ID de servicio, SERVICE_ID, de la salida.

  3. Registra el servicio en tu aplicación:

    gcloud apphub applications services create SERVICE_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --application=APPLICATION_NAME \
      --discovered-service=projects/PROJECT_ID/locations/REGION/discoveredServices/SERVICE_ID \
      --display-name=SERVICE_DISPLAY_NAME \
      --criticality-type=CRITICALITY \
      --environment-type=ENVIRONMENT \
      --developer-owners=display-name=DEV_NAME,email=DEV_EMAIL \
      --operator-owners=display-name=OPERATOR_NAME,email=OPERATOR_EMAIL \
      --business-owners=display-name=BUSINESS_NAME,email=BUSINESS_EMAIL
    

    Sustituye SERVICE_NAME por el nombre que quieras usar para registrar el servicio en la aplicación.

    Usa marcas opcionales, como --criticality-type, para definir los atributos de nivel superior del servicio y facilitar la detección y la gobernanza.

    En el caso de las marcas obligatorias y opcionales, sustituya lo siguiente:

    • Obligatorio: PROJECT_ID, el ID del proyecto de gestión.
    • Obligatorio: REGION: la región específica de tu servicio en función de tu distribución geográfica. Usa uno de los siguientes valores:

    • Obligatorio: APPLICATION_NAME, el nombre de la aplicación para la que quieres registrar el servicio.

    • Obligatorio: SERVICE_ID, el ID de servicio que has copiado del resultado anterior.

    • Opcional: SERVICE_DISPLAY_NAME: el nombre visible de tu servicio.

    • Opcional: CRITICALITY, la importancia del servicio para tus operaciones. Se debe utilizar uno de los siguientes valores:

      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • Opcional: ENVIRONMENT: la fase del ciclo de vida del software. Se debe utilizar uno de los valores indicados a continuación.

      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • Opcional: DEV_NAME y DEV_EMAIL: el nombre visible y la dirección de correo del propietario del desarrollador, respectivamente.

    • Opcional: OPERATOR_NAME y OPERATOR_EMAIL: el nombre visible y la dirección de correo del propietario del operador, respectivamente.

    • Opcional: BUSINESS_NAME y BUSINESS_EMAIL: el nombre visible y la dirección de correo del propietario de la empresa, respectivamente.

  4. Muestra los servicios registrados en tu aplicación:

    gcloud apphub applications services list \
      --application=APPLICATION_NAME
      --project=PROJECT_ID \
      --location=REGION
    

    Debes obtener un resultado similar al siguiente para cada servicio registrado:

    ID              DISPLAY_NAME            SERVICE_REFERENCE                                                                                             CREATE_TIME
    SERVICE_NAME    SERVICE_DISPLAY_NAME    {'uri': '//compute.googleapis.com/projects/PROJECT_NUMBER/regions/REGION/forwardingRules/forwarding-rule'}    2023-11-01T21:38:08
    

Registrar cargas de trabajo

  1. Lista las cargas de trabajo disponibles que puedes registrar en una aplicación:

    gcloud apphub discovered-workloads list \
      --project=PROJECT_ID \
      --location=REGION \
      --filter=FILTER_EXPRESSION
    

    En el caso de las marcas obligatorias y opcionales, sustituya lo siguiente:

    • Obligatorio: PROJECT_ID, el ID del proyecto de gestión.
    • Obligatorio: REGION: la región específica de tu carga de trabajo en función de tu distribución geográfica. Usa uno de los siguientes valores:

    • Opcional: FILTER_EXPRESSION: la expresión de filtro de la marca --filter para mostrar solo las cargas de trabajo de un proyecto específico dentro del límite de gestión de aplicaciones o con una propiedad específica, por ejemplo, workload_properties.gcp_project=projects/PROJECT_ID.

    La salida es similar al siguiente ejemplo:

    ID             WORKLOAD_REFERENCE                                                                                    WORKLOAD_PROPERTIES
    WORKLOAD_ID    {'uri': '//compute.googleapis.com/projects/PROJECT_NUMBER/regions/REGION/instanceGroups/mig-name'}    {'gcpProject': 'projects/PROJECT_ID', 'location': 'REGION'}
    
  2. Copia el ID de carga de trabajo, WORKLOAD_ID, de la salida.

  3. Registra la carga de trabajo en tu aplicación:

    gcloud apphub applications workloads create WORKLOAD_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --application=APPLICATION_NAME \
      --discovered-workload=projects/PROJECT_ID/locations/REGION/discoveredWorkloads/WORKLOAD_ID \
      --display-name=WORKLOAD_DISPLAY_NAME \
      --criticality-type=CRITICALITY \
      --environment-type=ENVIRONMENT \
      --developer-owners=display-name=DEV_NAME,email=DEV_EMAIL \
      --operator-owners=display-name=OPERATOR_NAME,email=OPERATOR_EMAIL \
      --business-owners=display-name=BUSINESS_NAME,email=BUSINESS_EMAIL
    

    Sustituye WORKLOAD_NAME por el nombre que quieras usar para registrar la carga de trabajo en la aplicación.

    Usa marcas opcionales, como --criticality-type, para definir los atributos de nivel superior de la carga de trabajo y facilitar la detección y la gestión.

    En el caso de las marcas obligatorias y opcionales, sustituya lo siguiente:

    • Obligatorio: PROJECT_ID, el ID del proyecto de gestión.
    • Obligatorio: REGION: la región específica de tu carga de trabajo en función de tu distribución geográfica. Usa uno de los siguientes valores:

    • Obligatorio: APPLICATION_NAME: el nombre de la aplicación para la que quieres registrar la carga de trabajo.

    • Obligatorio: WORKLOAD_ID, el ID de carga de trabajo que has copiado del resultado anterior.

    • Opcional: WORKLOAD_DISPLAY_NAME: el nombre visible de tu carga de trabajo.

    • Opcional: CRITICALITY: el nivel de importancia de la carga de trabajo para tus operaciones. Se debe utilizar uno de los siguientes valores:

      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • Opcional: ENVIRONMENT: la fase del ciclo de vida del software. Se debe utilizar uno de los valores indicados a continuación.

      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • Opcional: DEV_NAME y DEV_EMAIL: el nombre visible y la dirección de correo del propietario del desarrollador, respectivamente.

    • Opcional: OPERATOR_NAME y OPERATOR_EMAIL: el nombre visible y la dirección de correo del propietario del operador, respectivamente.

    • Opcional: BUSINESS_NAME y BUSINESS_EMAIL: el nombre visible y la dirección de correo del propietario de la empresa, respectivamente.

  4. Lista las cargas de trabajo registradas en tu aplicación:

    gcloud apphub applications workloads list \
      --application=APPLICATION_NAME
      --project=PROJECT_ID \
      --location=REGION
    

    Debes obtener un resultado similar al siguiente para cada carga de trabajo registrada:

    ID               DISPLAY_NAME             WORKLOAD_REFERENCE                                                                                    CREATE_TIME
    WORKLOAD_NAME    WORKLOAD_DISPLAY_NAME    {'uri': '//compute.googleapis.com/projects/PROJECT_NUMBER/regions/REGION/instanceGroups/mig-name'}    2023-11-01T21:38:08
    

Terraform

Para usar Terraform y registrar Google Cloud recursos dentro de tu límite de gestión de aplicaciones como servicios o cargas de trabajo en una aplicación, usa las fuentes de datos google_apphub_discovered_service y google_apphub_discovered_workload para obtener información de forma dinámica sobre los recursos que quieras registrar.

A continuación, usa los recursos google_apphub_service o google_apphub_workload para registrar servicios o cargas de trabajo, respectivamente.

Registrar servicios

  1. Obtener información sobre un servicio mediante su URI:

    data "google_apphub_discovered_service" "my-service" {
        location = "REGION"
        service_uri = "SERVICE_URI"
    }
    
  2. Registra el servicio descubierto en tu aplicación. Por ejemplo:

    resource "google_apphub_service" "example" {
        project            = "my-project-id"
        location           = "us-central1"
        application_id     = google_apphub_application.example.application_id
        service_id         = "frontend-load-balancer"
        discovered_service = data.google_apphub_discovered_service.my-forwarding-rule.name
        display_name       = "Frontend Load Balancer"
        description        = "The primary load balancer for the frontend."
    }
    

Registrar cargas de trabajo

  1. Obtener información sobre una carga de trabajo mediante su URI:

    data "google_apphub_discovered_workload" "my-workload" {
        location = "REGION"
        workload_uri = "WORKLOAD_URI"
    }
    
  2. Registra la carga de trabajo detectada en tu aplicación. Por ejemplo:

    resource "google_apphub_workload" "example" {
        project             = "my-project-id"
        location            = "us-central1"
        application_id      = google_apphub_application.example.application_id
        workload_id         = "frontend-instance-group"
        discovered_workload = data.google_apphub_discovered_workload.my-mig.name
        display_name        = "Frontend Instance Group"
        description         = "The managed instance group for the frontend."
    }
    

El estado de registro de los servicios y las cargas de trabajo registrados en una aplicación puede cambiar a desasociado si mueves un proyecto o una carpeta fuera del límite de gestión de tu aplicación o eliminas el recurso subyacente. Los servicios y las cargas de trabajo independientes permanecen en la aplicación hasta que los anulas, pero App Hub ya no puede gestionarlos ni monitorizarlos. Para obtener más información, consulte Estado de registro de servicios y cargas de trabajo.

Para volver a asociar servicios o cargas de trabajo a una aplicación, debes registrarlos de nuevo.

Conceder permisos e iniciar operaciones

Después de crear una aplicación y registrar servicios y cargas de trabajo en App Hub, debes conceder acceso a los usuarios en función de las responsabilidades del ciclo de vida para gestionar esta agrupación lógica como una sola unidad:

  1. En función de tus necesidades de acceso, puedes conceder permisos a aplicaciones concretas o a todas las aplicaciones. Para ver una lista de los roles recomendados, consulta Conceder roles centrados en aplicaciones a los usuarios.
  2. También puedes ir a Cloud Hub para ver un panel de control operativo unificado de la aplicación que hayas definido, incluidos sus datos de estado, rendimiento y coste.