This document is intended for individuals who set up, administer, and use App Hub applications.
Application-centric organization
App Hub aligns with your business goals by enabling you to organize your Google Cloud resources in an application-centric way, the same way you think about business functionalities. App Hub is fully managed by Google Cloud and doesn't require you to install any additional infrastructure.
App Hub administrators can easily manage infrastructure resources drawn from one or more Google Cloud projects, simplifying complex business operations and governance at scale. App Hub helps organize these infrastructure resources by creating App Hub applications that include these resources as App Hub services and workloads. Registering services and workloads to an application can help you answer the following questions:
- How many applications exist across all my projects?
- How are the services and workloads in my applications dependent on each other?
- Who owns these applications, services, and workloads?
- How many applications are critical?
- How many applications are in production?
For example, you might have multiple teams involved with developing applications for your business. These teams can create hundreds or thousands of Google Cloud resources scattered across many Google Cloud projects. App Hub automatically discovers infrastructure resources and represents them as service and workload abstractions. You can register these services and workloads into applications, clarifying resource ownership and criticality. For more information, see App Hub concepts and data model.
When the resources are organized into applications, you can apply business logic and policies to an application, knowing that only that application is affected and knowing which individuals in your organization are responsible for that application. For example, you can create an application for a particular environment, such as production, and provide highly privileged access to its owners.
If your business undergoes a change in the team structure, you can easily transfer application ownerships with App Hub. You can also more easily determine dependencies among different resources and applications when you use App Hub.
Use cases
App Hub supports the following use cases:
Organize and categorize your applications - App Hub enables you to organize and categorize your applications using attributes such as
Owner
,Criticality
, andEnvironment
. This makes it easy to find and manage specific applications and their associated resources.Understand resources in your application - App Hub helps you understand the compositions of your applications. This can help developers and operators to understand how your applications work and what their dependencies are.
Monitor resources in your application (Preview) - App Hub lets you view and monitor logs, metrics, and incidents for App Hub applications and its registered services and workloads. This help operators to understand application performance and identify dependencies to resolve issues.
Use the Gemini Cloud Assist pane to retrieve information about your application using natural language questions (Preview).
Concepts and data model
App Hub has three key concepts:
- An application is a functional grouping of services and workloads that results in an end-to-end business functionality.
- A workload represents a binary deployment that performs the smallest logical subset of a business functionality, for example, a managed instance group (MIG) or Google Kubernetes Engine (GKE) deployment.
- A service is a network or API interface that exposes functionality to clients for consumption over the network; for example, the forwarding rule for a load balancer.
App Hub is built around the concept of an application.
You can use applications and their associated attributes to create governance and operational boundaries around service and workload abstractions. You can then use these attributes to organize and locate applications and their associated services and workloads while performing activities such as observability, auditing, and governance.
The registration status of a service or workload in your host project or management project has one of the following values:
- Discovered: Services and workloads that you can register to an application. Discovered services and workloads also include services or workloads that you delete or unregister from an application.
- Registered: Services and workloads registered to an application. You can only register a discovered service or workload. After you register the service or workload, the registration status updates from discovered to registered.
- Detached: Services and workloads registered to an application whose underlying resources are deleted. For example, if the forwarding rule represented by a service is deleted, then the service's Registration Status updates to Detached. Detached services and workloads remain in the application until you unregister them.
Application management
You can set up and manage App Hub resources using an app-enabled folder or a host project. An app-enabled folder is a Google Cloud folder that lets you define and manage App Hub applications. A host project is a Google Cloud project that lets you define and manage App Hub applications. This section describes application management using an app-enabled folder.
We recommend using an app-enabled folder over a host project. An app-enabled folder has the following benefits:
- All the projects and resources in the folder are automatically available for application management. With host projects you need to add each project individually as service projects to the host project to start creating applications.
- You can monitor your applications using Google Cloud Observability and view the telemetry data for your App Hub applications. With host projects, you must manually add or delete the monitored service projects, as required, from the host projects.
App-enabled folders
RecommendedAn app-enabled folder is a Google Cloud folder created in the Resource Manager for application management. For more information on how to configure a folder for application management, see Managing applications in a folder. You can use this app-enabled folder to define administrative boundaries to create and manage applications within an organization. These boundaries can be further defined by attributes such as Owners, Criticality, and Environment. For more information, in this document, see Properties and attributes.
When you enable application management on the app-enabled folder, the following actions take place:
- Google Cloud creates a Management project for the folder. Each folder can contain only one management project and you can't move or delete this project. The management project is used to host resources from the descendant projects of the app-enabled folder as App Hub services and workloads.
- APIs for services that support application management such as App Hub and Gemini Cloud Assist are automatically enabled on the management project. For more information on the list of APIs that are enabled, see Enable app management.
After you enable a folder for application management, you can create and deploy App Hub applications across the app-enabled folder's descendant projects. For more information on how to set up App Hub on an app-enabled folder, see Set up App Hub for app-enabled folders.
You can use several Google Cloud folders to set up your organization hierarchy and enable cross-project experiences. For example, a folder can contain projects or folders or a combination of both. For each business unit in your organization, you could have different departments with its own set of resources. Enabling a folder for application management lets you organize, deploy, and monitor these resources using App Hub applications. You can use Application Design Center to design an deploy your application, App Hub to organize and manage that application, and Google Cloud Observability to monitor your application.
Host projects
A host project hosts App Hub resources (applications, services, workloads). App Hub services and workloads serve as abstractions for resources you discover in service projects that are attached to the host project. A host project acts as an administrative boundary with the applications being a part of this boundary. You can create separate boundaries with multiple host projects and applications that cater to specific business needs. Host projects also enable you to manage cross-project applications, where the services and workloads of an application are present in multiple projects.
We recommend that you create a new Google Cloud project as a host project to differentiate the underlying infrastructure resources from the App Hub data model concepts. If you need multiple host projects, for example, one host project for each independent business unit, we recommend that you create a new folder and add the projects to it.
Based on the Identity and Access Management (IAM) roles granted to the host project
(apphub.admin
, apphub.editor
, and apphub.viewer
), you can create
applications, assign attributes to the applications, and register or view
services and workloads. For more information, see App Hub roles
and permissions.
For more information about creating host projects, see Set up App Hub.
Service projects
A service project is a Google Cloud project that contains the underlying infrastructure resources. You attach a service project to the host project to make the infrastructure resources in it available to group together into an application.
You cannot attach a service project to more than one host project. A host project can be a service project for itself, but not for another host project.
Properties and attributes
The App Hub data model also offers properties and attributes that can enhance the functionality of applications, services, and workloads.
Properties are fields that describe the underlying infrastructure resources for a service or workload. Properties help identify meaningful information in underlying infrastructure resources that can help with the registration experience for services or workloads. Properties are immutable through App Hub and updates only with changes to the underlying resource. Examples include project IDs, location, and zone.
Attributes are mutable fields that can be set for applications, services, and workloads to better identify and organize them. Supported App Hub attributes include the following:
- Owners attribute contains contact information for an application, service,
or workload.
The supported owner types are as follows:
developer_owners
: Development team that owns development and coding.operator_owners
: Operator team that ensures runtime and operations integrity.business_owners
: Business team that ensures quality and ensures that user expectations are met.
Criticality of an application, service, or workload indicates its importance to the business. The supported values are as follows:
- Mission critical
- High
- Medium
- Low
Environment of an application, service, or workload is the stage of a software lifecycle, for example, production, staging, or development. The supported values are as follows:
- Production
- Staging
- Test
- Development
API and gcloud
reference
For more information about App Hub properties, see the following references:
- App Hub REST API resource
gcloud apphub
command reference