When I talk to people about environment management I’m surprised by the number of people who don’t understand how much they cost. In a large organization
it isn’t immediately obvious just how much a particular environment costs. It isn’t like people announce how much a VM costs every time someone spins one up to support a QA test. People using these environments: the developers developing code and the QA testers checking features are almost never thinking about the fact that a large staging environment has a hefty price tag.
If you are an environment manager dealing with a 3rd party cloud provider such as Amazon or Rackspace the costs are known, but at a large organization with a private cloud you are often dealing with a central IT department that manages infrastructure and costs are captured as a chargeback to a business unit. In the later scenario it can be a challenge to understand exactly how much an environment costs.
In this blog post I present a simple model of the costs of various environments. How much does your company spend on production environments vs. the environments designed to support development? Before I present the model, let’s review the ideas discussed in a previous post: what are the minimum requirements for environments in a large project?
At a minimum, a complex software project requires between 4 and 5 separate environments, and given the continuous nature of software delivery all of these environments are required across all phases of the project. As a project matures your developers will be constantly developing software which is then delivered to QA and subsequently deployed to production. This baseline of 4-5 environments is what allows your organization to deliver and qualify software without having to stop and repurpose environments to cater to each individual phase of the software development lifecycle.
These requirements increase for a software project that involves multiple teams working on multiple releases in parallel, and with evolving approaches to production deployments there are often multiple production environments. In summary, you’ll need to plan for between 9-11 environments if you anticipate managing multiple releases in parallel.
Let’s take the example of a website that follows a common architecture. This project consists of web servers sitting in front of a number of application servers that query both a relational database and a NoSQL database. We’ll throw in a memory-based cache which is used to take some load off of the application servers. This is a relatively common architecture across technology platforms from more enterprise-ready systems like Java and .NET to newer approaches like Node.js.
The following diagram presents a simplified model of the resource requirements and costs associated with different kinds of environments. In these models we’ve ignored the costs of software licenses and support and focused on infrastructure costs.
As you can see in this model, the costs of environments can add up very quickly.
What about QA and Production Patch Environments? QA environments fall in between development environments and staging environments. Some QA environments require redundancy as systems move closer to a production release, but most QA environments can look more like Development environments. Production patch environments are a step below staging environments, but they are essential for mission-critical software applications. We assign a cost of $40k/year to each.
Taking the model shown above, here are some simplifications that will help us model the costs of environments for a complex software project.
Back to our model of an organization releasing software in parallel. Assume that a project supports four development teams working on two parallel releases. Each team requires a dedicated development environment and each release train requires dedicated QA and Staging infrastructure.
This organization would be spending $1.5 million per year on a production network and $420,000 per year on all other environments combined.
This simple model illustrates the fact that the cost of non-production environments can be a significant factor in your IT budget. If you don’t plan appropriate and model your environment requirements and allocation needs in advance with Plutora you’ll end up surprising the business with six-figure budget requests.
In the next post I’m going to write about some of the factors that drive these costs higher. One such factor which can easily be avoided with Plutora is unclaimed environments. In this model we have 10 environments, but when an organization manages 30-40 environments it is very common that entire departments are allocated environments that are forgotten or abandoned for months or years.