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:
Para los administradores:
- Elige el modelo de configuración de la aplicación. Debes configurar un proyecto de gestión y definir un límite de gestión de aplicaciones que incluya los Google Cloud recursos que quieras organizar.
- Habilita las APIs necesarias para todos los recursos de Google Cloud que quieras usar.
- Concede acceso a los usuarios. Asigna los roles de gestión de identidades y accesos adecuados en función de las responsabilidades del usuario en el ciclo de vida de la aplicación.
Para desarrolladores y operadores:
- Confirma con tu administrador que se ha completado la configuración inicial.
- Asegúrate de que tienes los roles de IAM necesarios para las tareas que quieras realizar.
- Abre tu proyecto de gestión en la Google Cloud consola o busca el ID del proyecto de gestión para las interacciones con Terraform o la CLI de Google Cloud.
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
- En la Google Cloud consola, usa el selector de proyectos para seleccionar tu proyecto de gestión.
Ve a la página Aplicaciones desde App Hub:
Haz clic en Crear aplicación.
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.
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.
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.
Haz clic en Crear.
gcloud
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_EMAILSustituye
APPLICATION_NAMEpor 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:REGIONALpara aplicaciones regionales.GLOBALpara 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.- Si la
--scope-typeubicación de tu aplicaciónREGIONALesREGIONAL, especifica el nombre de una región admitida por App Hub. - Si la
--scope-typeubicación de tu aplicación está definida comoGLOBAL, usaglobal.
- Si la
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_CRITICALHIGHMEDIUMLOW
Opcional:
ENVIRONMENT: la fase del ciclo de vida del software. Se debe utilizar uno de los valores indicados a continuación.PRODUCTIONSTAGINGDEVELOPMENTTEST
Opcional:
DEV_NAMEyDEV_EMAIL: el nombre visible y la dirección de correo del propietario del desarrollador, respectivamente.Opcional:
OPERATOR_NAMEyOPERATOR_EMAIL: el nombre visible y la dirección de correo del propietario del operador, respectivamente.Opcional:
BUSINESS_NAMEyBUSINESS_EMAIL: el nombre visible y la dirección de correo del propietario de la empresa, respectivamente.
- Obligatorio:
Lista las aplicaciones de tu proyecto:
gcloud apphub applications list \ --project=PROJECT_ID \ --location=REGIONDebe 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
- En la Google Cloud consola, usa el selector de proyectos para seleccionar tu proyecto de gestión.
Ve a la página Aplicaciones desde App Hub:
Haga clic en el nombre de la aplicación para la que quiera registrar recursos Google Cloud existentes como servicios y cargas de trabajo.
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.
Para cada servicio o carga de trabajo que quieras registrar, haz lo siguiente:
- En la pestaña Servicios y cargas de trabajo, haz clic en Registrar servicio o carga de trabajo.
- Ve al panel Seleccionar recurso y haz clic en Buscar para encontrar el servicio o la carga de trabajo que quieras registrar.
- Elige el servicio o la carga de trabajo y haz clic en Seleccionar.
- En el panel Seleccionar recurso, introduce un nombre para el servicio o la carga de trabajo y haz clic en Continuar.
Opcional: En el panel Añadir atributos, define los atributos de nivel superior del recurso para que se pueda descubrir y gestionar.
Haz clic en Continuar.
Opcional: En la sección Añadir propietarios, añade más detalles sobre los propietarios del servicio o la carga de trabajo.
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
Muestra los servicios disponibles a los que puedes registrar una aplicación:
gcloud apphub discovered-services list \ --project=PROJECT_ID \ --location=REGION \ --filter=FILTER_EXPRESSIONEn 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:- Si el servicio es regional, especifica el nombre de la región admitida por App Hub.
- Si el servicio es global, usa
global.
Opcional:
FILTER_EXPRESSION: la expresión de filtro de la marca--filterpara 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_IDservice_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'}- Obligatorio:
Copia el ID de servicio,
SERVICE_ID, de la salida.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_EMAILSustituye
SERVICE_NAMEpor 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:- Si el servicio es regional, especifica el nombre de la región admitida por App Hub.
- Si el servicio es global, usa
global.
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_CRITICALHIGHMEDIUMLOW
Opcional:
ENVIRONMENT: la fase del ciclo de vida del software. Se debe utilizar uno de los valores indicados a continuación.PRODUCTIONSTAGINGDEVELOPMENTTEST
Opcional:
DEV_NAMEyDEV_EMAIL: el nombre visible y la dirección de correo del propietario del desarrollador, respectivamente.Opcional:
OPERATOR_NAMEyOPERATOR_EMAIL: el nombre visible y la dirección de correo del propietario del operador, respectivamente.Opcional:
BUSINESS_NAMEyBUSINESS_EMAIL: el nombre visible y la dirección de correo del propietario de la empresa, respectivamente.
- Obligatorio:
Muestra los servicios registrados en tu aplicación:
gcloud apphub applications services list \ --application=APPLICATION_NAME --project=PROJECT_ID \ --location=REGIONDebes 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
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_EXPRESSIONEn 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:- Si la carga de trabajo es regional, especifica el nombre de la región admitida por App Hub.
- Si la carga de trabajo es global, usa
global.
Opcional:
FILTER_EXPRESSION: la expresión de filtro de la marca--filterpara 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'}- Obligatorio:
Copia el ID de carga de trabajo,
WORKLOAD_ID, de la salida.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_EMAILSustituye
WORKLOAD_NAMEpor 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:- Si la carga de trabajo es regional, especifica el nombre de la región admitida por App Hub.
- Si la carga de trabajo es global, usa
global.
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_CRITICALHIGHMEDIUMLOW
Opcional:
ENVIRONMENT: la fase del ciclo de vida del software. Se debe utilizar uno de los valores indicados a continuación.PRODUCTIONSTAGINGDEVELOPMENTTEST
Opcional:
DEV_NAMEyDEV_EMAIL: el nombre visible y la dirección de correo del propietario del desarrollador, respectivamente.Opcional:
OPERATOR_NAMEyOPERATOR_EMAIL: el nombre visible y la dirección de correo del propietario del operador, respectivamente.Opcional:
BUSINESS_NAMEyBUSINESS_EMAIL: el nombre visible y la dirección de correo del propietario de la empresa, respectivamente.
- Obligatorio:
Lista las cargas de trabajo registradas en tu aplicación:
gcloud apphub applications workloads list \ --application=APPLICATION_NAME --project=PROJECT_ID \ --location=REGIONDebes 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
Obtener información sobre un servicio mediante su URI:
data "google_apphub_discovered_service" "my-service" { location = "REGION" service_uri = "SERVICE_URI" }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
Obtener información sobre una carga de trabajo mediante su URI:
data "google_apphub_discovered_workload" "my-workload" { location = "REGION" workload_uri = "WORKLOAD_URI" }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:
- 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.
- 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.