IT and development teams are being asked to deliver higher quality software more frequently, and to be more agile and responsive to business needs. For development and testing (dev/test), the well-known challenge is that on-premises infrastructure has a fixed capacity while, in today’s reality, those resources must support variable demand. For example, performance testing is typically resource-intensive, and can be handled in two ways: 1) add more resources, which adds time, cost, and a risk of over-provisioning the data center, or 2) poach capacity from other applications and risk impacting their performance. Given these constraints, unleashing the on-demand public cloud capacity may be a key ingredient for improving dev/test efficiency, time and cost.
How can the public cloud support dev/test teams for functional, integration, performance, load and other testing? Three primary benefits can be gained by leveraging the public cloud for dev/test: a) optimizing infrastructure cost, b) increasing business agility, and c) improving product quality. Let’s look at each in detail.
Advantages of Public Cloud for Dev/Test
Here are 3 compelling reasons to consider moving your dev/test to the public cloud:
1. Optimizing Infrastructure Cost
Instead of 90% of the dev/test infrastructure sitting idle between active projects, the cloud enables acquisition and provisioning of IT environments on demand. IT organizations can avoid purchasing and/or allocating on-premises infrastructure for these transient workloads, paying only for actual use. Using the public cloud for dev/test also frees up on-premises resources for mission critical applications, ensuring fewer conflicts and better performance.
And there are other cost implications that should be considered:
- Are there advantages for your organization for using the cloud (opex) vs building on-premises (capex)?
- What are the cost savings gained by changing providers when there’s a cost difference (e.g., use AWS for one month and Azure the next if pricing is cheaper)?
- Can you take advantage of the significant discounts available when using spot instances, which allow you bid on extra AWS capacity?
2. Increasing Business Agility
Moving the enterprise software lab to the public cloud also delivers more agility. Virtualized infrastructure provides dev/test teams with powerful tools and testing flexibility to clone entire application stacks with minimal configuration and complete testing more quickly.
When applied to our example of performance testing: by using the public cloud’s essentially endless infrastructure and configurable horsepower, IT capacity needs can be fulfilled quickly. There’s no need to share on-premises resources or purchase additional servers to serve the temporary capacity requirements – making development changes and testing environments and processes more flexible, simple and agile.
In addition, by leveraging the public cloud in a controlled manner, enterprises can equip their developers and testers with a self-service portal and automated resource provisioning. Not only does this increase the R&D team’s agility and independence, but it also reduces administrative overhead, freeing the IT team to focus on running an efficient, well-utilized production environment. This automated provisioning also puts IT in the driver’s seat, and can proactively prevent developments teams from going to the cloud on their own, a Shadow IT phenomenon that can negatively impact security, governance and compliance.
3. Improving Product Quality
Better dev/test resources also improve product quality. The public cloud’s large-scale IT resources can be pooled to improve the feasibility and execution of larger and more complex enterprise software testing. Instead of using a “scaled-down environment” (such as putting the complete stack on single server for test purposes), with the public cloud, you can provision a full copy of the production environment and simulate and test more accurate “real-life” scenarios.
Parallel testing, which can reduce the test cycle length, is now more achievable because scale is no longer a constraint. The public cloud supports changing configurations quickly, either manually or using APIs for DevOps tools. Comprehensive testing like simulating geographically distributed servers/users is also easily implemented. Using the public cloud concept of “infrastructure as a code” (IAC) helps to automate the provisioning of entire environments, accelerate the development and delivery life cycles, and raise application quality, compatibility and coverage. The ability to provision isolated environments with all the infrastructure components (such as networking, security, storage etc.) can streamline new release testing, in the scope of their larger ecosystem and not just the software components, further raising product quality.
By moving dev/test to the public cloud, enterprise IT teams gain on-demand flexibility of resources that can reduce cost, improve quality and reduce time to market. With the cloud, enterprises can gain unlimited short term test capacity, while leaving on-premises systems free for mission critical workloads.
However, implementation challenges remain:
- How to migrate data for testing to the cloud
- How to manage and migrate the test environment templates to the cloud
- Once testing is complete, how to move the ready-to-be-shipped environment back on-premises
- How to control cloud sprawl that may develop with self-service freedom
When the right tools and processes are used in the enterprise, the public cloud’s on-demand flexibility can be transformed into greatly reduced time to market for software products. Check out how Velostrata can simplify Dev/Test in the cloud with this solution brief.