Cloud Foundry – Architecture

1. Brief Introduction – Cloud Foundry

cloudfoundarycorp_rgb

Cloud Foundry is an open platform as a service, providing a choice of clouds, developer frameworks, and application services. Cloud Foundry makes it faster and easier to build, test, deploy and scale applications. It is an open source project and is available through a variety of private cloud distributions and public cloud instances.

Official website: https://www.cloudfoundry.org/
GitHub: https://github.com/cloudfoundry

2. Logical Architecture & Components

cloud-foundry-architecture

1. Routing

Router routes traffic coming into Cloud Foundry to the appropriate component, whether it is an operator addressing the Cloud Controller or an application user accessing an app running on a Diego Cell.

2. Authentication

UAA is a multi-tenant identity management service, used in Cloud Foundry, but also available as a standalone OAuth2 server. It works together with Login Server to provide identity management.

3. App Lifecycle

Cloud Controller provides an API for staging and running apps and provisioning and binding services to them. Nsync, BBS, and Cell Reps work together along a chain to keep apps running. Diego Brain distributes Tasks and LRPs to Diego Cells. Cell Reps monitors the containers and provides the ActualLRP value.

4. App Storage & Execution

Blob Store is a repository for large binary files including Application code packages, Buildpacks, etc.
Diego Cell executes application start and stop actions locally in application VM, manages the VM’s containers, and reports app status and other data. Garden provides the container technology for the Diego project (future architecture for Cloud Foundry)

5. Services

Applications typically depend on services such as databases or third-party SaaS providers. When a developer provisions and binds a service to an application, the service broker for that service is responsible for providing the service instance.

6. Messaging

Bulletin Board System (BBS) stores more frequently updated and disposable data such as cell and application status, unallocated work, and heartbeat messages.
Consul stores longer-lived control data, such as component IP addresses and distributed locks that prevent components from duplicating actions.
NATS is used to broadcast the latest routing tables to the routers.

7. Metrics & Logging

Metrics collector gathers metrics and statistics from the components.
App Log Aggregator streams application logs to developers.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s