You are previewing Getting Started with Cloud Foundry.
O'Reilly logo
Getting Started with Cloud Foundry

Book Description

Get started with Cloud Foundry, the leading Platform as a Service (PaaS) that’s dramatically changing how developers, operations practitioners, and especially DevOps teams deploy applications and services to the cloud. By introducing the underlying concepts beyond the core components, this practical guide will bootstrap your understanding of this service.

Learn how to run Cloud Foundry in a highly available and secure environment, using a sound disaster-recovery policy based on the author’s frontline experience. This book removes the need to adopt a lengthy trial-and-error approach to deploying Cloud Foundry.

Table of Contents

  1. Preface
    1. Who Should Read This Book
    2. Why I Wrote This Book
    3. A Word on Cloud-Native Platforms
    4. Organization of the Material
    5. Navigating This Book
    6. Online Resources
    7. Conventions Used in This Book
    8. Using Code Examples
    9. We’d Like to Hear from You
    10. Safari® Books Online
    11. How to Contact Us
  2. 1. The Cloud Native Platform
    1. Why Cloud Foundry
    2. Why You Need a Cloud-Native Platform
      1. Cloud-Native Platforms
    3. Cloud-Native Platform Concepts
    4. The Structured Platform
    5. The Opinionated Platform
    6. The Open Platform
      1. Choice of Infrastructure
      2. Choice of Languages and Services
      3. The Open Source Ecosystem
    7. Chapter Summary
  3. 2. Concepts
    1. Undifferentiated Heavy Lifting
    2. The Cloud Operating System
    3. Do More
    4. The Application as the Unit of Deployment
    5. The cf push to Deploy
    6. Staging
    7. Self-service Application Life Cycle
    8. The 12 Factor Contract
    9. Release Engineering through BOSH
    10. Built in Resilience and Fault Tolerance
    11. Aggregated Streaming of Logs and Metrics
    12. The Three R’s of Enterprise Security
    13. User Access and Authentication Management (UAA)
      1. Orgs and Spaces
    14. Domains Hosts and Routes
    15. Rolling Upgrades and Blue Green Deployments
    16. Chapter Summary
  4. 3. Components
    1. Component Overview
    2. Routing via the Load Balancer and (Go)Router
    3. User Management and the UAA
    4. The Application LifeCycle and System State via the Cloud Controller
      1. CC Blob Store
      2. CCDB
      3. The Cloud Foundry CPU
    5. Application Execution
      1. Diego
      2. Garden and runc
    6. Metrics and Logging
      1. Metron Agent
      2. Loggregator
    7. Messaging
    8. Additional Components
      1. Stacks
      2. A Marketplace of On-Demand Services
      3. Buildpacks and Docker Images
      4. Infrastructure and the Cloud Provider Interface
    9. The Cloud Foundry GitHub Repository
    10. Chapter Summary
  5. 4. Diego
    1. Diego Releases
    2. Why Diego?
      1. Tasks and LRPs
      2. Diverse Container Image Formats and Backends
    3. Action Abstraction and Composable Actions
      1. Action Abstraction
      2. Composable Actions
    4. Layered Architecture
    5. Interacting with Diego
      1. CAPI
      2. Staging Workflow
      3. The Cloud Controller Bridge
      4. Logging and Traffic Routing
    6. A Brief Overview of How Diego Works
    7. Diego Components
      1. The Bulletin Board Service (BBS)
      2. Diego Cell Components
      3. The Diego Brain
      4. The Access VM
    8. Additional Components and Concepts
      1. The Route-Emitter
      2. Consul
      3. Application Lifecycle Binaries
    9. Putting It All Together
    10. Diego Summary
  6. 5. Routing Considerations
    1. Routing Primitives
      1. Routes
      2. Hostnames
      3. Domains
      4. Context Path Routing
    2. Routing Components Overview
      1. Routing Flow
    3. Load Balancer Considerations
      1. Setting Request Header Fields
      2. WebSocket Upgrades
      3. The PROXY Protocol
      4. TSL Termination and IPSec
    4. GoRouter Considerations
      1. Routing Table
      2. Router and Route High Availability
      3. Router Instrumentation and Logging
    5. Sticky Sessions
    6. TCP Router
      1. TCP Routing Management Plane
      2. TCP Router Configuration Requirements
    7. Route Services
      1. Route Service Workflow
      2. Route Service Use Cases
    8. Summary
  7. 6. Containers Containers Containers
    1. Container Fervor
    2. What is a Container?
    3. Linux Containers
      1. Namespaces
      2. CGroups
      3. Disk Quotas
      4. File Systems
    4. Container Implementation in Cloud Foundry
      1. Why Garden?
      2. OCI and runC
      3. Container Scale
    5. Container Technologies (and The Orchestration Challenge)
    6. Summary
  8. 7. Buildpacks and Docker
    1. Why Buildpacks
    2. Why Docker
    3. Buildpacks Unpacked
      1. Detect
      2. Compile
      3. Release
    4. Buildpack Structure
    5. Modifying Buildpacks
      1. Using Custom or Community Buildpacks
      2. Forking Buildpacks
      3. Restaging
    6. Packaging and Dependencies
      1. Buildpack and Dependency Pipelines
    7. Summary
  9. 8. BOSH All The Things
    1. The Cloud Foundry BOSH Release
    2. What is BOSH?
    3. Why BOSH?
    4. Infrastructure as Code
    5. Creating a BOSH Environment
    6. BOSH Top Level Primitives
      1. Stemcells
      2. Releases
      3. Deployments
    7. BOSH 2.0
      1. Cloud Config
      2. Availability Zones
      3. Putting It All Together
    8. CLI Changes / Job Instance Indexing
      1. BOSH Links
      2. Orphaned Disks
      3. Addons
    9. BOSH Summary