Are you juggling between multiple test environments to ensure right configurations at the right time? Are you spending days of effort in setting up a new test environment? Are you underutilizing your test environments and resources? Are you compromising on your test coverage due to unavailability of test environments?
Experience from traditional test environment service shows that at least 30% of testing time is compromised due to test environment issues. There are numerous gaps preventing higher availability of test environments.
Few of these gaps are
To cater to these perennial problems, industry is moving towards ‘Next Gen Test Environments’, wherein 90% of test environment lifecycle is automated by software defined services of compute, storage and network.
Software defined test environment model
As the name explains, software defined test environments (SDTE) is the concept of managing your test environments the same way that we manage applications or any such software code. SDTE is the major evolution of next generation test environments. It provides a complete set of software defined services for compute, storage, security and network to provision the test environments in public or private Cloud infrastructure.
The basic principle of SDTE is that the test environment engineers can write and execute code to provision the test infrastructure, deploy the application and configure with right parameters. This means a test environment engineer can bring up 100s of servers with a single click and with a couple of clicks, the engineer can install all the applications properly with the right configuration. In this journey, all the benefits of Cloud architecture (i.e. elasticity, flexibility, security etc.) can be fully leveraged from software-defined services of the Cloud service provider. As depicted in figure 1, SDTE model is broadly categorized into two parts - Software controlled environment provisioning and environment services (or operations)
Figure1 : Software defined test environment service
Container based rapid provisioning
On demand environments on Cloud, with end-to-end test environment support helps to simplify the process of creating and managing complex test environments. In this simplification journey, container-based provisioning is emerging as a revolutionary technology and industry is responding very positively.
Figure 2: Traditional Vs Auto provisioning
As depicted in figure 2, test environment setup is optimized further by leveraging containerization, which is an alternative to machine virtualization. Container technology is simpler and faster as it abstracts the application and platform in easy-to-use, re-usable and manageable containers.
However, before taking the advantage of container-based test environments, a significant amount of refactoring is required for the applications in test environment. Container orchestration tools such as Kubernetes are emerging rapidly to manage the clusters efficiently. These Kubernetes clusters eliminate lengthy deployment processes and improves the environment readiness by on-demand provisioning, scaling, and patching with CLI interface.
More and more network, storage and security features are evolving to ensure higher efficiency and security.
Fully automated environment management
In the current DevOps world, test environments are built, and live fast, most of the times, die fast as well. Continuous deployments and continuous monitoring helps the testing team to achieve higher availability of the environments, thereby ensuring higher test coverage. With minimal manual intervention, these test environments can be made auto-scalable and ready to meet the ad-hoc demands.
All the assets information and the relationship is available at a single place so that the environment team can control the assets and environments efficiently. Using this information, environment maps can be easily defined and reused to move assets from one virtual environment to other.
Once the environment usage is over, a complete backup will be provided to the testing team for future re-use purpose. Environments will be de-commissioned at the same speed as provisioning and all assets will be released along with billing and usage details.
The next gen test environment
SDTE is a unique work model designed for DevOps world where all the low-level environments are defined and controlled by the software. This model consists of specifically selected tools and pre-packaged infrastructure components with the flexibility of service utilization on Cloud. It will enable enterprises to get easy access on Cloud based test environments supported by monitoring and ITSM tools.
This work model is designed to help the test environment team to create and access all low-level environments with few clicks and shorter turnaround time. Other key advantages of this model are:
Peri Narasimha
Practice Head for Test Environment & Infrastructure Testing at Wipro Ltd.
A postgraduate in Computer Science with over 18+ years of IT experience, Peri has designed and patented Unified Test Environment Model. Currently, Peri is working on Next Gen Test Environments for DevOps world by leveraging Cloud and Containerization technologies. Peri has led and executed many integrated and standalone testing projects for various clients in the retail, telecom, and insurance domains. Peri has developed a tool called the TE – Manager that automates the operations layer of environment activities. He has also defined best practices and standardized test environment activities at an enterprise level and has helped organizations achieve highest maturity level in managing test environments.