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

OpenStack for Architects

Book Description

Design and implement successful private clouds with OpenStack

About This Book

  • Explore the various design choices available for cloud architects within an OpenStack deployment
  • Craft an OpenStack architecture and deployment pipeline to meet the unique needs of your organization
  • Create a product roadmap for Infrastructure as a Service in your organization using this hands-on guide

Who This Book Is For

This book is written especially for those who will design OpenStack clouds and lead their implementation. These people are typically cloud architects, but may also be in product management, systems engineering, or enterprise architecture.

What You Will Learn

  • Familiarize yourself with the components of OpenStack
  • Build an increasingly complex OpenStack lab deployment
  • Write compelling documentation for the architecture teams within your organization
  • Apply Agile configuration management techniques to deploy OpenStack
  • Integrate OpenStack with your organization's identity management, provisioning, and billing systems
  • Configure a robust virtual environment for users to interact with
  • Use enterprise security guidelines for your OpenStack deployment
  • Create a product roadmap that delivers functionality quickly to the users of your platform

In Detail

Over the last five years, hundreds of organizations have successfully implemented Infrastructure as a Service (IaaS) platforms based on OpenStack. The huge amount of investment from these organizations, industry giants such as IBM and HP, as well as open source leaders such as Red Hat have led analysts to label OpenStack as the most important open source technology since the Linux operating system. Because of its ambitious scope, OpenStack is a complex and fast-evolving open source project that requires a diverse skill-set to design and implement it.

This guide leads you through each of the major decision points that you'll face while architecting an OpenStack private cloud for your organization. At each point, we offer you advice based on the experience we've gained from designing and leading successful OpenStack projects in a wide range of industries. Each chapter also includes lab material that gives you a chance to install and configure the technologies used to build production-quality OpenStack clouds. Most importantly, we focus on ensuring that your OpenStack project meets the needs of your organization, which will guarantee a successful rollout.

Style and approach

This is practical, hands-on guide to implementing OpenStack clouds, where each topic is illustrated with real-world examples and then the technical points are proven in the lab.

Downloading the example code for this book. You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the code file.

Table of Contents

  1. OpenStack for Architects
    1. OpenStack for Architects
    2. Credits
    3. About the Authors
    4. www.PacktPub.com
      1. Why subscribe?
    5. Customer Feedback
    6. Preface
      1. What this book covers
      2. What you need for this book
      3. Who this book is for
      4. Conventions
      5. Reader feedback
      6. Customer support
        1. Downloading the example code
        2. Downloading the color images of this book
        3. Errata
        4. Piracy
        5. Questions
    7. 1. Introducing OpenStack
      1. What is OpenStack?
        1. OpenStack is an API
        2. OpenStack - an open source software project
        3. OpenStack - a private cloud platform
      2. OpenStack components
        1. Compute
        2. Object Storage
        3. Block storage
        4. Network
      3. Common OpenStack use cases
        1. Public hosting
        2. High-performance compute
        3. Rapid application development
        4. Network Function Virtualization
      4. Drafting an initial deployment plan
        1. The role of the Architect
        2. The design document
        3. The deployment plan
      5. Your first OpenStack deployment
        1. Writing the initial deployment plan
          1. Hardware
          2. Network addressing
          3. Configuration notes
          4. Requirements
        2. Installing OpenStack
          1. Installation instructions
          2. Verifying the installation
          3. Next steps
      6. Summary
      7. References
    8. 2. Architecting the Cloud
      1. Picking an OpenStack distribution
        1. Running from the trunk
        2. Community distributions
        3. Commercially supported distributions
      2. Compute hardware considerations
        1. Hypervisor selection
        2. Sizing the hardware to match the workload
        3. Considerations for performance-intensive workloads
      3. Network design
        1. Providing network segmentation
        2. SDN
        3. Physical network design
      4. Storage design
        1. Ephemeral storage
        2. Block storage
        3. Object storage
      5. Expanding the initial deployment
        1. Updating the design document
          1. Cloud controller
          2. Compute node
          3. Management network
          4. Provider network
          5. Tenant network
        2. Updating the deployment plan
        3. Installing OpenStack with the new configuration
      6. Summary
      7. References
    9. 3. Planning for Failure (and Success)
      1. Building a highly available control plane
        1. About failure and success
        2. High availability patterns for the control plane
        3. Active/Passive service configuration
        4. Active/Active service configuration
      2. OpenStack service specifics
        1. OpenStack web services
        2. Database services
        3. The message bus
        4. Compute, storage, and network agents
      3. Regions, cells, and availability zones
        1. Regions
        2. Cells
        3. Availability zones
      4. Updating the design document
        1. Planning the physical architecture
        2. Updating the physical architecture design
      5. Implementing H/A in the lab deployment
        1. Provisioning a second controller
        2. Installing the Pacemaker resource manager
        3. Installing and configuring HAProxy
        4. Additional API service configuration
      6. Summary
      7. References
    10. 4. Building the Deployment Pipeline
      1. Dealing with Infrastructure as a Software
        1. Eating the elephant
        2. Writing the tests first
        3. Always be deploying
      2. Using configuration management for deployment
        1. Using the community modules
        2. Assigning roles
        3. Choosing a starting point
        4. Test infrastructure
          1. Types of testing
          2. Writing the tests
          3. Running the tests
      3. Putting the pipeline together
        1. Setting up the CI server
        2. Installing Git
        3. Installing a Puppet master
        4. Installing Jenkins
        5. Creating the composition layer
        6. Starting our Puppet modules
        7. Defining the first role and profile
        8. Running the first build
        9. Writing the tests
        10. Assigning the first role to a system
      4. Installing Keystone
      5. Fully automating the pipeline
      6. Summary
      7. References
    11. 5. Building to Operate
      1. Expected outcomes of this chapter
      2. Logging, monitoring, and alerting
        1. Logging
        2. Monitoring
          1. What to monitor
          2. Monitoring practices
            1. Monitoring availability
            2. Monitoring performance
            3. Monitoring resource usage
        3. Alerting
          1. Active monitoring
            1. Services
            2. Processes
            3. HA control cluster
      3. Capacity planning
        1. Planning your city
          1. Tracking usage and analyzing growth
        2. Flavor sizing and compute server hardware selection
        3. Backups and recovery
          1. Infrastructure backup architecture
            1. Backup strategies – what to backup
          2. Workload backup architecture
            1. Planning for disaster recovery
      4. Summary
      5. References
    12. 6. Integrating the Platform
      1. IdM integration
        1. Authentication and authorization in OpenStack
        2. Configuring Keystone with split assignment and identity
      2. Provisioning workflows
        1. The Horizon user interface
        2. Using the REST APIs
        3. Provisioning with templates
      3. Metering and billing
        1. Listening to OpenStack
        2. Using the notification subsystem
        3. Consuming events from Ceilometer
        4. Reading meters in Ceilometer
      4. Updating the design document
        1. Writing requirements
        2. Testing requirements
      5. Summary
      6. References
    13. 7. Securing the Cloud
      1. Security zones within OpenStack
      2. Software vulnerabilities
      3. Instance software security and patching
      4. Infrastructure host security and patching
        1. Patching OpenStack code
        2. Patching the operating system
          1. Red Hat Enterprise Linux and CentOS
          2. Canonical Ubuntu based operating systems
          3. Software repository management
      5. Hardening hypervisors
        1. Standard Linux hardening practices and hypervisors
        2. SELinux and AppArmor
        3. sVirt
          1. SELinux and sVirt in action
        4. SSL and certificate management
          1. Assessing risk
          2. Best practices for endpoint security
          3. Examples
        5. Auditing OpenStack
          1. CADF details
          2. Using CADF with OpenStack
          3. Log aggregation and analysis
      6. Summary
      7. References
    14. 8. Conclusion
      1. Emerging trends in OpenStack
        1. Moving up the stack
        2. The impact of containers
      2. Building the roadmap
        1. Introducing new features
        2. Releasing new versions
      3. Summary
      4. References