Cloud Foundry
Cloud Foundry is an open-source, multi-cloud application platform as a service (PaaS). It is designed to help the developers build, deploy, run, and scale applications while minimizing concerns about the underlying infrastructure. Cloud Foundry provides a runtime environment for you to simply push code, and it also handles provisioning servers, networking, and scaling. The platform works on top of different infrastructures, such as AWS, Google Cloud, Microsoft Azure, OpenStack, and VMware vSphere.
Architecture
Cloud Foundry consists of the following nodes (as shown in the diagram):
Organizations (AdminCollection node) — An organization is a development account that a single or multiple collaborators can own and use. All collaborators access an organization with user accounts. Collaborators in an organization share a resource quota plan, applications, service availability, and custom domains.
Spaces (Namespace node) — Every application and service is scoped to a space. Each organization contains at least one space. A space provides users with access to a shared location for application development, deployment, and maintenance.
Apps (Deployment node) — Apps are top-level objects that link together and contain configuration information for your packages, droplets, processes, tasks, and more.
Processes (SoftwareContainer node) — Processes define the runnable units of an app. An app can have multiple process types, each with differing commands and scale.
Platforms supported by the pattern
The pattern discovers Cloud Foundry instances on cloud and on-premises deployments by using API scan.
Identification
To run a discovery of the product, the pattern must be triggered. This section describes conditions under which the pattern can be triggered.
Pattern triggers
The following table gives details about the pattern triggers:
Pattern | Trigger node | Attribute | Condition | Argument |
CloudFoundryAPI | DiscoveredAPIProviderResultList | discovery_method | = | "CloudFoundry.ListOrganizations" |
CloudFoundrySpacesAPI | Namespace | type | "Cloud Foundry Space" |
API provider discovery
Cloud Foundry is discovered by executing REST API queries and processing the obtained data.
The following image shows how Cloud Foundry API credentials are added in the BMC Helix Discovery UI:
The following image shows how a Cloud Foundry API scan is set before its launch:
API queries
The CloudFoundry.API pattern module executes the following REST API requests:
- /v3/apps
- /v3/apps?space_guids={guid}
- /v3/info
- /v3/organizations
- /v3/organization_quotas/{guid}
- /v3/processes
- /v3/processes?space_guids={guid}
- /v3/processes/{guid}/stats
- /v3/routes
- /v3/routes?space_guids={guid}
- /v3/spaces
For more details, see the official Cloud Foundry documentation.
Trigger
The CloudFoundryAPI pattern is triggered by DiscoveredAPIProviderResultList, where discovery_method = "CloudFoundry.ListOrganizations".
Discovery view
The following figure shows an example of the Organizations (AdminCollection node) modeling:
The following figure shows an example of the Spaces (Namespace node) modeling:
The following figure shows an example of the Apps (Deployment node) modeling:
The following figure shows an example of the Processes (SoftwareContainer node) modeling:
Subject matter expertise
Inputs from subject matter experts are welcome on any other potential approaches not discussed in this topic.
Testing
The pattern has been tested against the available customer data.
Open issues
There are no known open issues with this pattern.