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 - Second Edition

Book Description

Implement successful private clouds with OpenStack

About This Book
  • Gain hands-on experience in designing a private cloud for all infrastructures
  • Create a robust virtual environment for your organization
  • Design, implement and deploy an OpenStack-based cloud based on the Queens release
Who This Book Is For

OpenStack for Architects is for Cloud architects who are responsible to design and implement a private cloud with OpenStack. System engineers and enterprise architects will also find this book useful. Basic understanding of core OpenStack services, as well as some working experience of concepts, is recommended.

What You Will Learn
  • Learn the overall structure of an OpenStack deployment
  • Craft an OpenStack deployment process which fits within your organization
  • Apply Agile Development methodologies to engineer and operate OpenStack clouds
  • Build a product roadmap for Infrastructure as a Service based on OpenStack
  • Make use of containers to increase the manageability and resiliency of applications running in and on OpenStack.
  • Use enterprise security guidelines for your OpenStack deployment
In Detail

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

OpenStack for Architects leads you through the major decision points that you'll face while architecting an OpenStack private cloud for your organization. This book will address the recent changes made in the latest OpenStack release i.e Queens, and will also deal with advanced concepts such as containerization, NVF, and security. At each point, the authors offer you advice based on the experience they'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, the book focuses 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. Conceptual chapters are written in discussion style to convey important concepts quickly and present decision points for choosing options.

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 files e-mailed directly to you.

Table of Contents

  1. Title Page
  2. Copyright and Credits
    1. OpenStack for Architects Second Edition
  3. Packt Upsell
    1. Why subscribe?
    2. PacktPub.com
  4. Contributors
    1. About the authors
    2. About the reviewer
    3. Packt is searching for authors like you
  5. Preface
    1. Who this book is for
    2. What this book covers
    3. To get the most out of this book
      1. Download the example code files
      2. Download the color images
      3. Conventions used
    4. Get in touch
      1. Reviews
  6. Introducing OpenStack
    1. What is OpenStack?
      1. OpenStack – 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 computing
      3. Rapid application development
      4. Network Function Virtualization
    4. Drafting an initial deployment plan
      1. The role of the Architect
    5. The design document
      1. The deployment plan
    6. Your first OpenStack deployment
    7. Writing the initial deployment plan
      1. Hardware
      2. Network addressing
      3. Configuration notes
      4. Requirements
    8. Installing OpenStack
      1. Installation instructions
      2. Verifying the installation
      3. Next steps
    9. Summary
    10. Further reading
  7. 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. Software-defined networking
      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
          1. Management network
          2. Provider network
          3. Tenant network
      2. Updating the deployment plan
      3. Installing OpenStack with the new configuration
    6. Summary
    7. Further reading
  8. 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 HA 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. Further reading
  9. 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
    3. Test infrastructure
      1. Types of testing
      2. Writing the tests
      3. Running the tests
    4. 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
      1. Starting our Puppet modules
      2. Defining the first role and profile
      3. Running the first build
      4. Writing the tests
      5. Assigning the first role to a system
    6. Installing Keystone
      1. Fully automating the pipeline
    7. Summary
    8. Further reading
  10. Building to Operate
    1. 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
    2. Active monitoring
      1. Services
      2. Processes
      3. HA control cluster
    3. A dashboard example
    4. The future of OpenStack troubleshooting and Artificial Intelligence-driven operations
    5. Capacity planning
      1. Planning your city
        1. Tracking usage and analyzing growth
        2. Flavor sizing and compute server hardware selection
    6. Backups and recovery
      1. Infrastructure backup architecture
      2. Backup strategies – what to back up
      3. Workload backup architecture
      4. Planning for disaster recovery
    7. Summary 
    8. Further reading
  11. 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 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
      5. Introducing OpenStack Gnocchi
    4. Updating the design document
      1. Writing requirements
      2. Testing requirements
    5. Summary
    6. Further reading
  12. Securing the Cloud
    1. Security zones within OpenStack
    2. Software vulnerabilities
      1. Instance software security and patching
      2. 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
    3. Hardening hypervisors
      1. Standard Linux hardening practices and hypervisors
        1. SELinux and AppArmor
        2. sVirt
          1. SELinux and sVirt in action
        3. SSL and certificate management
          1. Assessing risk
          2. Best practices for endpoint security
          3. Examples
        4. Auditing OpenStack
          1. CADF details
          2. Using CADF with OpenStack
          3. Log aggregation and analysis
    4. Summary
    5. Further reading
  13. OpenStack Use Cases
    1. Network Function Virtualization (NFV) / Telco Cloud
      1. What is NFV?
        1. The difference between NFV and Software-Defined Networking (SDN)
      2. NFV architecture
        1. European Telecommunication Standards Institute (ETSI)
        2. Open Platform for NFV (OPNFV)
        3. OpenStack's role in NFV
        4. Top requirements from Telcos for NFV on OpenStack
          1. Performance
          2. High availability, resiliency, and scaling
        5. Handling the rest of NFV management with NFVO and VNFM
          1. The NFV use case is solid and growing
    2. Big data and scientific compute use case
      1. Storing Data – Hadoop
        1. Combining Data - MapReduce
        2. Hadoop-as-a-Service, OpenStack Sahara
        3. Example architecture for Hadoop Use Case
        4. CERN – Big Data and OpenStack at Scale
    3. Edge Computing use case
      1. What is Cloud Edge Computing?
        1. Real-life use cases for Edge Computing
        2. Current challenges with Cloud Edge Computing
    4. Summary
  14. Containers
    1. What are containers?
      1. So why are people so excited about containers?
      2. How do I manage containers?
    2. Containers and OpenStack
      1. Docker on OpenStack
      2. Kubernetes on OpenStack
    3. OpenStack container-related projects
      1. Nova-Docker
      2. Integration with Neutron – Kuryr
      3. Integration with Cinder – Fuxi
      4. Magnum
      5. Zun
    4. OpenStack On Containers
      1. Kolla
      2. Helm
    5. Summary
  15. Conclusion
    1. Emerging trends in OpenStack
      1. Moving up the stack
    2. Building the roadmap
      1. Introducing new features
      2. Releasing new versions
    3. Summary
    4. Further reading
  16. Other Books You May Enjoy
    1. Leave a review - let other readers know what you think