Transform Your SDLC with Parallel Development and Testing in

Transform Your SDLC with
Parallel Development and
Testing in Cloud Environments
WHITE PAPER
BROUGHT TO YOU BY SKYTAP
2
Transform Your SDLC with Parallel Development and Testing in Cloud Environments
Contents
Introduction
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
The Drift Between Dev & Test Environments
Constraints on Dev/Test Teams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Constraints in Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Implementing Parallel Dev & Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
Built for Complex Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Agile Dev/Test Collaboration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
IT/Ops Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Conclusion
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
About Skytap. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
© 2015, Skytap, Inc. All rights reserved.
3
Transform Your SDLC with Parallel Development and Testing in Cloud Environments
Introduction
Enterprise development and test teams continuously strive to deliver better software faster in order
to become more responsive to evolving business demands and users’ needs. But bottlenecks and
constraints throughout the software development lifecycle (SDLC) inevitably lead to a decrease in
throughput that slows down innovation. Agile and efficient development and testing can only occur
when dev/test teams have on-demand access to complex environments that enable them to work
efficiently without worrying about system dependency or conflicts over lab provisioning.
When you have dependencies on advanced business applications, integration middleware, disparate
infrastructure and legacy adapters, the amount of “drift” increases between environments, and they
become fragile. Changes made by your own development and integration teams can break the
environment, as well as changes made by any party to your configuration, whether it is a patch from
your load balancing solution or a logic update introduced by the support team of your service bus. The
ability to implement parallel development and testing allows the enterprise to disrupt the SDLC and
avoid contention while enabling continuous delivery of high-quality software.
© 2015, Skytap, Inc. All rights reserved.
4
Transform Your SDLC with Parallel Development and Testing in Cloud Environments
The Drift Between Dev & Test Environments
Large enterprises typically confront a drift between critical development and test environments. From
development to QA to user acceptance testing (UAT) to pre-production, monolithic environments are
created but only one becomes the gold standard, or at least the “best-known” option, for the enterprise.
The other environments are therefore always broken, so those teams clamor over the existing bestknown environment. The departments involved—and perhaps even technology vendors and integration
partners—try to obtain their own versions of that best-known environment, creating an enormous amount
of contention and delay as teams line up for access.
QA
[Lab no longer
resembles
production]
≠
UAT1 (OK)
≠
Pre-Production
[DOWN]
≠
Production
Drift between
environments
Integration
team
Dev/QA teams
UAT Partner
Vendor software
patch disrupts lab
Testing in
production?
Performance
team
Drift between departmental use of various environments inevitably leads to broken environments throughout the SDLC.
Because of this drift between environments, departments are often working on software builds that
have changed so much they no longer closely resemble the production version. This legacy approach
restricts the agile model of conducting early testing, and it makes it difficult for QA to work in synch with
development teams. Teams aren’t reproducing defects at high speed, and many of the defects still find their
ways into production code.
Meanwhile, the enterprise has paid great costs to build multiple environments, or paid managed services
vendors to run them, but has received little benefits from those broken labs. Even the best-known
environment may not be stable, and the organization may not even be certain if it is valid anymore. And
every time a vendor makes a software update or some new component is added, the enterprise runs the
risk of it negatively impacting that best-known environment.
© 2015, Skytap, Inc. All rights reserved.
5
Transform Your SDLC with Parallel Development and Testing in Cloud Environments
Constraints on Dev/Test Teams
Today’s complex enterprise apps are always in flight. There are many moving parts, they are built and tested
by increasingly distributed teams. Companies want software delivered faster, so they often split developers
into smaller agile teams, so they can work in parallel. But parallel development doesn’t happen because
distributed teams come into contention for shared lab environments. Interdependencies force teams to
wait on one another in the old waterfall development mode. When teams do finally get lab infrastructure
access, they don’t want to let it go. This results in IT sprawl, which clogs the SDLC with more costly system
inventory. Sprawl of these obsolete systems is so bad that the average medium-to-large enterprise invests
$12M in pre-production lab infrastructure alone, yet 62-66% of development and test work is still routinely
delayed due to lack of ready environments, according to a recent study.1
Testers need to identify and report defects to developers, including the context of those defects.
Developers frequently end up trying to reproduce a defect in an environment that doesn’t match,
which creates unnecessary rework. Test environments are not always similar enough to the production
environment, often leading teams to skip tests and make assumptions about real-world conditions. This
collectively results in problems making it all the way into UAT or production before being found.
“Agile” Developers
Test & Retest
2-8 Week Provisioning Per Environment
Servers & VMS
Constraints on Dev/Test teams
often lead to slow provisioning,
unacceptable defect levels, and
late delivery of enterprise apps.
Support
Late Delivery
IT
Production
Ops
Any component that is not ready or missing from the dev/test environment becomes a constraint, the
narrowest part of your software pipeline that holds your projects back. The end result of this complex
process is that projects miss deadlines and go over budget, and software defects often make it into
production.
“Virtual and Cloud-based Labs” study, 2014, voke, inc.
1
© 2015, Skytap, Inc. All rights reserved.
6
Transform Your SDLC with Parallel Development and Testing in Cloud Environments
Constraints in Environments
To get a better understanding what causes constraints, it’s helpful to review the lifecycle of a typical
environment. When an environment is needed, the first step is to create a service request. Approvals often
take several days to negotiate before IT Operations can move forward. Once IT Ops has approval, they
provision the systems per the specs in the service request. Depending on priorities, this process can take
several weeks or more to complete.
Release back to IT:
50&+ VM sprawl
Developer testing
(Push defects downstream)
QA – 40% of defects
rejected by Development
Developer – 20% of time
spent reproducing defects
Service request created
Infrastructure provisioning
ENVIRONMENT
LIFECYCLE
Weeks to provision
Environment configuration
Environment sharing
Days to configure
30-50% QA time
QA test run
Provisioning an environment in a traditional SDLC is a lengthy and time-consuming process.
Once systems are provisioned, environment configuration starts. This includes installing all the libraries,
permissions, middleware, databases, and software the application depends on. Data will also be loaded into
the environment to support testing. At this point the QA team is ready to execute their first test run. The
first half of this wheel is known as “Time-to-Test”, or the lead time before any actual testing work begins.
After each test run, the QA team must reconfigure the environment and reload the data to prepare it for
the next test run. This consumes a large percentage of the QA team’s time. When they run their test plan,
they inevitably find defects. Unfortunately, that QA environment is in-use and cannot be shared with
the developer. So the defect is documented and sent to development to triage and repair the defect
themselves. But developers often fail to reproduce defects. These defects are often then closed, which
means they will likely reappear later, perhaps even in production.
When testing is complete, the environment should be shut down and returned. However, since time-totest is so long, teams never want to return environments, creating costly VM sprawl. It’s common to find
that 50% or more of the IT capacity for any given enterprise is dedicated to development and test, yet on
average it remains idle 90% of the time.
© 2015, Skytap, Inc. All rights reserved.
7
Transform Your SDLC with Parallel Development and Testing in Cloud Environments
Implementing Parallel Dev & Test
Some companies see each environment near performance or production as a very large hardware or
managed services investment. So much so that they try to protect the best-known environment against
being suspended or shut down because it would lose its context upon being restarted. This is exactly where
Skytap specializes.
We build these cloud environments to be rapidly suspended, copied, shared globally across dev and test
teams, and restarted according to the exact specifications required for continuous delivery. All your teams
and partners can use Skytap Environments-as-a-Service on demand—without contention—so you can
implement parallel development and testing to more rapidly and efficiently deliver better software.
Web
Client
Mobile
Admin
Dev
REST
API
CMD
Line
Self-Service Lab Access
Save & Reproduce Defects
Copy/Share Environments
ALM/CI
Tools
Access Controls
Manage Environments
Utilization/Quotas
Test
IT/Ops
ENVIRONMENTS-AS-A-SERVICE
Environment
configuration
SKYTAP
CLOUD IaaS
Project
templates
Network/IP &
Security settings
Build & Deploy
automation
SOFTLAYER
CLOUD IaaS
Skytap offers the world’s most advanced solution for delivering software development and test environments on cloud infrastructure.
Our patented Environments-as-a-Service solution was purpose-built to allow enterprise dev and test
teams self-service access to environments that mirror production so they can work in parallel, test earlier,
QA efficiently. Skytap
UAT1
(OK)
Pre-Production
and collaborate
automates
the provisioning,
copying, sharing, and tear down of these
[DOWN]
complex environment configurations in seconds or minutes, not days or weeks.
Skytap also provides IT Ops full visibility and control over cloud resources, and supports API and RESTbased service calls and build commands, with integration to leading continuous integration (CI) solutions
for automated deployment. You can run on Skytap’s own global cloud infrastructure, as well as on leading
cloud infrastructure such as SoftLayer. Skytap removes constraints on dev/test teams and environmental
constraints by allowing the enterprise to create the “Golden Template” of the best-known lab environment
by mirroring the production environment or starting with an infrastructure recipe or pattern. Then any
development or QA team can access exact copies of the best-known environment instantly via self-service
provisioning. This enables powerful new levels of automation throughout the SDLC.
© 2015, Skytap, Inc. All rights reserved.
8
Transform Your SDLC with Parallel Development and Testing in Cloud Environments
QA (OK)
=
UAT (OK)
=
Pre-Prod. [OK]
=
Production
Self-Service Provisioning
Dev/QA Teams
UAT Partner
Define
“Golden Template”
Performance Team
The enterprise can define a Golden Template that enables parallel development and testing in a common environment.
Multiple teams can now work on the same QA environments in parallel. They can work on components
and then update the source code, publishing through application lifecycle management (ALM) and CI
frameworks and synchronizing that Golden Template environment with the latest changes over to the other
teams. The enterprise therefore disrupts the SDLC and benefits from unconstrained, instant copies of ideal
state environments.
Integration
Sys. Test (OK)
Dev2 (OK)
UAT2 (OK)
QA (OK)
=
UAT (OK)
Support (OK)
Training (OK)
Pre-Prod. 2 (OK)
=
Pre-Prod. [OK]
=
Production
Self-Service Provisioning
Dev/QA Teams
UAT Partner
Performance Team
Golden Template
The Golden Template allows the enterprise to provide instant copies of ideal state environments to multiple teams.
Built for Complex Environments
Skytap was built for the complex environments found in today’s enterprises. It supports not only VM
hardware images, but also detailed configurations of multiple servers, appliances, network and domain
settings, data and virtual assets that can span multiple cloud instances. Skytap also images other aspects of
the environment, including network adaptors, granular security and access controls, VPNs, and simulation
of a specific domain or IP address. These environments can be saved, shared with other teams, and reset in
seconds.
© 2015, Skytap, Inc. All rights reserved.
9
Transform Your SDLC with Parallel Development and Testing in Cloud Environments
ICNR-1
Service
Registry
ICNR-2
Indexing
Service
Active
Directory
Services
Core Client
Applications1
E-Store
Application
IT Admin
Applications
Mainframe
Connection
(IPSec VPN)
Payment
Services
[SV]
Consumer
Data Store
[SV]
Business
Management
Integration
Workshop
Data
Warehouse
Inter-Configuration Network Routing technology allows the enterprise to link development processes between environments.
You can even can link together inter-environment development processes via our Inter-Configuration
Network Routing (ICNR) technology. This is critical when you are developing for today’s highly distributed,
service-based applications that may be developed and released on varying schedules by many different
business units and partners.
Agile Dev/Test Collaboration
Developers and QA professionals can streamline workflows. When a testing team finds an issue, they
no longer fill out a text description of the bug. Now with one click, they capture the whole application
environment in the exact state it was in at the time of the defect, including all needed systems alongside
the running test, performance and test data. This environment can then be passed to development, where
analysis can get started. In contrast, developers today spend 20% or more of their time just trying to
recreate the bugs reported by QA.
With Skytap, developers can see exactly what the reported issue was in the tester’s environment, and focus
their efforts on fixing and improving the app—not on the rework of setting up the scenario. The developers
can therefore fix the errors and instantly re-run the test suite with fresh data. This verification re-run could
have otherwise taken days of setup time in conventional lab environments. QA validates the changes
passed, and the new version replaces the old in both environments. This approach results in far fewer bugs
escaping into later phases of the SDLC.
© 2015, Skytap, Inc. All rights reserved.
10 Transform Your SDLC with Parallel Development and Testing in Cloud Environments
ICNR-1
Service
Registry
ICNR-2
Indexing
Service
Active
Directory
Services
Core Client
Applications1
Austin, TX
USA
E-Store
Application
IT Admin
Applications
Mainframe
Connection
(IPSec VPN)
Payment
Services
[SV]
Business
Management
Integration
Workshop
Consumer
Data Store
[SV]
Data
Warehouse
IT Admin
Applications
Business
Management
ICNR-1
Service
Registry
ICNR-2
Indexing
Service
Active
Directory
Services
Core Client
Applications1
Bangalore,
India
E-Store
Application
Mainframe
Connection
(IPSec VPN)
Payment
Services
[SV]
Integration
Workshop
Consumer
Data Store
[SV]
Data
Warehouse
IT Admin
Applications
Business
Management
ICNR-1
Service
Registry
ICNR-2
Indexing
Service
Active
Directory
Services
Core Client
Applications1
Brussels,
Belgium
E-Store
Application
Mainframe
Connection
(IPSec VPN)
Payment
Services
[SV]
Consumer
Data Store
[SV]
Integration
Workshop
Data
Warehouse
Skytap infrastructure enables global implementations for parallel development and testing across cloud regions.
Skytap enables agile collaboration, so highly distributed teams can develop and test in parallel, copy and
share environments in their exact state to ensure quality at every project phase, and avoid days or weeks
of setup time. Since every development and test team can automatically provision a complete copy of lab
environments without conflict, they can test earlier, test more often, and release better software, faster. Since
Skytap operates on high-performance, globally distributed cloud infrastructure, whole environments can be
quickly moved across regions to reduce network latency and enable “follow-the-sun” software delivery goals.
IT/Ops Control
Skytap increases IT control, allowing automated self-service provisioning by dev and test teams while still
maintaining operational visibility for usage quotas, access policies, and efficient use of lab resources. Skytap
gives Ops teams more control by providing solid governance and visibility on top of these environments
while reducing infrastructure and maintenance costs. Operations gets a dashboard to monitor the usage and
quota levels of all Skytap resources. IT admins can set access policies and security levels while giving dev and
test teams the instant gratification of self-service access to cloud labs and templates. When a team no longer
needs lab resources, Skytap automates the suspension of cloud environments to conserve capacity for other
teams.
© 2015, Skytap, Inc. All rights reserved.
11 Transform Your SDLC with Parallel Development and Testing in Cloud Environments
Conclusion
The ability to develop and test in parallel allows the enterprise to resolve contention and transform
the SDLC. With Skytap, you can clone that best-case environment, or better yet, a Golden Template
environment that closely mirrors your approved production-style standards. New Skytap environments
can be defined by coded recipes or start as templates in the Skytap app. There is none of the inaccuracy
and labor inherent in manually configuring these assets. It all starts with QA and development teams
working in parallel and passing Skytap environments back and forth, collaborating on defects to
implement “shift left” testing to prevent errors from popping up later.
Then as teams proceed through UAT and pre-production testing, the enterprise needs realistic cloud
environments for each of those phases to roll forward smoothly, as well as the ability to merge any
changes back into the repository. Even when vendor partners make updates and patches to their
systems, you can validate their changes in safe environments that won’t impact other teams—or
production. And after production, you want to take that feedback from the last release into your
scripted recipe for the next Golden State template, whether that turns out to be a mirrored environment
or an environment built from an updated recipe.
Skytap has purpose-built our cloud environments to be rapidly suspended, copied, shared globally
across dev and test teams, and restarted according to the exact specifications required for continuous
delivery. All of your teams and partners can use compartmentalized Skytap labs on-demand, without
contention, so you can accelerate the delivery of higher-quality software. By turning to Environmentsas-a-Service to transform the SDLC and implement parallel development and testing, the enterprise can
reduce environment setup times from days or weeks to minutes, and reproduce and repair software
defects much more efficiently.
Parallel development and testing enables worldwide collaboration, since each team can instantly copy,
share, and access their own secured instance of environments so the enterprise can benefit from global
development and testing. Parallel development and testing also drives innovation, since developers
can leverage the saved time and pull new ideas into reality much faster when they have on-demand
access to relevant environments that are safe for developing new functionality without risk to critical
production environments.
© 2015, Skytap, Inc. All rights reserved.
12 Transform Your SDLC with Parallel Development and Testing in Cloud Environments
About Skytap
Skytap provides Environments-as-a-Service (EaaS) to transform the software development lifecycle
and help customers deliver better software, faster. Today’s enterprise is challenged to continuously
deliver new customer-facing applications, while overcoming increasing change and complexity in IT
infrastructures. Our customers use Skytap to manage, share, deploy, and decommission on-demand
environments that contain everything needed to collaborate at each phase of the SDLC, without
unnecessary costs and project delays due to manual configuration and dependencies. Enterprise IT
organizations maintain full visibility and cost control, while allowing dev and test teams to self-provision
labs and share complex environments with ease, for a lasting boost to agile DevOps initiatives. To try
Skytap and learn more, visit www.skytap.com.
Skytap, Inc.
719 2nd Ave, Suite 300
Seattle, WA 98104 USA
Toll Free: +1-888-SKY-TAP8 (1-888-759-8278)
Web: www.skytap.com
© 2015, Skytap, Inc. All rights reserved.