Many cloud applications evolve to include multiple infrastructure resources from one or more Google Cloud projects, which can make it harder for both developers and operators to manage and understand these resources. App Hub introduces an application-centric way to organize these resources to help you understand resource interactions and support business functions.
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.
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 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.
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