Central Services Portal is in Beta. We need your feedback to ensure the best possible user experience. Any feedback you provide will help us help you! Please use the feedback tool at the bottom of any page.

Search Icon

Central Services Portal is in Beta. We need your feedback to ensure the best possible user experience. Any feedback you provide will help us help you! Please use the feedback tool at the bottom of any page.

Cloud Foundry

What is it?

Cloud Foundry is an open source platform as a service (PaaS), used by many development teams to easily run their applications in the cloud. PaaS contrasts with infrastructure as a service (IaaS), such as OpenStack and Amazon Web Services, in that it provides a platform through which users can develop, run, and manage applications without the complexity of building and operating infrastructure.

With the Cloud Foundry PaaS, you can take application code and run it in a scalable cloud in minutes. CF provides intuitive interfaces for deploying and managing applications with very little overhead. Running an application in CF is literally as easy as running cf push from your workstation.

Who is it for?

The purpose of this platform is to empower DevOps by providing everything that your application needs out of the box, so you can focus on developing your app, and not on building infrastructure. Therefore, when you run your application in CF, the platform automatically provides the following functions for your application:

  • Scalable, turn-key runtime environment for stateless or “Cloud-Ready” workloads
  • Network Load balancing (LTM) for your application instances
  • Push button scaling
  • FQDN assigned to your application that is immediately resolveable in DNS
  • Globally trusted SSL certificate provided by Comodo
  • Health Monitoring that will restart your app instance if it crashes
  • Mechanisms for back-end service integration
  • Rich API for automated, zero downtime deployments and CI/CD

How to use it?

Cloud Foundry can be run on cloud infrastructures such as Amazon Web Services (AWS), Microsoft Azure, Google Compute Platform (GCP), OpenStack, VMware vSphere, SoftLayer and many more.

At Comcast, Cloud Foundry is run on VMware vSphere and Amazon Web Services (AWS). Unlike VMware vSphere, using Cloud Foundry in AWS incurs recurring costs to customers. If you are interested in taking advantage of using Cloud Foundry on AWS, please send a message to @cfadmin on the #cloudfoundry Slack channel.

Supported Application Platforms 

Cloud Foundry supports a wide array of application platforms through their Buildpack mechanism. Buildpacks provide the runtime environment for your application. The platform will automatically combine your application code with one of these buildpacks to create a droplet that will run as a container in CF. Some of the supported buildpacks are shown below:

  • JAVA
  • Node.js
  • Python
  • Go
  • .NET Core
  • Static HTML
  • Ruby
  • PHP
  • Docker Images (non-buildpack) – Docker image

Other platforms are also supported through the use of online community Buildpacks.

Integrated Services 

In addition to providing a platform for hosting applications, Cloud Foundry also includes integrated services that provide additional capabilities. These services are available on-demand through the CLI/UI, and through the CF Service Broker facility, can be easily integrated into your application. For more information about using services, please see the Cloud Foundry documentation.

⚠️
Please be sure to read the documentation for each service so you understand the limitations of each service.

Tenancy and Quotas 

Cloud Foundry is a multi-tennant solution that can host many different applications within isolated areas called Orgs. An Org is a collection of Users, Spaces, and Apps that share a single Quota. When users request creation of an Org in Cloud foundry, they will be given full access to that CF Org. Adding new users to an existing CF Org is self-service.

Restrictions 

While CF is a compelling platform with many advantages, not everything can run in CF. Before you begin requesting access for CF and getting started, you should head over to our standards section.

Cloud Foundry Architecture

Cloud Foundry makes it faster and easier to build, test, deploy and scale applications, providing a choice of clouds, developer frameworks, and application services. This document will not only cover components that make up the Cloud Foundry ecosystem but also components that are specific to Comcast’s implementation of Cloud Foundry. For more detailed reading on all Cloud Foundry components, visit the Cloud Foundry documentation

HAProxy (Comcast-specific) 

The HAProxy is the front end for all ingress traffic into Cloud Foundry. The HAProxy component is created, deployed and managed by the CNAP Team. This implementation allows the CNAP Team to provide customers the ability to bring their own custom certificates and use it with applications deployed in Cloud Foundry. The HAProxy performs SSL Termination and balances load between all of the Cloud Foundry Routers.


Routers 

The Cloud Foundry router component routes incoming traffic to the appropriate component, either a Cloud Controller component (for all API and UI calls) or to a hosted application running on a Diego Cell. Using internal Cloud Foundry mechanisms, the router updates itself periodically with information on where an applications app instances reside. The router routes application traffic to all application instances in a round-robin fashion.


UAA 

The Cloud Foundry UAA component is responsible for providing identity management. At Comcast, UAA is configured to use secure LDAP for all non-PCI sites and SAML authentication for all PCI sites.


Cloud Controller and Diego Brain 

The Cloud Foundry Cloud Controller (CC) is the component that receives all the requests for Application Management. Every time you execute a command using the CLI or API, you are targeting the Cloud Controller. When pushing an application to Cloud Foundry, the Cloud Controller directs the Diego Brain to coordinate staging and running applications on Diego Cells.

The Cloud Controller is also responsible for maintaining records of orgs, spaces, user roles, services, and more.


Blobstore 

The Cloud Foundry blobstore is a repository for storing large binary files. The Blobstore stores application code packages, buildpacks and application droplets. For Private Cloud deployments on VSphere, VSphere datastores are used. For Public Cloud deployments on AWS, S3 is used as the Blobstore.


Diego Cell 

The Cloud Foundry Diego cell is where all applications run as containers. Each Diego cell may host multiple application containers and, among a lot of functions, reports its app status to other Cloud Foundry components.


Loggregator 

The Cloud Foundry loggregator system is responsible for streams logs to the console or logging endpoints defined by developers. Since the loggregator is a shared component across all tenants in a Cloud Foundry site, it can be easily abused by applications or customers streaming numerous logs. For reliable delivery of your application logs, follow the best practices for logging in Cloud Foundry


Service Brokers 

Cloud Foundry Service Brokers are connectors that enable application teams to use consume services such as databases or third-party SaaS providers easily. You can view the list of services available in a Cloud Foundry site, by running the command cf marketplace using the CLI. When a developer provisions and binds a service to an application, the service broker for that service is responsible for providing the service instance.


Architecture Diagram 

The below diagram is a basic representation of how traffic flows within a Cloud Foundry site deployed in the Green Network zone at Comcast. Green zone applications can be exposed to the Internet and ingress traffic to them come via a separate set of HAProxies deployed in the Blue Network Zone.

Cloud Foundry Architecture

wpChatIcon
wpChatIcon
Provide Feedback