This is a continuation from Part 1.
Computing environment specification with GUI
Quali’s GUI is an entry point to Quali’s ClodShell orchestration platform, which is a powerful tool for specifying a development and testing environment. The GUI allows a user to draw his/her development and testing environment by selecting and placing icons. There are three types of resource icons, and they correspond to physical, abstract, and service resources. When a user attempts to connect two entities, he/she chooses from a display of an appropriate set of connection methods (e.g., via which switch or VLAN). Because the target users are sophisticated engineers, they may already know how each entity is connected. But connectivity may change over time because of additions, removals, moves, or modifications, and the user may not remember all the connections, so this may come in handy.
Figure 1: A requested computing environment specified in a diagram with the GUI.
When a user has finished drawing an environment, it is not created until he/she presses the submit/commit button. Depending on the availability of each resource, the environment may or may not be realized or be available. Once a user creates an environment and presses the submit/commit button, and all the resources are available, the environment is created and becomes available. This includes launching orchestration automation that will provision the entire environment including making network connections, configuring devices, and spinning up virtual resources.
The physical entities specified in the diagram are called concrete resources when they are allocated to the user. Concrete resources correspond to real physical equipment like servers, switches, routers, and storage devices. An icon that corresponds to a physical resource is displayed with a real IP address, indicating that it is allocated for use.
An abstract resource can be used instead of a concrete resource when modelling an environment. An abstract resource allows the user to specify a request for a concrete resource that meets user specified requirements. An abstract resource exists only in the diagram and is not allocated to the user in reality. However, when the environment is reserved, the abstract resource will resolve to a concrete resource that meets the requirements. For example – an abstract resource might designate “a server with 2 Gig of RAM” and, when reserved, resolve to a real physical server, say “Server-001 with IP address 10.2.3.1” that has 2 Gig of RAM. If none can be found to exist, the environment will not be reserved.
Resource reservation and scheduling
As discussed in part 1, the user can set up and operate his/her environment in two ways. One is by reservation and the other is done in a multitenant manner. In the case of the reservation mode, the user can reserve the resources he/she requires exclusively by specifying the start time and the duration. The specification of resources can be done in several different granularities. For example, an entire switch can be reserved, and it is possible to reserve a particular port of that switch.
An additional feature specifies different levels of priorities. What happens when a second user comes along with a higher priority and reserves resources that might contend with the resources already reserved by the first user? The user with higher priority will be assigned the resources. In addition, when the reserved time is reached, the user gets deprived of the resources allocated to him/her. Before that happens, a warning message is given, and the user has the option to extend the allocation time. Such a priority is pre-specified as part of a policy at the user’s site. The policy may contain other rules, regulations, and compliances.
How realistic are the reservation and multitenant options? Either option is easier to implement when the number of users is limited. What if we have a lot of users to support with these two options? Hans told me that Cisco is using Quali’s CloudShell solution to build and operate their DevNet sandbox. Cisco’s DevNet lets users access real Cisco hardware, virtual and software products via the cloud self-service portal. Although Hans did not have the exact number of simultaneous users, apparently there are thousands of users accessing DevNet.”
User interface functions and extensions
The GUI has preset options that the user can select. What about extensibility? Can the user program any function he/she wishes into the GUI? What does programming look like, a bunch of idiosyncrasies? Does the user have to learn a new language to program? The GUI has an option to program with visual constructs that are basic in programming, such as loop, case (instead of if-then-else), and parallelism as in Figure 2. By clicking on these constructs, the user can program his/her needs into the GUI. The created program can be stored for reuse by others.
Quali is targeting DevOps engineers, who tend to like programming in REAL programming languages like Python. Quali’s GUI has an option to encapsulate a program written in a computer language like Python and to integrate it into the system seamlessly. This encapsulated program also can be saved and reused by others.
Figure 2: Visual programming feature of GUI.
This capability allows the implementation of some interesting features, such as:
1. Dynamic allocation of resources
2. Load balancing
As for #1, even in a DevOps environment some resources may run out while operating. In that case, more resources can be added automatically to accommodate the new requirement. Additional resources may be more computing (like spinning off more virtual machines, allocating storage capacity, and creating networks). Conversely, when demands subside, resources are released.
Regarding #2, loads can be balanced among multiple resources that already exist or are newly added. For example, a virtual machine on one server whose utilization exceeds some threshold may be moved to another server. This can extend beyond the boundaries of data centers and clouds.
As for #3, physical hardware can break and fail from time to time. If a server crashes, an alternative server will automatically take over. If a switchport fails, an alternative network is constructed to keep the connection up.
Theoretically, many more features can be programmed. For example, power and cooling resources at a data center may be used to adjust the computing environment. The limits of these resources may cut back computing. Also the optimized use of these resources may require rearranging the configuration of the environment.
Inter–data centers and interclouds
Because the current target market is DevOps, demands for involving multiple data centers and clouds may not be high. Often, inter–data center and intercloud transactions are for performance testing, which comes after the functional testing is completed. However, more and more programs need to deal with Web/Internet-scale requirements. This will necessitate dealing with multiple data centers and clouds. My understanding is that this is doable with Quali’s current solutions as in the following diagram (Figure 3).
I asked him how their solutions work with OpenStack. Quali’s solutions can be placed on top of OpenStack, and they can also be applied from the bare metal level to creating a cloud environment.
One subject I always cover is how a given solution is used to establish energy efficiency. How is energy saving accomplished with a system like Quali’s?
The savings stem from:
1. Automation, which is less error prone
2. Optimized use of resources
As for #1, it is not easy to set up a development and test environment with multiple devices and their complex configurations. If it is done manually, errors tend to creep in, locating and correcting problems may not be easy, and time and resources (such as power) may be wasted. With proper automation, such errors are prevented and energy isn’t wasted.
As for #2 in conjunction with #1, this allows optimized sharing of resources that lead to high resource utilization, increasing energy efficiency. It is even better if the use data is collected and analyzed. Through such analysis, when resources are allocated, more energy efficiency could be established.
Finally, I would like to write a future blog about the applicability of Quali’s solutions to other industries like power and energy.