OpenStack Solution for Windows: Inside Our Recent Project

Written by - Masood

June 22, 2019

Since we announced that we are the first Pakistani software company to deploy an OpenStack solution for Windows, our team decided to share a behind-the-scenes look at the project and its implementation. Our Cypriot client required a solution running on OpenStack to launch their cloud-hosting provider business. The project specifications involved designing and developing three primary business functions. The first requirement was to support a straightforward installation of an instance based on options like CPU cores, RAM, and HDD. The application would suggest the best-recommended plan to users based on their preferences.OpenStack solution for Windows,Administrator configuring service types

The administrator is configuring the service types in our system. The second requirement was to support the installation of an instance. According to user-specified parameters concerning the resources that would be assigned. As well as, supporting the upload of a database file. Depending on the end-user preference that file would be converted to and from either Firebird or MySQL.

Imported Database server

Then imported into the appropriate database server and would be installed once the initialization of the instance was completed. The third requirement was to support the installation of an instance according to user-specific parameters. But this time, the end-users would also be able to define and configure interval-based threshold alerts for the various resources of the instance, such as CPU and memory utilization.

Configuring the operating system for services

Custom Threshold Alerts and Instance Migration

Our solution included customizable input fields for resource thresholds. When users exceeded these thresholds, the system sent email alerts. It also automatically migrated the instance to a new one with additional resources. This process involved taking a snapshot of the original instance, creating a new one, and attaching the snapshot. The IP address was seamlessly transferred to the new instance.

We faced challenges in ensuring real-time migration without downtime. Automated scripts detected threshold breaches and triggered instance creation. These scripts also managed resource reallocation and IP reassignment. The team used OpenStack’s Compute and Networking APIs to handle the process efficiently. This met the client’s requirements for smooth resource management and migration.

Solution for OpenStack Solution for Windows

The administrator is configuring the operating system for the various services.

Further Steps for OpenStack Solution for Windows

The team’s next steps were to go through the extensive documentation of the OpenStack solution for Windows native functionality to get a handle on how they would go about integrating the different OpenStack APIs that were necessary to be able to implement the client’s requirements. It quickly became apparent that the implementation of the project specifications would require making extensive use of the following APIs provided by OpenStack:

  • Identity API: The Identity service generates authentication tokens that permit access to the OpenStack services REST APIs. Clients obtain this token for other service APIs by supplying their valid credentials to the authentication service.
  • Compute API: Through this API, the service provides massively scalable, on-demand, self-service access to compute resources.
  • Networking API: The Networking API v2.0 is a RESTFULL HTTP service that uses all aspects of the HTTP protocol including methods, URIs, media types, response codes, and so on.
  • Image Service API: Creates, lists, shows, updates, deletes, and performs other operations on images.

Once this was done, our team decided to integrate the PHP SDK for OpenStack with an application using Laravel. Which is one of the, if not the most, popular frameworks for PHP today. Next, the team designed and developed the application itself to be able to offer a pleasant UI/UX experience to the client who would manage the backend as well as the client’s future customers.

Further Steps for OpenStack Solution for Windows

Instance Package Configuration

An administrator was configuring the instance packages. This phase turned out to be the most critical part of the project. The team faced several issues, many of which seemed insurmountable at the time. Most of the challenges stemmed from the images used to deploy OpenStack instances. A large number of features from the client’s requirements relied on preparing a Windows Server image. Additionally, the team needed to ensure the installation of several packages during the first instance initialization.

Database Conversion Integration

In the Laravel application, users specified database files that had to be converted between Firebird and MySQL formats. After the installation of the database server, the team imported these files. To meet this requirement, the team explored several options and decided to integrate a third-party API from RebaseData to handle database conversion.

Snapshot of volume migration

The administrator is seen here setting up the initial fields for the instances.

Conclusion

The task became challenging as the client required Windows Server images instead of Linux-based ones, which led to extensive research. After multiple tests, the team successfully built the images using Cloudbase-Init, the Windows equivalent of Cloud-Init. However, limitations with the hosting provider caused issues, such as cron job intervals. To address this, the team integrated EasyCron. Despite challenges, they successfully delivered the project and contributed several enhancements and documentation. If you have any inquiries about OpenStack for Windows, feel free to reach out!

You May Also Like…

No Results Found

The page you requested could not be found. Try refining your search, or use the navigation above to locate the post.