Course CLD102 - Introduction to Building and Deploying OpenStack Cloud Systems
Duration: 5 Days
Course Background
OpenStack is a widely used open source cloud computing framework. Developed originally in conjunction with NASA and Rackspace it is now a major part of Rackspace's web services products. Rackspace is actively involved in the further development of OpenStack and newer versions are being brought out at regular intervals. The most current version is Grizzly, and its successor, Havana, is in the process of being developed and tested. Openstack is well suited to small and business enterprises, and is also being used by some large corporations. RedHat, Dell and HP are also active supporters of the Openstack initiative. As with many large and complex open source frameworks there are various “commercial offshoots” providing technical support and addon products. This course focuses on the opensource elements of Openstack, and is independant of any particular organisation providing commercial openstack based products.
Course Prerequisites and Target Audience
Basic knowledge of linux, linux command line tools and utilities, linux and TCP/IP networking and shell programming. Some practical system administration experience would be advantageous. This intensive 5 day course is aimed at - technical systems administrators, technical IT and data center managers, and strategic planners.
Course Outline
- Overview of history, concepts and terminology
- Concepts and components of Cloud Computing Frameworks
- Internet as a Service (IaaS)
- Virtualisation and Hypervisors - architecture and technology
- Why use virtual machines in cloud computing frameworks ?
- Components and services needed for a functioning cloud computing framework
- Overview of the key components of OpenStack - Projects/Services
- OpenStack Compute (Nova,Glance)
- OpenStack Storage (Swift, Cinder)
- OpenStack Networks (Quantum)
- OpenStack Security (Keystone)
- OpenStack Tools (Horizon, Ceilometer, Heat)
- Logical overview of how the components work together
- Physical deployment of components - Computers, Networks (interfaces, switches and routers), File systems (RAID, NAS, SAN)
- TCP/IP and OpenStack (IPv4, IPv6, Virtual Networks, Routing protocols, Application layer protocols)
- Introduction to open source Virtualisation technologies KVM, XenServer and Qemu
- Installation, Configuration and Usage of KVM, XenServer and Qemu
- Comparison and Relationship with VWWare, Citrix, and commercial technologies
- Installing an OpenStack distribution on a virtual machine
- Runnning multiple virtual machine instances on a single machine
- Setting up a cloud running multiple virtual instances on multiple machines
- OpenStack usage concepts
- Multi-tenancy
- On demand provisioning of virtual machines
- Self service provisioning
- Snapshotting
- Storage volumes
- Block storage for VM images
- Object storage for VM images and arbitrary files
- Dashboard
- Openstack as a Cloud Operating System
- OpenStack Architecture (currently Grizzly version)
- A graph model
- Relationships between components and services
- APIs to provide access
- Drivers to underlying host operating system
- Nova compute as a worker daemon and the creation and termination of Virtual Machines via the Hypervisor API
- Glance - virtual machine discovery, retrieval and registration
- Horizon Dashboard - baseline user interface for managing OpenStack services
- Keystone - OpenStack security - policy, catalog, token authentication
- LDAP - overview and usage
- SQL database - overview and usage
- KeyValue Stores (KVS) - overview and usage
- Understanding how Keystone relates to other OpenStack elements
- Keystone and user management
- Keystone and provision of a service catalog
- Keystone use cases and scenarios - Keystone Architecture flow
- Openstack storage
- Types of storage
- Ephemeral storage
- Block storage
- Object storage
- Storage use cases and scenarios
- Object storage (Swift) - location and retrieval of data
- Object storage architecture
- Single node cluster
- Small clusters (server/node)
- Large clusters (multiple zones and regions)
- Swift System components
- Ring
- Proxy Server
- Object Server
- Use Case Analysis and Scenarios the Swift System in use
- Cinder Architecture - Block Storage
- Cinder deployment
- Cinder interaction with Nova
- Openstack - Network as a Service - Quantum
- Quantum subnetworks and quantum deployment
- Management network
- Data network
- External network
- API network
- Plugins and agents
- Use cases and scenarios showing how the openstack components fit together
- Openstack Deployment - Practical case studies
- Context and soft systems analysis - construcing the rich picture
- Defining context and boundary
- Goals and objectives
- Intensive revision of TCP/IP networking
- Establishing network architecture requirements
- Sketching out initial network architectures
- Layer 3 and Virtual networking
- Sketching out a deployment automation network diagram
- Gaining management support and analysis of cross-organisational changes associated with openstack deployment
- Identifying and building necessary in house skills
- Scalability issues
- The rack as a base unit for scaling
- Scaling horizontally vs. scaling vertically
- Automation - design, planning, implementation, monitoring and maintenance
- Planning for the future - Havana architecture
- MaaS
- Juju
- Puppet/Chef
- Building and deploying a basic OpenStack system on a small collection of Virtual machines
- Setting up a VirtualBox sandbox environment
- Installing OpenStack and configuring OpenStack compute
- Basic administration
- Stopping and starting Nova services
- Setting up a cloudadmin account and project
- Installing and using euca2ools for command line administration
- launching and terminating a cloud instance
- Creating and modifying user accounts
- Managing security groups
- Creating and managing keypairs
- Creating custom Windows and Linux images
- Mastering and understanding Keystone
- Installing OpenStack Identity Service
- Configuring roles
- Creating tenants
- Adding users
- Defining service endpoints 62
- Configuring the service tenant and service users
- Configuring OpenStack Image Service and OpenStack Compute to use the OpenStack Identity Service
- OpenStack storage
- Creating an OpenStack Storage sandbox environment and installing the OpenStack Storage services
- Configuring storage
- Replication
- Storage service and storage proxy server configuration
- Account server setup
- Container and Object server setup
- Creating Object, Account, and Container rings
- Stopping starting and testing OpenStack Storage
- SSL access to OpenStack storage
- OpenStack Storage with OpenStack Identity Service
- Object storage - iInstalling the swift client tool
- Creating containers
- Uploading, downloading and listing containers and objects
- Deleting containers and objects
- Understanding and using OpenStack Storage ACLs
- Openstack Storage administration
- Preparing and managing clusters and drives
- Cluster monitoring, capacity management and node management
- Monitoring usage
- Glance OpenStack Image Service
- Installation and configuration
- Registering remotely stored images
- Nova volumes
- Configuring nova-volume services and configuring OpenStack Compute for nova-volume
- Creating volumes
- Attaching and detaching volumes to instances
- Deleting volumes
- Horizon - OpenStack Dashboard
- Installation
- Keypair management
- Security group management
- Launching and terminating instances via the Dashboard
- Adding new tenants and managing users via the Dashboard
- OpenStack Networking - configuration and administration
- Flat networking
- Flat networking with DHCP
- VLAN Manager networking
- Configuring per-project (tenant) IP ranges
- Automatically assigning fixed networks to tenants
- Modifying a tenant's fixed network
- Manually associating floating IPs to instances
- Manually disassociating floating IPs from instances
- Automatically assigning floating IPs
- Installing and Deploying OpenStack in Datacentres
- Installing and using MAAS (Metal as a service) for bare-metal provisioning
- Installing and configuring Juju and using Juju to install OpenStack services
- Managiong and scaling OpenStack compute capacity
- MySQL and PostgreSQL clustering
- Load balancing
- Designing for fault tolerance and bonding network interfaces
- Basic Troubleshooting
- Making use of logging
- Learning from case studies, strategies and scenarios
- Troubleshooting OpenStack Compute Services
- Troubleshooting OpenStack Storage Service
- Troubleshooting OpenStack Authentication