Cloud Foundry is a platform as a service that provides structure and opinions for software deployment. It uses BOSH to automate infrastructure provisioning and deployment. Applications are deployed through buildpacks that combine code with dependencies. Services can also be provisioned through service brokers and bound to applications. Logging and routing are standardized through components like Loggregator and the router.
12. Cloud Foundry gives companies the speed,
simplicity and control they need to develop and
deploy applications faster and easier.
13.
14. • Platform As a Service
– Polyglot Runtime supporting multiple languages
and frameworks
– Choice of IaaS Providers
– Choice of Application Services
20. Cloud Native Framework
Contract: 12 Factor App
Contract: BOSH Deployment/Release
Contract: Cloud Provider Interface
Culture
Dev
Dev IT
Ops
Applications
Runtime
Platform
Infrastructure Automation
Infrastructure
IT
Ops
IT
Ops
Tools
BOSH
Services
21. Cloud Native Framework
Contract: 12 Factor App
Contract: BOSH Deployment/Release
Contract: Cloud Provider Interface
Culture
Dev
Dev IT
Ops
Applications
Runtime
Platform
Infrastructure Automation
Infrastructure
IT
Ops
IT
Ops
Tools
BOSH
Services
23. Cloud Native Framework
Contract: 12 Factor App
Contract: BOSH Deployment/Release
Contract: Cloud Provider Interface
Culture
Dev
Dev IT
Ops
Applications
Runtime
Platform
Infrastructure Automation
Infrastructure
IT
Ops
IT
Ops
Tools
BOSH
Services
24. Infrastructure (as a Service)
Infrastructure Resource Pool
than can be provisioned via
API calls
25. Cloud Native Framework
Contract: 12 Factor App
Contract: BOSH Deployment/Release
Contract: Cloud Provider Interface
Culture
Dev
Dev IT
Ops
Applications
Runtime
Platform
Infrastructure Automation
Infrastructure
IT
Ops
IT
Ops
Tools
BOSH
Services
27. What Is BOSH?
• BOSH is an open source tool chain for release
engineering, deployment, and lifecycle
management of large-scale distributed services.
• BOSH was specifically developed to facilitate the
deployment of Cloud Foundry
• BOSH Interacts with IaaS via Cloud Provider
Interface (CPI)
32. Stemcell
• Base OS System
• BOSH Agent
• Same for all Infrastructures
• No specific info about software to be installed
• Wrapped in IaaS packaging that allows fast cloning
▪ vSphere - VMDK
▪ AWS – AMI
▪ Google Compute and Azure - Image
36. Elastic Runtime High Level Architecture
Cloud Foundry Elastic Runtime
Dynamic Router
OAuth 2.0 Server (UAA)
CELL
Garden
Build Packs
Login Server
CC & CC Bridge
Blob Store
BBS/etcd
Sys Log
ServiceBrokers
Collector App Log
ROUTING
AUTHENTICATION
APP LIFECYCLE
APP STORAGE
& EXECUTION
MESSAGING
METRICS & LOGGING
Cloud Foundry BOSH
BBS Converger
37. Cloud Native Framework
Contract: 12 Factor App
Contract: BOSH Deployment/Release
Contract: Cloud Provider Interface
Culture
Dev
Dev IT
Ops
Applications
Runtime
Platform
Infrastructure Automation
Infrastructure
IT
Ops
IT
Ops
Tools
BOSH
Services
38. Cloud Controller
• Restful API to allow clients to access platform functionality
• Several Clients exist to call functionality
– Command Line Interface
– Apps Manager
– IDE Plugins
40. Cloud Foundry CLI
• CLI is a RESTful client to Cloud Controller
• Commands Structured as CF <<command>> <<parameters>>
• Built in Architecture for Plugin extensions
• Getting help
– cf –h returns available commands
– cf <<command>> -h returns help for a specific command
• Includes ability to write plugins to extend
42. Applications
Source code and application frameworks used by developers to
create application
– Java/Spring
– Ruby/Rails
– JavaScript for Node.js
– .Net
– others
43. Automate App Deployments
Step 1 - Upload
Upload application files
via the Platform
Controller API
Step 2 - Stage
Take application files and
package with other
dependencies into the
container file
Step 3 - Distribute
Platform controller
schedules (assigns) the
container to cluster cell
Step 4 - Run
Assigned cluster cell starts
application using provided
metadata and informs the
platform load balancer/router
that application traffic can be
routed to container endpoint
44. Buildpacks
• A Buildpack is a combination of scripts that will combine the application
with the frameworks and runtimes necessary to deploy
• Written as scripts that:
– Detect if buildpack should be applied
– Compile container file by combining application code and defined
runtime components
– Release describe how app container can be deployed to an assigned
container host
• Installed into a Cloud Foundry instance or loaded from an external
location
45. Services
• Services are an add on that can be provisioned to provide
service an application
– Databases (MySQL, Mongo, Redis) and Rabbit MQ
• Marketplace service instances are created and bound using a
Service Broker
• Bound services connection information is placed in
application environment variable
46. Service Broker
• Restful endpoint that provides contract allowing self service
creation and binding to apps by authorized users
– create
– delete
– bind
– unbind
– catalog
47. • Loggregator
• Route Services
• Container Networking
• Credential Storage Management and Rotation
Other Structures and Opinions
48. • Applications write logs to STDOUT and STDERR
• Relevant Cloud Foundry component events added to
application stream
• Log events collected, collated, and expose via API and the
firehose
• API Allows application users and operators to:
– Tail their application logs
– Dump a recent set of application logs
– Continually drain their application logs to 3rd party log
archive and analysis service
Loggregator
49. • Enable automatic insertion of
services into the request path
for applications configured for
specific needs
• Use Cases
– API Gateway
– Security Gateways
– Anayltics
Route Services
Client
Route Service
Router App
Service
Broker
50. • Provides mean to
communication between
containers via a SDN
provider
• CNI API used to provide
common interaction across
SDN Providers
Container Networking Control
51. A central point of control for
credential
• Generation
• Storage
• lifecycle management
• access control
• access event logging
CredHub