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, gobernanza y control operativo unificados.
En esta guía, se muestra cómo agrupar 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.
Navega a la página Aplicaciones desde App Hub:
Haz clic en Crear aplicación.
En el panel Elige el nombre y la región de la aplicación, selecciona la mejor ubicación para tu aplicación según tus requisitos de distribución geográfica:
- 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.
- 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.
Ingresa el Nombre de la aplicación y haz clic en Continuar. 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.
Opcional: Define los atributos de nivel superior de la aplicación para admitir la detección y la administración:
- En la sección Agregar atributos, ingresa 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 Environment, selecciona un valor para indicar la etapa del ciclo de vida del software.
- Agrega los detalles de la información de contacto de los propietarios, incluidos su nombre visible y dirección de correo electrónico. Ten en cuenta que las direcciones de correo electrónico deben tener el formato
username@yourdomain, por ejemplo,jane-doe@gmail.com.
Haz clic en Crear.
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 respaldar 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 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. 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, registra tus recursos deGoogle Cloud existentes 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 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
- En la consola de Google Cloud , usa el selector de proyectos para seleccionar tu proyecto de administración.
Navega a la página Aplicaciones desde App Hub:
Haz clic en el nombre de la aplicación para la que deseas registrar recursos Google Cloud existentes como servicios y cargas de trabajo.
En la página de detalles de la aplicación, selecciona la pestaña Servicios y cargas de trabajo. En esta pestaña, se muestra la lista de recursos existentes que puedes registrar en la aplicación. 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.
Para cada servicio o carga de trabajo que desees registrar, haz lo siguiente:
- En la pestaña Servicios y cargas de trabajo, haz clic en Registrar servicio o carga de trabajo.
- Navega al panel Seleccionar recurso y haz clic en Explorar para encontrar el servicio o la carga de trabajo que deseas registrar.
- Elige el servicio o la carga de trabajo y haz clic en Seleccionar.
- En el panel Seleccionar recurso, ingresa un nombre para el servicio o la carga de trabajo y haz clic en Continuar.
Opcional: En el panel Agregar atributos, define los atributos de nivel superior del recurso para admitir la detección y la administración.
Haz clic en Continuar.
Opcional: En la sección Agregar propietarios, agrega más detalles sobre los propietarios del servicio o la carga de trabajo.
Haz clic en Registrar.
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 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_ID: 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--filterque solo muestra 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_ID: 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 de 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_ID: 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_ID: 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 datos google_apphub_discovered_service y google_apphub_discovered_workload para 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.
Otorga permisos y comienza 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.