Software Enabled Development Lifecycle (SDLC)
Anyone who develops and tests software is all to familiar with the Software Development Life Cycle (SDLC). In general this is the process for developers developing applications, checking out their code into a repository, and then checking it back in. Later in the lifecycle, Quality Assurance (QA) teams take these builds and install them into multiple test environments to do functional, load/performance, integration, and user acceptance testing.
While this is for the most part a standard procedure there are some fundamental challenges with it. Let’s take a look:
Inadequate resources for testing.
Even with virtualization, organizations often don’t have the resources they need to run labs for development and all of the stages of testing. Even when resources become available, the time to get them can be measured in days or even several weeks.
When you have multiple environments, they are generally each configured differently. Examples include different IP Addresses, host names, routing, etc. The end results are often bugs that aren’t directly caused by the application code. Each time an environment is built, developers, testers, and/or IT resources must spend countless hours trying to get the application to work.
Inefficiency when handling defects.
When a QA tester finds a bug or defect in an application, it can be difficult for them to replicate it. They may have to stop what they are doing to give someone else access to the environment–or worse, they may have to build out a copy to try and reproduce it. Even with conventional on-premise virtualization, these challenges still exist. Simple applications allow you to take a snapshot of the current application state, but this is more difficult, if not impossible with multi-tier applications. Furthermore, it can quickly become inefficient and expensive to share, and store environments for defect that must be escalated.
Leveraging solutions like Skytap Cloud can significantly reduce all of these complex issues or eliminate them entirely. When you combine cloud solutions with the SDLC you get something that we like to call the “Cloud Enabled Software Development Life Cycle.” This is a radical way to developing applications and it can be summarized with the following stages:
Stage 1: An IT resource, or software developer provisions the base application environment that will exist in production within Skytap Cloud. This is often done using pre-existing OS templates, Virtual Data Centers that were used in previous projects that are in their Skytap Library. The created environment includes all of the base servers and supporting components that the production system requires. Examples include application, web, and database servers. Also merged into this environment are templates that consist of load-balancers and other virtual appliances. The key is that these systems are built with the same IP Address and Domain information that they will have in production. A snapshot of the resulting environment can be created in Skytap, saved and shared with others in the organization.
Stage 2: The developer can deploy and or even develop their application code in this environment directly. Depending on the application, each developer may want to deploy their own environment from this base template. This can be done in seconds within the Skytap Cloud, and without any assistance from IT.
Stage 3: Once the application is ready to be tested, the lead developer can take a new snapshot of the environment and share that with a project in which the various test teams have access.
Stage 4: Each test team, ie. functional, load/performance, user acceptance, and integration testing deploys their own copies of the environment and do their work in parallel. They no longer have to go through the headache of building separate environments from the ground up. Furthermore, each environment is identical to what it would look like in production, so they don’t have to worry about defects that exist because of environmental differences.
Stage 5: Once the application is fully tested and ready to be deployed into staging and/or production, the user’s Skytap Administrator can export each of the virtual machines from Skytap, and deploy them to their own production environment. Most customers leveraging the Skytap Cloud in this fashion have recognized increases in productivity from both Dev and QA Teams as well as cost savings up to 70% from not having to manage and maintain physical infrastructure.
The end result is a fantastic value proposition for doing development / test!
– Mike Neil, Director of Field Operations / Skytap