O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

DevOps with OpenShift

Book Description

For many organizations, a big part of DevOps’ appeal is software automation using infrastructure-as-code techniques. This book presents developers, architects, and infra-ops engineers with a more practical option. You’ll learn how a container-centric approach from OpenShift, Red Hat’s cloud-based PaaS, can help your team deliver quality software through a self-service view of IT infrastructure.

Three OpenShift experts at Red Hat explain how to configure Docker application containers and the Kubernetes cluster manager with OpenShift’s developer- and operational-centric tools. Discover how this infrastructure-agnostic container management platform can help companies navigate the murky area where infrastructure-as-code ends and application automation begins.

  • Get an application-centric view of automation—and understand why it’s important
  • Learn patterns and practical examples for managing continuous deployments such as rolling, A/B, blue-green, and canary
  • Implement continuous integration pipelines with OpenShift’s Jenkins capability
  • Explore mechanisms for separating and managing configuration from static runtime software
  • Learn how to use and customize OpenShift’s source-to-image capability
  • Delve into management and operational considerations when working with OpenShift-based application workloads
  • Install a self-contained local version of the OpenShift environment on your computer

Table of Contents

  1. Preface
    1. Who Should Read This Book
    2. Why We Wrote This Book
    3. Online Resources
    4. Conventions Used in This Book
    5. Using Code Examples
    6. O’Reilly Safari
    7. How to Contact Us
    8. Acknowledgments
      1. Stefano
      2. Mike
      3. Noel
  2. 1. Introduction to DevOps with OpenShift
    1. DevOps
    2. Containers
    3. Container Orchestration
    4. Continuous Integration
    5. Continuous Delivery
    6. Continuous Deployment
    7. Pipelines
    8. Software Configuration Management
    9. Deployment Patterns
    10. Continuous Improvement
    11. Summary
  3. 2. Installing the All-In-One OpenShift
    1. Software Requirements
      1. Install OpenShift oc Client Tools
      2. Install Docker
      3. Launch OpenShift
    2. Verify Your Environment
      1. Log In Using the Command Line
      2. Log In from Console
    3. Working with Storage
      1. Create a Persistent Volume
      2. Set Up the Volume Claim
    4. Create a GitHub Account
    5. Alternative Form Factors
    6. Summary
  4. 3. Deployments
    1. The Replication Controller
    2. Deployment Strategies
      1. Rolling
      2. Triggers
      3. Recreate
      4. Custom
      5. Lifecycle Hooks
      6. Deployment Pod Resources
    3. Blue-Green Deployments
    4. A/B Deployments
    5. Canary Deployments
    6. Rollbacks
    7. Summary
  5. 4. Pipelines
    1. Our First Pipeline Example
      1. Pipeline Components
      2. So What’s Happened Here? Examination of the Pipeline Details
      3. Explore Jenkins
    2. Multiple Project Pipeline Example
      1. Build, Tag, Promote
      2. Create Projects
      3. Add Role-Based Access Control
      4. Deploy Jenkins and Our Pipeline Definition
      5. Deploy Our Sample Application
      6. Run Our Pipeline Deployment
      7. Quickly Deploying a New Branch
    3. Managing Image Changes
    4. Cascading Pipelines
    5. Customizing Jenkins
    6. Parallel Build Jobs
    7. Summary
  6. 5. Configuration Management
    1. Secrets
      1. Secret Creation
      2. Using Secrets in Pods
      3. Additional Information
    2. Configuration Maps
      1. Creating Configuration Maps
      2. Mounting Configuration Maps as Volumes
      3. Mounting the Configuration Map as Environment Variables
    3. Environment Variables
      1. Adding Environment Variables
      2. Removing Environment Variables
      3. Change Triggers
    4. Labels and Annotations
    5. Downward API
    6. Handling Large Configuration Data Sets
      1. Persistent Volumes
      2. Layered Images
    7. Summary
  7. 6. Custom Image Builds
    1. OpenShift Builds
      1. Build Strategies
      2. Build Sources
      3. Build Configurations
      4. Source to Image
      5. S2I Process
      6. Custom S2I Scripts
    2. Custom S2I Builder
      1. Builder Image
      2. S2I Scripts
      3. Adding a New Builder Image
      4. Building a Sample Application
      5. Troubleshooting
    3. Summary
  8. 7. Application Management
    1. Integrated Logging
    2. Container Logs Are Transient
    3. Aggregated Logging
    4. Kibana
    5. Some General Aggregated Kibana Queries
    6. Simple Metrics
    7. Resource Scheduling
      1. Quotas
      2. Quota Scopes
      3. Quota Enforcement
      4. Limit Ranges and Requests Versus Limits
      5. Multiproject Quotas
    8. Applications
    9. Eviction and Pod Rescheduling
    10. Overcommit
    11. Auto Pod Scaling
    12. Java-Based Application Monitoring and Management Using Jolokia
    13. Summary
  9. Afterword
    1. What We Covered
    2. Final Words
  10. A. OpenShift and 12 Factor Apps
    1. Codebase
    2. Dependencies
    3. Configuration
    4. Backing Services
    5. Build, Release, Run
    6. Processes
      1. Session Affinity
      2. Storage
      3. Stateful Pods
    7. Port Binding
    8. Concurrency
    9. Disposability
    10. Dev/Prod Parity
    11. Logs
    12. Admin Processes
    13. Security
    14. Summary
  11. Index