Registrar tus recursos Google Cloud existentes comoservicios ycargas de trabajo en una aplicación de App Hub te permite simplificar la administración organizando los recursos según su propósito comercial. Este enfoque proporciona visibilidad, supervisión, administración y control operativo unificados.
En esta guía, se muestra cómo agrupar los recursos Google Cloud existentes que aún no se definieron formalmente como una aplicación.
Antes de comenzar
Debes completar la configuración inicial para la administración de aplicaciones antes de organizar los recursos en aplicaciones. Por lo general, este proceso incluye los siguientes roles y pasos:
Para administradores:
- Elige el modelo de configuración de tu aplicación. Debes configurar un proyecto de administración y definir un límite de administración de aplicaciones que incluya los recursos de Google Cloud que deseas organizar.
- Habilita las APIs obligatorias para todos los recursos de Google Cloud que planeas usar.
- Otorga acceso a los usuarios. Asigna los roles de IAM adecuados según las responsabilidades del usuario en el ciclo de vida de la aplicación.
Para desarrolladores y operadores:
- Confirma con tu administrador que se haya finalizado la configuración inicial.
- Asegúrate de tener los roles de IAM necesarios para las tareas que deseas realizar.
- Abre tu proyecto de administración en la consola de Google Cloud o busca el ID del proyecto de administración para las interacciones de Terraform o Google Cloud CLI.
Crea una aplicación
Crea una aplicación en App Hub para que actúe como un contenedor lógico para tus recursos Google Cloud existentes:
Console
En la consola de Google Cloud , usa el selector de proyectos para seleccionar tu proyecto de administración.
Ve a la página Applications desde App Hub:
Haz clic en Crear aplicación.
En la pestaña Detalles de la aplicación, selecciona la mejor ubicación para tu aplicación según tus requisitos de distribución geográfica:
- Selecciona Global para crear una aplicación global.
- Selecciona Regional para crear una aplicación regional. Luego, selecciona la región específica para tu aplicación según las regiones admitidas por el Centro de aplicaciones.
Para obtener más información sobre la mejor ubicación para tu aplicación, consulta Aplicaciones globales y regionales.
Ingresa un nombre para tu aplicación.
Este nombre es un identificador único que solo puede contener letras en minúscula, números o guiones. No puedes cambiar este nombre después de crear la aplicación.
De manera opcional, agrega un nombre visible y una descripción para la aplicación.
Estos no son identificadores únicos y puedes cambiarlos después de crear la aplicación.
Haz clic en Continuar.
En la pestaña Recursos de la aplicación, explora los recursos de infraestructura y selecciona las casillas de verificación de los recursos que deseas registrar como servicios y cargas de trabajo de la aplicación.
Puedes seleccionar hasta 10 recursos a la vez.
Haz clic en Continuar.
En la pestaña Atributos y propietarios, puedes agregar atributos para la aplicación, como la importancia, el entorno y los propietarios de la aplicación.
Puedes elegir usar los mismos atributos y propietarios para los recursos que registras en la aplicación o definirlos más adelante.
Haz clic en Crear.
Cuando se crea la aplicación, en la página Aplicaciones, se muestran sus detalles, incluidos los recursos que registraste como servicios y cargas de trabajo. Después de crear la aplicación, puedes registrar más servicios y cargas de trabajo en ella.
gcloud
Usa Google Cloud CLI 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_EMAILReemplaza
APPLICATION_NAMEpor el nombre de la aplicación. Este nombre es un identificador único que solo puede contener letras en minúscula, números o guiones.Usa marcas opcionales, como
--criticality-type, para definir los atributos de nivel superior de la aplicación y admitir la detección y la administración.Para las marcas obligatorias y opcionales, reemplaza lo siguiente:
- Obligatorio:
PROJECT_ID: ID del proyecto de administración. Obligatorio:
LOCATION: Es la ubicación de tu aplicación según tus requisitos de distribución geográfica. Usa uno de los siguientes valores:REGIONALpara aplicaciones regionalesGLOBALpara 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. Usa uno de los siguientes valores:- Si la ubicación
--scope-typede tu aplicación está configurada comoREGIONAL, especifica un nombre de región compatible con App Hub. - Si la ubicación de
--scope-typepara tu aplicación está establecida enGLOBAL, usaglobal.
- Si la ubicación
Opcional:
DISPLAY_NAME: Es 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: Nivel de importancia de la aplicación para tus operaciones. Usa uno de los siguientes valores:MISSION_CRITICALHIGHMEDIUMLOW
Opcional:
ENVIRONMENTes la etapa del ciclo de vida del software. Usa uno de los siguientes valores:PRODUCTIONSTAGINGDEVELOPMENTTEST
Opcional:
DEV_NAMEyDEV_EMAIL: El nombre visible y la dirección de correo electrónico del propietario desarrollador, respectivamente.Opcional:
OPERATOR_NAMEyOPERATOR_EMAIL: El nombre visible y la dirección de correo electrónico del propietario del operador, respectivamente.Opcional:
BUSINESS_NAMEyBUSINESS_EMAIL: El nombre visible y la dirección de correo electrónico del propietario de la empresa, respectivamente.
- Obligatorio:
Enumera las aplicaciones de tu proyecto:
gcloud apphub applications list \ --project=PROJECT_ID \ --location=REGIONDebes 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, incluidos su nombre, ubicación y atributos.
En el siguiente ejemplo, se crea una aplicación regional en us-central1 con atributos definidos de criticidad, entorno y propietario:
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"
}
}
}
Registra servicios y cargas de trabajo
App Hub te permite seleccionar recursos compatibles ubicados dentro del límite de administración de tu aplicación para registrarlos como servicios y cargas de trabajo. Después de crear una aplicación, puedes registrar recursos Google Cloudcomo 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 descubrirá los servicios compartidos cuando los registres en una aplicación, incluso si ya están registrados en otra aplicación, pero es posible que no puedas modificar sus atributos.
Console
Después de crear una aplicación, puedes registrar varios recursos en ella:
En la consola de Google Cloud , usa el selector de proyectos para seleccionar tu proyecto de administración.
Ve a la página Applications desde App Hub:
Haz clic en el nombre de la aplicación para la que deseas registrar recursos deGoogle Cloud .
En la página de la aplicación, selecciona la pestaña Servicios y cargas de trabajo.
Haz clic en Registrar servicios o cargas de trabajo.
En la pestaña Servicios y cargas de trabajo, explora los recursos de infraestructura y selecciona las casillas de verificación de los recursos que deseas registrar como servicios o cargas de trabajo de la aplicación.
Puedes seleccionar hasta 10 recursos a la vez.
Haz clic en Continuar.
En la pestaña Atributos y propietarios, puedes agregar atributos para estos recursos, como la importancia, el entorno y los propietarios de los recursos.
Puedes usar los mismos atributos y propietarios de la aplicación o definir atributos diferentes más adelante.
Haz clic en Registrar.
En la pestaña Servicios y cargas de trabajo, se muestran todos los servicios y las cargas de trabajo registrados de la aplicación.
gcloud
App Hub te permite seleccionar recursos compatibles ubicados dentro del límite de administración de tu aplicación como servicios o cargas de trabajo. Usa Google Cloud CLI 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
Enumera los servicios disponibles a los que puedes registrar una aplicación:
gcloud apphub discovered-services list \ --project=PROJECT_ID \ --location=REGION \ --filter=FILTER_EXPRESSIONPara las marcas obligatorias y opcionales, reemplaza lo siguiente:
- Obligatorio:
PROJECT_IDes el ID del proyecto de administración. Obligatorio:
REGION: Es la región específica de tu servicio según tu distribución geográfica. Usa uno de los siguientes valores:- Si el servicio es regional, especifica el nombre de la región compatible con App Hub.
- Si el servicio es global, usa
global.
Opcional:
FILTER_EXPRESSION: Es la expresión de filtro para la marca--filterpara mostrar solo los servicios de un proyecto especificado dentro del límite de administración de la aplicación 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"
El resultado 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 del servicio,
SERVICE_ID, del resultado.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_EMAILReemplaza
SERVICE_NAMEpor el nombre que deseas 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 admitir la detección y la administración.Para las marcas obligatorias y opcionales, reemplaza lo siguiente:
- Obligatorio:
PROJECT_IDes el ID del proyecto de administración. Obligatorio:
REGION: Es la región específica de tu servicio según tu distribución geográfica. Usa uno de los siguientes valores:- Si el servicio es regional, especifica el nombre de la región compatible con App Hub.
- Si el servicio es global, usa
global.
Obligatorio:
APPLICATION_NAME: Es el nombre de la aplicación para la que deseas registrar el servicio.Obligatorio:
SERVICE_ID: Es el ID del servicio que copiaste del resultado anterior.Opcional:
SERVICE_DISPLAY_NAME: Es el nombre visible de tu servicio.Opcional:
CRITICALITY: Es el nivel de importancia del servicio para tus operaciones. Usa uno de los siguientes valores:MISSION_CRITICALHIGHMEDIUMLOW
Opcional:
ENVIRONMENTes la etapa del ciclo de vida del software. Usa uno de los siguientes valores:PRODUCTIONSTAGINGDEVELOPMENTTEST
Opcional:
DEV_NAMEyDEV_EMAIL: El nombre visible y la dirección de correo electrónico del propietario desarrollador, respectivamente.Opcional:
OPERATOR_NAMEyOPERATOR_EMAIL: El nombre visible y la dirección de correo electrónico del propietario del operador, respectivamente.Opcional:
BUSINESS_NAMEyBUSINESS_EMAIL: El nombre visible y la dirección de correo electrónico del propietario de la empresa, respectivamente.
- Obligatorio:
Enumera 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
Registra cargas de trabajo
Enumera las cargas de trabajo disponibles que puedes registrar en una aplicación:
gcloud apphub discovered-workloads list \ --project=PROJECT_ID \ --location=REGION \ --filter=FILTER_EXPRESSIONPara las marcas obligatorias y opcionales, reemplaza lo siguiente:
- Obligatorio:
PROJECT_IDes el ID del proyecto de administración. Obligatorio:
REGION: Es la región específica de tu carga de trabajo según 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 compatible con App Hub.
- Si la carga de trabajo es global, usa
global.
Opcional:
FILTER_EXPRESSION: Es la expresión de filtro para la marca--filterpara mostrar solo las cargas de trabajo de un proyecto especificado dentro del límite de administración de la aplicación o con una propiedad específica, por ejemplo,workload_properties.gcp_project=projects/PROJECT_ID.
El resultado 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 la carga de trabajo,
WORKLOAD_ID, del resultado.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_EMAILReemplaza
WORKLOAD_NAMEpor el nombre que deseas 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 admitir la detección y la administración.Para las marcas obligatorias y opcionales, reemplaza lo siguiente:
- Obligatorio:
PROJECT_IDes el ID del proyecto de administración. Obligatorio:
REGION: Es la región específica de tu carga de trabajo según 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 compatible con App Hub.
- Si la carga de trabajo es global, usa
global.
Obligatorio:
APPLICATION_NAME: Es el nombre de la aplicación para la que deseas registrar la carga de trabajo.Obligatorio:
WORKLOAD_ID: Es el ID de la carga de trabajo que copiaste de la salida anterior.Opcional:
WORKLOAD_DISPLAY_NAME: Es el nombre visible de tu carga de trabajo.Opcional:
CRITICALITY: Es el nivel de importancia de la carga de trabajo para tus operaciones. Usa uno de los siguientes valores:MISSION_CRITICALHIGHMEDIUMLOW
Opcional:
ENVIRONMENTes la etapa del ciclo de vida del software. Usa uno de los siguientes valores:PRODUCTIONSTAGINGDEVELOPMENTTEST
Opcional:
DEV_NAMEyDEV_EMAIL: El nombre visible y la dirección de correo electrónico del propietario desarrollador, respectivamente.Opcional:
OPERATOR_NAMEyOPERATOR_EMAIL: El nombre visible y la dirección de correo electrónico del propietario del operador, respectivamente.Opcional:
BUSINESS_NAMEyBUSINESS_EMAIL: El nombre visible y la dirección de correo electrónico del propietario de la empresa, respectivamente.
- Obligatorio:
Enumera 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 recursos Google Cloud dentro del límite de administración de tu aplicación como servicios o cargas de trabajo en una aplicación, usa las fuentes de datosgoogle_apphub_discovered_serviceygoogle_apphub_discovered_workloadpara recuperar de forma dinámica información sobre los recursos que deseas registrar.
Luego, usa los recursos google_apphub_service o google_apphub_workload para registrar servicios o cargas de trabajo, respectivamente.
Registrar servicios
Obtén información sobre un servicio con su URI:
data "google_apphub_discovered_service" "my-service" { location = "REGION" service_uri = "SERVICE_URI" }Registra el servicio detectado 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." }
Registra cargas de trabajo
Obtén información sobre una carga de trabajo con su URI:
data "google_apphub_discovered_workload" "my-workload" { location = "REGION" workload_uri = "WORKLOAD_URI" }Registra la carga de trabajo descubierta 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 desvinculado si mueves un proyecto o una carpeta fuera del límite de administración de tu aplicación o si borras el recurso subyacente. Los servicios y las cargas de trabajo desconectados permanecen en la aplicación hasta que los anulas, pero App Hub ya no puede administrarlos ni supervisarlos. Para obtener más información, consulta Estado de registro de servicios y cargas de trabajo.
Para volver a adjuntar servicios o cargas de trabajo a una aplicación, debes volver a registrarlos.
Cómo otorgar permisos y comenzar las operaciones
Después de crear una aplicación y registrar servicios y cargas de trabajo en App Hub, debes otorgar acceso de usuario según las responsabilidades del ciclo de vida para administrar esta agrupación lógica como una sola unidad:
- Según tus necesidades de acceso, puedes otorgar permisos a aplicaciones individuales o a todas las aplicaciones. Para obtener una lista de los roles recomendados, consulta Otorga roles centrados en la aplicación a tus usuarios.
- De manera opcional, navega a Cloud Hub para ver un panel operativo unificado de la aplicación que definiste, incluidos sus datos de estado, rendimiento y costos.