Implementing best Cloud Computing Strategy
Why would you create your own CI environment if OpenStack already has one available?
The first reason involves your own components and systems. OpenStack projects, Tempest tests and DevStack can accomplish very broad tasks.. However, some components depend on physical characteristics such as the architecture, operating system (including specific distributions) and hypervisor in order to run tests. For instance, if you need integration for a PowerKVM hypervisor, you need PowerKVM in your environment. A distribution may want to test OpenStack against the different versions of their system and a network card manufacturer may ensure Neutron will not break on their cards.
The services for CI (Zuul, Jenkins, Nodepool) used by the OpenStack Infrastructure community are widely accessible, therefore they can be used to build your own environment.
Let’s talk in general about the tools, knowledge and skills you’ll need in order to do this.
What do you need in your environment?
Basically, you will need a cloud environment (OpenStack cloud, of course) with the components and systems you want to test. If you are using PowerKVM as your hypervisor, you’ll need a Power-based cloud with PowerKVM installed on each of the nodes. You’ll also need a pool of servers (such as virtual machines outside or inside the cloud) where you are going to install the services you need.
How large should it be?
First, think about which OpenStack projects you want to check and how many types of jobs you will run. Suppose you are going to verify tests against Nova and you want to cover unit tests, Tempest tests against MySQL, and PostgreSQL. That makes three different sets of tests you want to run. You can get a better understanding of those by looking at a patch review in Gerrit. For example, you may see the following: