OpenStack 001

OpenStack 001

OpenStack is a set of software tools for building and managing cloud computing platforms for public and private clouds. Backed by some of the biggest companies in software development and hosting, as well as thousands of individual community members, many think that OpenStack is the future of cloud computing. OpenStack is managed by the OpenStack Foundation, a non-profit that oversees both development and community-building around the project.

Introduction to OpenStack

OpenStack lets users deploy virtual machines and other instances that handle different tasks for managing a cloud environment on the fly. It makes horizontal scaling easy, which means that tasks that benefit from running concurrently can easily serve more or fewer users on the fly by just spinning up more instances. For example, a mobile application that needs to communicate with a remote server might be able to divide the work of communicating with each user across many different instances, all communicating with one another but scaling quickly and easily as the application gains more users.

Core Components (Services)

OpenStack is modular, with each service handling a specific function:

ServiceFunctionKey Features
NovaCompute (VM orchestration)Supports KVM, Hyper-V, VMware, Xen.
NeutronNetworking (SDN)VLANs, VPN, load balancing, security groups.
CinderBlock StoragePersistent volumes (iSCSI, Ceph, NFS).
SwiftObject StorageS3-like scalable storage for unstructured data.
GlanceImage ManagementVM templates (ISO/QCOW2) storage/retrieval.
KeystoneIdentity & AuthenticationRBAC, multi-factor auth, LDAP/AD integration.
HorizonWeb DashboardGUI for admin/user operations.
HeatOrchestration (Infra-as-Code)Auto-scaling, templates (YAML/JSON).
CeilometerMonitoring & MeteringBilling/alerts, integrated with Gnocchi (time-series DB).

Architecture

  • Control Plane: Runs core services (API, scheduler, database).
  • Compute Nodes: Host VMs via hypervisors (KVM, Xen, etc.).
  • Storage Backends: Ceph, NFS, iSCSI, or vendor-specific (e.g., NetApp).
  • Networking:
    • Provider Networks: Direct physical network access.
    • Tenant Networks: Overlay networks (VXLAN/GRE) for isolation.
source: redhat

Key Features

  • Multi-Tenancy: Isolate projects/users with quotas.
  • API-Driven: RESTful APIs for automation (compatible with AWS EC2/S3).
  • Scalability: Deploy 1 node or 1,000+ nodes.
  • Integration: Works with Kubernetes (via Magnum), Terraform, Ansible.

OpenStack vs. CloudStack vs. Others

FeatureOpenStackCloudStackVMware vSphere
ComplexityHigh (modular)Low (monolithic)Medium (proprietary)
NetworkingFlexible (Neutron plugins)Built-in advanced networkingNSX (paid add-on)
EcosystemLargest (500+ vendors)SmallerClosed (VMware-only)
CostFree (open-source)Free (open-source)Expensive licensing

Pros & Cons

  • Pros:
    • Flexibility: Customizable for diverse workloads.
    • Avoid Vendor Lock-in: Runs on any hardware.
    • Community: Backed by IBM, Red Hat, Intel, etc.
  • Cons:
    • Steep Learning Curve: Requires expertise.
    • Maintenance Overhead: Upgrades can be complex.

1. RHOSP Classroom vs. Production Environments

  • Classroom deployments use prebuilt, customized TripleO templates (located in ~/templates on the director). You can get one, if you have RedHat partner subscription.

source: redhat
  • Production environments prioritize resilience and low-latency communication between undercloud/overcloud nodes. Nodes can be rebooted for maintenance without downtime due to redundancy.

2. OpenStack Cloud Personas

Red Hat defines 10 personas (user roles) based on real-world OpenStack usage:

  • Focuses on Domain Operator in this course (manages RHOSP operations).
  • Other personas include project admins, developers, and network engineers.
  • Purpose: Align training with real user tasks, not just features.

3. OpenStackClient (OSC) Basics

  • Unified CLI for all OpenStack services (openstack command).
  • Authentication: Requires user, password, project, domain, and Identity API endpoint.Use environment files (e.g., user-project-rc) to store credentials.

Common Commands:

  • openstack server list -c Name -c Status (filtered output).
  • openstack network list --max-width 80 (formatting).
  • Structured output: -f json or -f yaml (e.g., for parsing with jq).

4. Instance Management

Key Objects for Launching Instances

  • Image: Bootable OS disk (e.g., rhel8).
  • Flavor: VM resources (CPU, RAM, disk).
  • Network/Subnet: Layer 2/3 connectivity (e.g., finance-network1).

Launch via CLI

Launch via Dashboard

  • Access: http://dashboard.overcloud.example.com
  • Verify project and user in the top-right corner.
  • Navigate to Compute → Instances → Launch Instance.

Summary

OpenStack is the "Linux of the cloud"—powerful, modular, and ideal for organizations needing full control over their cloud infrastructure. While complex, its flexibility and scalability make it a leader in open-source cloud solutions.