OpenNebula Quality Assurance

What is OpenNebula QA?

OpenNebula QA is the part of the OpenNebula project which covers all testing of the software that makes up an OpenNebula release. Its goal is to improve the quality of OpenNebula releases and updates. Testing & QA of a cloud management tool is particularly challenging as it requires to verify the integration of multiple software components, from different hypervisors and storage architectures to operating systems and DB backends.

As part of OpenNebula QA we perform the following activities:

  • Development & maintenance of a testing framework to exercise all the OpenNebula components
  • Maintenance of a testing infrastructure with multiple hypervisors and storage configurations
  • Regularly performing tests and feedback the development process by filling issues
  • Keep and up-to-date set of test cases to exercise a wide functionality scenarios
  • Automate the testing and bug identification process

Test Cases

OpenNebula QA uses Jenkins as tool for continuous integration with automated test execution, the following test cases are considered:

  • Unit Tests, for the daemon core component (C++) using CPPunit, and the OpenNebula Cloud API with RSpec and Junit.
  • System Tests, that check the integration of the OpenNebula core, driver subsystem and OpenNebula APIs.
  • System Integration Tests, exercise complex use-cases on a complete cloud stack that includes contextualization, networking and image management. These tests combine multiple hypervisors (KVM, Xen and VMware) and storage configurations (shared and non-shared FS).
  • Scalability Tests, to asses the robustness and scalability of the core components when dealing with tens of thousands of VMs and hosts.

Certification Policy

OpenNebula emphasizes interoperability and portability, providing cloud users and administrators with choice across most popular cloud interfaces, hypervisors and public clouds for hybrid cloud computing deployments, and with a portable software that can be installed in most hardware and software combinations.

This section outlines the general policy that guides the Project to decide on the Certified Platform Components for the upgrades and updates of OpenNebula. The release notes of each major and minor version include a matrix with the certified platforms.

Certified Linux Distributions

OpenNebula is supported in distributions widely adopted in production environments and in popular community distributions in the available versions at the time of the release of the update:

  • RedHat Enterprise Linux: Last service packs of the two major releases
  • Ubuntu: LTS release and last Ubuntu Server release
  • CentOS: Corresponding version of the Redhat supported versions if available
  • Debian: Latest stable release

Certified Hypervisors

OpenNebula supports three different hypervisors:

  • KVM: Because the support for KVM is included in the Linux kernel, the operation will be supported with the default kernel provided by the Linux distribution used in the nodes. No other kernel packages or kernel compilations will be supported
  • VMware: Latest stable versions of ESX and Server products

Public Clouds

OpenNebula supports three different public clouds:

  • Amazon Web Service
  • Microsoft Azure

Other Infrastructure Platform Components

OpenNebula supports the stable version at the time of the release of the update.