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.