Skytap Automation Pack for Microsoft Visual Studio Team Foundation Server WHITE PAPER BROUGHT TO YOU BY SKYTAP 2 Skytap Automation Pack for Microsoft Visual Studio Team Foundation Server Contents Introduction ...........................................................................................................3 The Build-Deploy-Test Scenario ..................................................................................4 Why TFS Integration with Skytap? ...............................................................................5 Specific Needs in BDT Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Appendix: Skytap Automation Pack in Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 About Skytap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 ©Skytap, Inc. All rights reserved. 3 Skytap Automation Pack for Microsoft Visual Studio Team Foundation Server Introduction Today, many Application Lifecycle Management (ALM) products are being upgraded—and even designed from scratch—to support the Agile development and delivery model. One popular tool is Microsoft Team Foundation Server (MS-TFS). Along with Visual Studio, MS-TFS provides the core set of tools and processes for developing a variety of applications across a number of development platforms offered by Microsoft. These development platforms range from the simplest .NET application to the most complex enterprise applications using platforms like SharePoint and SQL Server. Skytap Automation Pack for Visual Studio Team Foundation Server (‘the Automation Pack’) is an innovative product that provides the integration between VS-TFS and Skytap. This integration enables development and test teams to use the same skills, workflows, and processes they already use with MS-TFS, while reaping the benefits that Skytap provides—provisioning complex environments, fast on-demand provisioning of dynamic workloads, and support for hybrid cloud architectures. This paper covers: » The range of scenarios supported by the Automation Pack » The benefits of the Automation Pack » The Automation Pack at work for a sample application workload » Tips on how to enable the Automation Pack for your own application workload ©Skytap, Inc. All rights reserved. 4 Skytap Automation Pack for Microsoft Visual Studio Team Foundation Server The Build-Deploy-Test Scenario The Automation Pack is designed to address the classic Build-Deploy-Test (BDT) scenario that is familiar to teams working with Visual Studio and MS-TFS. BDT is the workflow engine that Microsoft ships with Team Foundation Server, and enables a developer or tester to define: » How application code is built » How application components are deployed » The target test environments » The automated tests to be run » The results and other diagnostic data to be collected Once defined, this BDT can be used over and over again. For example, the BDT workflow is used in the following common scenarios: The developer scenario The developer checks in code to the source repository on MS-TFS. The code is built automatically, and the specified unit tests are run automatically. Based on the results, the developer knows whether the check-in was successful or not. The developer can define a BDT to run through this entire process automatically, and the workflow usually only takes a few minutes. The tester scenario The tester is getting ready to do a functional test pass for an upcoming release. Having a mix of automated and manual tests, the tester intends to fire off the automated tests and forget about them while working on manual tests in parallel. The tester can define one or more BDTs to run through the various automated tests and review the results at the end. A test pass will usually take a few hours, depending on the number of tests being run. ©Skytap, Inc. All rights reserved. 5 Skytap Automation Pack for Microsoft Visual Studio Team Foundation Server Why TFS Integration with Skytap? Dynamic workloads, like software development and testing, often present a range of challenges that make them difficult to manage and maintain in an efficient, cost-effective fashion. Common characteristics of dynamic workloads—fluctuating demand, frequent change requests, and the need for secure collaboration with team members, partners, or customers—can result in unpredictable capacity needs and high provisioning and administration costs. With these challenges in mind, Skytap was designed and developed to quickly and easily move dynamic workloads to the cloud. Skytap is a cloud-based service with a simple setup. A development team can sign up and get started within minutes. The Automation Pack ties the unique capabilities of Skytap with the BDT workflows in VS-TFS. It allows teams to easily create self-contained environments, called configurations, for applications. Configurations can be as simple as one machine for build or unit testing, or as complicated as multiple machines with different components connected together with complex networking topology for full-scale functional testing. Skytap offers hundreds of base configurations that can be used to create environments, or users can import virtual machines. The Automation Pack leverages the capabilities of Skytap and allows the creation of TFS-ready test environments in Skytap using Microsoft Test Manager (Fig. 1). ©Skytap, Inc. All rights reserved. 6 Skytap Automation Pack for Microsoft Visual Studio Team Foundation Server Typical BDT Scenarios Using Skytap Automation Pack for Microsoft Visual Studio TFS SKYTAP ENVIRONMENTS Fig. 1: Existing on-premise Visual Studio developer/tester desktops and TFS deployments automatically establish a secure VPN connection and create dynamic testing environments in Skytap. ©Skytap, Inc. All rights reserved. 7 Skytap Automation Pack for Microsoft Visual Studio Team Foundation Server Once ‘golden’ environments are created, they can be saved off as templates, with as many copies of the environment as required. All environments created from a template start in exactly the same fresh state for testing. The environments can be created sequentially or in parallel. The Automation Pack uses this capability to create and run new environments, as defined in a BDT definition, on demand. This ensures that tests are run on clean environments every time, without having to manually clean up the environment after each test. Skytap allows easy administration of the environments, which ensures control over development budgets. Once a team is finished with a given test environment it can be deleted or saved—frozen in time—for further investigation. The Automation Pack ensures that only the required resources are running, streamlining resources and enabling more BDT runs. Teams can also save the resulting environment from a failed BDT run so that a developer can instantiate the exact state again and debug the failure. The speed with which Skytap can perform all of these operations provides additional value. Environments can be created, run, suspended, stopped, saved, and deleted in under a minute. Faster BDT runs means faster testing, and ultimately, faster delivery times for applications. ©Skytap, Inc. All rights reserved. 8 Skytap Automation Pack for Microsoft Visual Studio Team Foundation Server Specific Needs in BDT Testing By using BDT workflows, especially in the scenarios mentioned above, engineering teams can accelerate development and testing of their product. However, many teams may have additional needs that out-of-the-box BDT workflows do not provide. The Automation Pack can address these needs. Some of these scenarios include: Easy setup and management Though development teams have sophisticated requirements, many are not inclined to manage the underlying infrastructure platform that powers their development and testing needs. In the spirit of agility, the Automation Pack provides these environments when teams require them. There’s no complex and lengthy setup process and no need to continuously manage and operate the infrastructure. Scale with the growth of the team and the product Any product starts small, both in terms of code base and in the number of developers and testers working on the product. As the product grows, so does its number of components and the number of engineers working on it. Large teams pose enormous challenges to application development by putting increased demand on the infrastructure platform that powers the key workflows of builds and testing. With the Automation Pack, the infrastructure platform is flexible enough to scale with the growing needs of the team, and it does so without increasing management overhead. ©Skytap, Inc. All rights reserved. 9 Skytap Automation Pack for Microsoft Visual Studio Team Foundation Server Support for complexity The test environments in different BDTs can vary greatly. While a development unit test may just require a one-box environment, a functional test may require an environment that represents the true architecture of a complex product (e.g., an N-tier application). Additionally, a validation testing environment may need to represent the true scale and complexity of the production environment. The Automation Pack provides templates for any kind of environment—large or small, simple or complex. Fresh test environments on demand Running tests on a known, good configuration is the holy grail of testing. The Automation Pack supplies the underlying platform that allows a team to spin up environments from a known state every time. Parallelism Different teams may be working in parallel on separate components of a product. Each team requires a full test environment to perform functional and integration testing, and they need to be working on the latest golden version of the components delivered by other teams. This requires the infrastructure to support running multiple, identical test environments based on a common golden version of the bits. The Automation Pack lets each team apply changes to their components and perform their own tests. This allows teams to work in parallel rather than waiting for other teams to finish using the test environment. Save state for debugging failures As all development teams know, there will always be test failures. Not only do developers and testers need the ‘fire-and-forget’ means to run automated tests, they also need a way to access test environments, debug, and diagnose failures. The Automation Pack platform is smart enough to run automated tests and save the state in cases of failure to enable debugging after the fact. ©Skytap, Inc. All rights reserved. 10 Skytap Automation Pack for Microsoft Visual Studio Team Foundation Server Conclusion The Skytap Automation Pack for Microsoft Visual Studio Team Foundation Server enables teams using Visual Studio and TFS on-premise to seamlessly use Skytap for automated BDT workflows. Individual developers and testers benefit from the flexibility, scale, speed, and collaboration capabilities that Skytap provides—increasing productivity and eliminating potential workflow bottlenecks and delays. Team managers and business owners benefit from Agile teams that can deliver software products faster, increasing the speed at which an organization can innovate and generate revenue. Overall, the Skytap Automation Pack provides the scale and elasticity of cloud infrastructure coupled with the preferred tools and processes currently used by development and test teams. ©Skytap, Inc. All rights reserved. 11 Skytap Automation Pack for Microsoft Visual Studio Team Foundation Server Appendix: Skytap Automation Pack in Action This section illustrates the Automation Pack in action. Screenshots include a view of a developer’s desktop while starting a BDT run and the resulting environments in Skytap. The Automation Pack itself is working behind the scenes, which allows an engineering team to continue using familiar processes and tools in Visual Studio. The assumption, for the purpose of this illustration, is that the TFS server is running on-premise. An onpremise environment is connected to Skytap using point-to-point VPN connectivity that can easily be set up using the Skytap hybrid cloud. Setting up the golden test environments in Skytap using Microsoft Test Manager The test environment for the application has been created in Skytap and has been associated with TFS using Microsoft Test Manager (Fig. 2). Fig. 2 ©Skytap, Inc. All rights reserved. 12 Skytap Automation Pack for Microsoft Visual Studio Team Foundation Server 1. Create the BDT definition A developer or tester can create a BDT definition based on the template provided as part of the Automation Pack. This template preserves the same UI and workflow as existing BDT templates. It also allows the user to enter the Skytap-specific information needed for the integration (Fig. 3). Fig. 3 ©Skytap, Inc. All rights reserved. 13 Skytap Automation Pack for Microsoft Visual Studio Team Foundation Server 2. Run the BDT Once the BDT is defined, it can be run any number of times without the need to worry about available infrastructure. It can be run by any number of users who are working on the same component and want to leverage the BDT. In the figure below, a build is being queued up based on the BDT (Fig. 4). Fig. 4 ©Skytap, Inc. All rights reserved. 14 Skytap Automation Pack for Microsoft Visual Studio Team Foundation Server The build logs show the Automation Pack dynamically creating the test environment in Skytap and using AutoNetworking capabilities that connect back to a TFS over a VPN connection. All of this can be accomplished within a minute (Fig. 5). Fig. 5 As a result of BDT, the test environment is dynamically created in Skytap (Fig. 6). Fig. 6 ©Skytap, Inc. All rights reserved. 15 Skytap Automation Pack for Microsoft Visual Studio Team Foundation Server The deployment of the application and tests taking place can be seen in Figure 7 below. When the tests are complete, the test configuration is automatically deleted. If there are failures, the test can be saved as a template for further investigation. Fig. 7 The test results are available by clicking a link in the BDT logs (Fig. 8). Fig. 8 ©Skytap, Inc. All rights reserved. 16 Skytap Automation Pack for Microsoft Visual Studio Team Foundation Server About Skytap Skytap provides Environments-as-a-Service to the enterprise. Our solution removes the inefficiencies and constraints that companies have within their software development and test lifecycles. As a result, our customers release better software faster. Today’s enterprise is challenged to continuously deliver new customer-facing applications, while overcoming increasing change and complexity in their IT infrastructures. Our customers use Skytap to manage, import, deploy and decommission on-demand environments that contain everything needed to accelerate the software lifecycle, 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 copy and share complex environments across global cloud regions with ease for a lasting boost in agility. Customers can import existing virtualized applications or build new applications in the cloud. Skytap can be easily accessed through any modern web browser, REST-based API, Command Line Interface (CLI), or ALM tool (Jenkins, Visual Studio TFS, etc.). Skytap customers have a choice of infrastructure. Customers can run complex computing environments on Skytap’s native ESX-based infrastructure, or leverage our services atop leading cloud infrastructures such as AWS and Softlayer. 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 ©Skytap, Inc. All rights reserved.