Qeystone by Minitab, Inc.
Qeystone is a cloud-optimized Project Portfolio Management platform for Lean Six Sigma. Project owners and practitioners use Qeystone Tools to execute projects. Project information automatically rolls up to Qeystone's cloud-based Dashboard, where executives and stakeholders can see graphical summaries and reports for a high-level view of the entire continuous improvement initiative.
Qeystone is composed of several core components including Qeystone.com, desktop tools, a licensing management portal, and deployment, monitoring and upgrade tools.
Qeystone was built on Microsoft Windows Azure. Mintab believes that by using the Azure platform, they were able to save a large amount of development time and thus deliver a testable application quicker.
Qeystone was Minitab's first application designed specifically to run on the cloud. The goal of the shift was to glean all of the benefits of lower operating costs, higher scalability, and drastically reduced infrastructure management overhead. While each of these benefits was eventually realized the project was not without its growing pains.
Qeystone makes constant use of Windows Azure Storage for large binary data, configuration information, and message passing through the queuing mechanism. The storage layer has been extremely robust and reliable and forms the backbone of the entire application. One difference between access to Windows Azure Storage and a traditional infrastructure environment is that the storage is not local to the machine. Instead it is available through HTTP requests to a specific storage cluster. The data is replicated between multiple disks and can even be replicated to another data center to virtually eliminate the chance for data loss. Supporting this level of reliability and redundancy in a traditional environment would cost a fortune in comparison to the low rates offered by Windows Azure.
As with any large-scale product development effort it is important to have very similar environments between the development and testing phase and the final production deployment. While developing Qeystone it was easy to create an isolated testing or load testing environment that could behave just like a production deployment. It was also easy to vary the machine size and number of instances to account for different levels of load early on in the process without any wasted hardware purchases. This flexibility led to much shorter testing cycles and a much more stable and reliable finished product.
Designing software to run in Windows Azure also requires a focus on fault tolerance. Although Windows Azure Storage has been very reliable, hardware failures, network congestion, and even operating system updates must be kept in mind while developing these applications. The traditional solution to these problems is to implement powerful and failure-resistant hardware with extra available capacity and a very controlled environment with updates scheduled for off-peak times. Unfortunately that is not a cost effective approach on the cloud and many of these problems are beyond the control of the application itself.
Instead applications must be ready for failures, able to work around congestion, and flexible enough to handle unscheduled operating system updates. These issues combine to encourage applications to be able to scale out when failures occur, implement retries and load balancing to survive transient issues, and to make the individual instances of the application interchangeable so that some can fail without affecting the entire system.
For more on the lessons learned by Minitab with Qeystone, read Minitab Launches Qeystone into the Cloud with Windows Azure.
Disclosure: This Spotlight for Minitab's Qeystone was sponsored by Microsoft Corporation.