Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Title Page
Copyright
Credits
About the Authors
About the Reviewer
www.Packtpub.com
Customer Feedback
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
Designing OpenStack Cloud Architectural Consideration
OpenStack - The new data center paradigm
Introducing the OpenStack logical architecture
Keystone - identity management
Swift - object storage
Cinder - block storage
Manila - File share
Glance - Image registry
Nova-Compute service
nova-api
nova-compute
nova-network
nova-scheduler
nova-conductor
Neutron - Networking services
The Neutron architecture
Ceilometer, Aodh, and Gnocchi - Telemetry
Heat - Orchestration
Horizon - Dashboard
Message Queue
The database
Gathering the pieces and building a picture
Provisioning a VM under the hood
A sample architecture setup
OpenStack deployment
The conceptual model design
The logical model design
What about storage?
Networking needs
The logical networking design
Physical network layout
The tenant data network
Management and the API network
Virtual Network types
The external network
The tenant networks
The physical model design
Estimating the hardware capabilities
CPU calculations
Memory calculations
Network calculations
Storage calculations
Best practices
Summary
Deploying OpenStack - The DevOps Way
DevOps in a nutshell
DevOps and cloud - everything is code
DevOps and OpenStack
Breaking down OpenStack into pieces
Working with the infrastructure deployment code
Integrating OpenStack into infrastructure code
Continuous integration and delivery
Choosing the automation tool
Introducing Ansible
Modules
Variables
Inventory
Roles
Playbooks
Ansible for OpenStack
The development and production environments
The hardware and software requirements
Networking requirements
The development environment
Setting up the development machine
Preparing the infrastructure code environment
Preparing the development setup
Configuring your setup
Building the development setup
Tracking your changes
Summary
OpenStack Cluster – The Cloud Controller and Common Services
Understanding the art of clustering
Asymmetric clustering
Symmetric clustering
Divide and conquer
The cloud controller
The Keystone service
The identity provider
The resource provider
The authorization provider
The token provider
The catalog provider
The policy provider
Federated Keystone
Fernet tokens
The nova-conductor service
The nova-scheduler service
The API services
Image management
The network service
The Horizon dashboard
The telemetry services
Alarms
Events
Infrastructure services
Planning for the message queue
Consolidating the database
Cloud controller clustering
Starting deployment with OpenStack Ansible
The deployment node
Bringing up the controller nodes
The target hosts
Configuring the network
Running the OpenStack playbooks
Configuring OpenStack Ansible
Network configuration
Configuring Host Groups
The playbooks
Summary
OpenStack Compute - Choice of Hypervisor and Node Segregation
The compute service components
Deciding on the hypervisor
The Docker containers
OpenStack Magnum project
Segregating the compute cloud
Availability zones
Host Aggregates
Nova cells
Regions
Workload segregation
Changing the color of the hypervisor
Overcommitment considerations
The CPU allocation ratio
The RAM allocation ratio
Storing instances' alternatives
External shared file storage
Internal non-shared file storage
Understanding instance booting
Understanding the Nova scheduling process
Booting from image
Getting the instance metadata
Add a compute node
Planning for service recovery
Backup with backup-manager
Simple recovery steps
Data protection as a service
The OpenStack community
Summary
OpenStack Storage - Block, Object, and File Share
Understanding the storage types
Ephemeral storage
Persistent storage
Object storage is not NAS/SAN
A spotlight on Swift
The Swift architecture
Indexing the data
A rich API access
Swift gateways
Physical design considerations
The Swift ring
Storage policy and erasure coding
Swift hardware
Where to place what
The Swift network
Deploying Swift service
Using block storage service: Cinder
Using share storage service: Manila
Using the share service
Choosing the storage
Looking beyond the default - Ceph
Ceph in OpenStack
Deploying Ceph with Ansible
Storing images in Ceph
Summary
OpenStack Networking - Choice of Connectivity Types and Networking Services
The architecture of Neutron
Neutron plugins
Service plugin
Agents
Neutron API extensions
Implementing virtual networks
VLAN-based networks
Tunnel-based networks
Virtual switches
The ML2 plugin
Network types
Neutron subnets
Creating virtual networks and subnets
Understanding network port connectivity
Understanding Linux bridge-based connectivity
Understanding OpenVSwitch-based connectivity
Connecting virtual networks with routers
Configuring the routing service
Connecting networks using a virtual router
Connecting to the external world
Providing connectivity from the external world
Associating a floating IP to a virtual machine
Implementing network security in OpenStack
Security groups
Creating security group policies
Firewall as a service
Configuring the firewall service
Creating firewall policies and rules
Inter-site connectivity with VPN service
Summary
Advanced Networking - A Look at SDN and NFV
Understanding SDN-based networks
OVS architecture
Architecture of OVN
Components of OVN
Integrating OVN with OpenStack
Implementing virtual networks with OVN
Understanding network function virtualization
The Management and Orchestration (MANO) specifications
Topology and Orchestration Specification for Cloud Applications (TOSCA) templates
Looking at the Tacker project
Deploying LBaaS service with Octavia
Configuring Octavia
Creating a load balancer
Summary
Operating the OpenStack Infrastructure - The User Perspective
Operating the OpenStack tenancy
Managing projects and users
Managing user capabilities
Managing quotas
Compute service quotas
Block storage service quotas
Network service quotas
Orchestration service quotas
Orchestration in OpenStack
Demystifying the power of Heat
Stacking in OpenStack
Organizing the stacks
Modularizing the stacks
Embracing OpenStack orchestration - Terraform
Terraform in action
Terraform in OpenStack
Summary
OpenStack HA and Failover
HA under the scope
Do not mix them
HA levels in OpenStack
A strict service-level agreement
Measuring HA
The HA dictionary
Hands-on HA
Understanding HAProxy
Services should not fail
Load balancer should not fail
OpenStack HA under the hood
HA in the database
HA in the queue
Keep calm and implement HA
Implementing HA on MySQL
Implementing HA on RabbitMQ
Implementing HA on OpenStack cloud controllers
Implementing HA on network nodes
VRRP in Neutron
More HA in Neutron
HA in Ansible:
Summary
Monitoring and Troubleshooting - Running a Healthy OpenStack Cluster
Telemetry in OpenStack
Rethinking Ceilometer
Ceilometer glossary
The Ceilometer architecture
Gnocchi - time series database as a service
The Gnocchi architecture
Aodh - embracing alarms
The Aodh architecture
Installing Telemetry in OpenStack
The Ceilometer installation
Configuring alarming
Arming OpenStack monitoring
Running Nagios
Placing Nagios
Installing the Nagios server
Configuring Nagios on OpenStack nodes
Watching OpenStack
Troubleshooting - monitoring perspective
Services up and running
Services should listen
Rescuing instances
All green but unreachable
Summary
Keeping Track of Logs - ELK and OpenStack
Tackling logging
Demystifying logs in OpenStack
Logs location
Adjusting logs in OpenStack
Two eyes are better than one eye
ELK under the hood
Placing the ELK server
Installing the ELK server
Installing ElasticSearch
Configuring ElasticSearch
Defining ElasticSearch roles
Extending ElasticSearch capabilities
Installing Kibana
Configuring Kibana
Installing LogStash
Configuring LogStash
LogStash in action
Preparing LogStash clients
Filtering OpenStack logs
Extending the OpenStack-ELK pipeline
Visualizing OpenStack logs
Troubleshooting from Kibana
Summary
OpenStack Benchmarking and Performance Tuning - Maintaining Cloud Performance
Pushing the limits of the database
Deciding the resources outfit
Caching for OpenStack
Memcached in OpenStack
Integrating memcached
Benchmarking OpenStack at scale
Testing the OpenStack API - Rally in a nutshell
Meeting OpenStack SLA
Installing Rally
Rally in action
Scenario example - Performing Keystone
Shaking the OpenStack network - Shaker in a nutshell
Shaker architecture
Installing Shaker
Shaker in action
Scenario example - OpenStack L2
Summary
← Prev
Back
Next →
← Prev
Back
Next →