Sei sulla pagina 1di 7

Services and Network Virtualization:

A Joint Solution Brief from Shunra and HP Software

A Shunra Software Solution Brief

Executive Introduction
Modern enterprise applications have reached an historic level of complexity. Today, applications are a composite of distributed components, often running in a virtualized or cloud server infrastructure. The rise and predominance of mobile apps, as well as public cloud hosting, has taken control of the network and third-party services out of the hands of IT, development and testers. Last year, customers (end users) were satisfied with any working mobile access to critical business service or consumer information; this year, any working access is not enough; this year, all critical and required features are expected to be available on an iPhone or other smartphone and be accessible faster than from a desktop. The preference for mobile access has created greater pressure for agile development, with updated and improved product releases often on a 30-day or faster cycle. Every layer of this complexity represents a potential point of failure. To combat this potential, we must adapt our methods to reduce the risk of a poor user experience because the true cost of failure is more costly than ever. A poor user experience is a lost customer. The design, test, monitor, and break/fix cycle we have lived with for 20 years will not work in todays modern application environment where 80% of the total cost of ownership of an application is directly attributed to finding and fixing problems post-deployment. More accurate and reliable testing could reduce this cost by one-third or more. However, achieving better testing is a challenge the distributed nature of composite applications and the dynamic conditions of mobile, Cloud and broadband networks must be effectively and precisely incorporated into the test environment, otherwise tests do not reflect realworld results. required to provide accurate, timely and on occasion secure transactions are, in reality, complex. From the customers standpoint, the process looks rather simple. Consider this example of a budding photographer in San Francisco who is in the market for a new camera: 1. The photographer checks out a retail site on his mobile device. He thinks that a certain model will be appropriate. 2. Before making a decision, he consults with friends via social network apps, checks product reviews and also looks at three competitors catalogues again, all from his mobile device. 3. He then decides to purchase the camera, and returns to the site that has the second-best price but was highly recommend by a colleague at work. 4. To complete the purchase he enters his online payment information. 5. When the payment is processed and approved, he receives a notification and monitors the shipping services tracking system to see when his new camera will be delivered. Lets explore this transaction in more detail. The customer is on the west coast of the US; the online catalogue is created and maintained in England; and the camera is manufactured in China. Purchase of the camera requires an online payment from the US payment processor. The product is shipped from China but the tracking system is located in the US. In each of these systems, many sub-components, or resources, are hosted in distributed environments, so this simple transaction in effect circles the globe more than once. Even the most common online transactions may integrate multiple global components in order to deliver on a single business process, as shown in Figure 1.

HP and Shunra offer a solution that recreates services, load, and network conditions in your testing lab. The integrated products and methodology virtualize the conditions of the real-world application and user environment so that you can reliably know how an end user will experience an application before it is deployed.
This solution brief will introduce you to essential capabilities for virtualizing conditions in the test lab and provide you with a methodology that has been demonstrated to improve testing accuracy and reliability, reduce production incidents by up to 60%, and deliver a return on investment with the very first avoided remediation incident.

A Day in the Life: A Single Online Purchase Transaction


For the end user, a mobile or online purchase may appear straightforward. However, the resources and infrastructure
Figure 1 Even the simplest transaction may span the globe.

2012 Shunra Software Ltd. All rights reserved. Shunra is a registered trademark of Shunra Software.

Pg. 2

A Shunra Software Solution Brief

The process is supported by a complex infrastructure, requiring multiple steps and turns in order to share and transfer data. In the case of third party resources being accessed, even those resources may rely on equally distributed systems. For the business provider, this simple end user transaction is not as simple as it would seem. While a customer should be blissfully unaware of the multitude of subtransactions that are occurring behind the scene, or how much time each subtransaction adds to the total purchase process, performance information for each subtransaction is crucial to those responsible for any component in the process. Shaving even a few milliseconds at each stage can significantly impact overall transaction time, marking the crucial difference between a successful purchase and site abandonment. The distributed nature of composite applications and the global networks required to support the applications and end users makes ensuring performance a critical challenge that businesses must overcome. Poor performance, especially on mobile devices, has been clearly demonstrated to increase abandonment, causing both revenue loss and brand damage. Therefore, every stakeholder in the process or transaction must be aware of their contribution to application and infrastructure performance (ultimately to end user experience) and adherence to established service level objectives (SLOs). These stakeholders include application developers and testers, CDN suppliers, mobile and web service providers, online retailers, etc. As end users continue to demand fast, reliable, ubiquitous access to information, and as competition between businesses increases, organizations must get applications right the first time; there is no second chance to make a first impression and secure customer loyalty.

flexible and allow for faster responses to business needs without significantly raising costs, but there is an additional requirement that quality be built into each development iteration. To further speed development processes and introduce more efficiency into development resources, applications are often broken up into individual components, or smaller units of functionality, or services. Services are an essential part of most business applications. Services can be applications, systems or components that expose their functionality with a remotely accessible interface in order to allow seamless integration with other applications and systems. Web services are typically referred to as Simple Object Access Protocol (SOAP) or REpresentational State Transfer (REST), and are usually accessible over HTTP/HTTPS. These services, which can be re-used by different project teams and accessed by different composite applications, may be developed internally or accessed from third parties. The availability of reusable and pre-built services saves considerable time and helps development teams remain on budget. As with Agile processes, though, there is a quality or performance consideration that must be taken into account as services are subject to the same network constraints as end users bandwidth, latency, jitter and packet loss. The additive effect of even a simple network delay between services can be devastating to end user experience.

Service Virtualization
The distributed nature of composite applications poses significant risk to development and testing teams. If there are dependencies on services that are not available when developers and testers require access, the development and delivery process can in effect slow down or, worse, be pursued in an incomplete and unreliable manner. Testing without application dependencies is an imprecise approach that can lead to costly failures in production, but the challenges of bringing limited or unavailable services into the test environment can be just as daunting. However, testing an application without consideration for dependent services can lead to false positives regarding both functionality and performance. Waiting for periods of availability for all required services, or creating a test environment that relies on production-available services, will significantly increase costs and delay both the development and delivery of the application, putting project success at risk. One option is code stubbing but this is a manually-intensive process that provides little flexibility (without manual recoding) and is not a suitable alternative when considering the breadth of services that may be depended upon by a composite application and the need to test those services

Enhancing the Development & Testing Process


To maintain competitive advantage, enterprises must constantly find ways to accelerate their time to market, while remaining flexible enough to meet rapidly changing corporate and end user requirements. Organizations accomplish this by adopting Agile processes and by incorporating a service oriented architecture in their development projects. Agile development processes are designed to deliver frequent, working iterations of software, or specific software functions, by shortening feedback cycles and promoting just-in-time delivery of required functionality. With these shorter development cycles, code is continuously tested and integration errors are detected quickly. By incorporating parallel development processes, teams can continue development even if another feature or dependency is progressing at a slower pace. Agile processes are more

2012 Shunra Software Ltd. All rights reserved. Shunra is a registered trademark of Shunra Software.

Pg. 3

A Shunra Software Solution Brief

under a multitude of conditions. To improve testing reliability and to account for dozens, and perhaps hundreds or more, services, organizations are adopting the best practice of service virtualization. Service virtualization eliminates the need to rebuild a redundant test environment, access production systems or recreate a proxy to mimic service behaviors. This is accomplished by enabling a script-less, spreadsheet-like definition of service behavior and a user interface that provides control of virtual service models from within functional testing tools. This simulated environment enables developers and testers to replace targeted production services with virtualized services that can be immediately accessed for functional and performance testing, even if the actual services are not available. Service virtualization also provides for the ability to simulate service behavior for testing specific use cases or troubleshooting problem areas.

along with the components and services that may need to be virtualized in order to accurately and reliably test an application.

HP Service Virtualization
HP Service Virtualization enables simulation models to be quickly created from service interface specifications, recorded from real or logged communication, loaded from static data sources, or reused from previous projects and models. HP Service Virtualization helps to isolate problems that are based on dependencies between services in composite applications. This can significantly reduce delays and help manage the costs and complexity of composite application development and testing. Application teams can then shift left and find defects related to dependencies on services earlier in the Software Development Life Cycle (SDLC). This lowers costs and reduces testing times by detecting issues when they are easier, faster and less expensive to fix. In addition, QA teams are able to test a more complete product earlier in the cycle. HP Service Virtualization assists development teams to become truly agile by accelerating release cycles through parallel development and by introducing testing earlier in the cycle without the necessity of having the end system fully developed and ready. In addition, it enables functional and performance engineers to imitate negative behavior, scalability or breakdown of dependent systems. Engineers can then effectively provision testing environments and minimize usage of high-cost business critical infrastructure. HP Service Virtualization can also reduce infrastructure costs related to test environments, including hardware, software licenses, and maintenance. It allows reduction of third-party costs incurred by running repetitive functional and performance tests that access pay-per-use components. Figures 2 and 3 show a typical testing environment

Figure 2 Typical test environment BEFORE virtualization.

Figure 3 Typical test environment AFTER virtualization.

Network Virtualization
However, Service Virtualization alone does not address a key component affecting application behavior and end user experience. Network conditions such as latency, limited bandwidth, packet loss, and jitter, are all critical factors that must be taken into account when testing or validating application performance, especially when considering the multiple network connections required to support 3rd party services and external resources. Just as it is challenging and costly to bring real-world services into the test environment, the real-world networks affecting these services and the end user represent, at best, a daunting task to incorporate into a test environment isolated behind a firewall. The global mobile network, for example, is
Pg. 4

2012 Shunra Software Ltd. All rights reserved. Shunra is a registered trademark of Shunra Software.

A Shunra Software Solution Brief

a communication channel that is in a continual state of flux, with dynamic conditions dictated on a moment-by-moment basis according to carrier, connection type, connection strength, time of day, location and myriad other factors. In the absence of real-world conditions, testing will yield unreliable results as the effect of the network on the end user experience, as well as communication with external services, remains unaccounted for. As with services, virtualizing network conditions in the test lab is essential to creating a realistic environment for testing that yields accurate and reliable insight into application behavior. With the massive global uptake in mobile devices and the rise of cloud computing, the effect of the network has become even more pronounced since conditions across the last mile affect performance more than other factors, and mobile conditions in particular are intrinsically dynamic. Therefore, incorporating network virtualization is particularly crucial when any mobile or cloud component is part of the scenario.

Implementing Network Virtualization with Service Virtualization: A Real-World Example


In order to generate reliable tests on which business and technical decisions can be confidently made, the test lab must accurately represent the real-world conditions and dependencies available in the production environment. As weve discussed, it is neither practical nor cost-effective to acquire or replicate these elements only for the lab. Rather, network and service virtualization are employed, working in concert to ensure a precise, emulated environment is available for application testing and troubleshooting. HP Service Virtualization and Shunras Network Virtualization capabilities are pivotal to the enablement of a consistent and trustworthy test environment. HP Service Virtualization enables simulation of functional and response behavior of otherwise limited or unavailable application components. Testers can leverage Service Virtualization to emulate negative behavior or a breakdown of dependent systems and retest the application with various backend performance characteristics. With Shunra network virtualization capabilities, testers incorporate network factors into the lab environment and design tests with various network conditions such as high latency or those of a mobile user over 3G with a specific carrier. These impairments are applied to the network connections between the application, its virtualized services, and virtual users, creating a virtual network topology that emulates the production network. Performance analysis of the transactions with these impairments identifies which components of the application and infrastructure are sensitive to network factors. Development teams can then optimize application performance and determine the best deployment configuration. Returning to our first example of a shopping transaction, Figure 4 indicates the components of an end-to-end performance approach, incorporating load testing with network and service virtualization integration. This enables testing of an entire business process using varied performance characteristics, such as peak load with high network latency, or a mixed scenario with both mobile and landline users. Performance testers can then emulate a load testing scenario with real-world conditions for complex, composite applications, and test various limiting performance scenarios.

Shunra Network Virtualization


The first step required to implement network virtualization is to discover the real-world network conditions affecting end users and application services. Shunra NetworkCatcher unobtrusively captures production network constraints like bandwidth, latency, jitter and packet loss. Recorded interval statistics can then be re-played in the test environment in order to impair the test network. For example, virtualized network impairments, such as high jitter rate and limited available bandwidth, can be emulated in the test lab so that the effect of the network on transaction response time can be reliably and accurately measured. In addition to capturing real-world network conditions, Shunras network virtualization solutions include a Global Library of mobile and broadband network conditions. This library, built on millions of data points, provides typical, best and worst case conditions recorded from major cities around the world. With Shunras network virtualization technologies, custom impairments can be applied to determine the specific effect on application and network behavior in order to emulate worst case scenarios or to troubleshoot specific in-production problems. Shunras technology also provides the ability to execute tests, analyze results and remediate or optimize performance.

2012 Shunra Software Ltd. All rights reserved. Shunra is a registered trademark of Shunra Software.

Pg. 5

A Shunra Software Solution Brief

The network conditions, including mobile profiles, are defined by Shunra for HP Software which is integrated into the HP LoadRunner user interface. Once a simulation and performance model are defined, the test is run first with only the single local user, then with the remote user added, and finally with the mobile user. Test results are analyzed to determine bottlenecks and other performance issues. Figure 6 shows the incremental impact on response time as users were added to the test. As you can see, a slight increase in response time was experienced when the remote user (VUser) from San Francisco was added to the test. However, a marked increase resulted from adding just a single mobile user, nearly 2 additional seconds.

Figure 4 An end-to-end performance testing approach.

Drilling down into one specific segment of the transaction the shipping service we can illustrate precisely how network conditions impact load test results by looking at real test results. The HP LoadRunner screenshots in Figure 5 below show an integrated load, service virtualization and network virtualization test. HP LoadRunner is employed to identify the scalability of the transactions and how quickly they are processed.

Figure 6 The incremental impact on performance when additional users are added is clear.

Figure 5 Integrated load, service and network virtualization, within the HP LoadRunner interface.

The service level objectives, in this case, are provided by the shipper, and the web service definition required to recreate the virtual service are provided in the shippers documentation. The test is designed to determine the application servers response time to queries under typical, stress and edge conditions so that server performance can be adjusted. To recreate the distributed systems of the shipping service, virtualized services are defined inside the HP LoadRunner Controller GUI. Within the HP LoadRunner scenario, three virtual users (VUsers) are defined: a baseline VUser represents a single local user a remote VUser is created to signify a user who accesses the tracking system from San Francisco. an additional mobile VUser is defined with impaired network conditions that represent a weak mobile network condition.

As a result of this testing and analysis, testers recognized the need to test the effect of additional mobile users while acknowledging that even these results were sufficient enough to warrant improvements in the application response time.

Summary
IT environments today support hundreds of applications with dependencies on hundreds or more distributed services. This complexity and the required integration of dependencies and application resources is placing a burden on development and QA teams responsible for testing and validating application performance. Traditional methods of development and delivery are not effective in attaining high quality application performance in rapid time frames. Therefore, organizations have adopted Agile methods of developing software and instituted distributed infrastructure configurations. However, these systems can also complicate development, testing and IT by creating a requirement for new tools and processes that ensure quality and end user experience.
Pg. 6

2012 Shunra Software Ltd. All rights reserved. Shunra is a registered trademark of Shunra Software.

A Shunra Software Solution Brief

Leveraging integrated Network and Service Virtualization enables readily available real-world environments for developers and testers. The virtualized test environment encourages acceleration throughout the development cycle while delivering reliable insight into expected application behavior. The unavailability or high cost of services, systems and networks is no longer an excuse for inaccurate functional, load and performance test results. Service and Network Virtualization allow testing earlier and more often in the application lifecycle when it is easier and less expensive to fix defects. Issues can be discovered and corrected well before a product is released, helping organizations to protect revenue, productivity and brand investments. Shunra Network Virtualization and HP Service Virtualization provide the only complete and integrated virtualization solution for end-to-end performance testing of distributed applications on the market. This capability ensures that extremely complex distributed systems achieve desired levels of quality and performance by being able to test user experience and application performance across all levels of application architecture and against real-world network conditions. By employing Shunra Network Virtualization and HP Service Virtualization technologies early and often in the testing and development cycle: Testing processes are shifted left in the development cycle, enabling issues to be detected and remediated when it is most cost-effective to do so; Application performance and adherence to service level objectives is validated before deployment; Agile development processes and time-to-market are faster, as more accurate and reliable parallel development occurs; Testing environment costs are significantly reduced due to the availability of virtualized services, systems and networks.

For more information on HP Service Virtualization, visit www.hp.com/go/sv. For more information on Shunra Network Virtualization, visit www.shunra.com/nv.

Copyright 2012. Shunra Software. All rights reserved. The information contained herein is subject to change without notice. The only warranties for products and services are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed as constituting an additional warranty. Shunra shall not be liable for technical or editorial errors or omissions contained herein. Shunra, the Shunra logo and Shunra product names are trademarks or registered trademarks of Shunra Software. HP, the HP logo and HP product names are registered trademarks of HP and/or its affiliates. All other trademarks are the property of their respective owners.

Application Performance Engineering


Call your Local ofce TODAY to nd out more!
North America, Headquarters 1800 J.F. Kennedy Blvd. Ste 601 Philadelphia, PA USA Tel: 215 564 4046 Toll Free: 1 877 474 8672 Fax: 215 564 4047 info@shunra.com Israel Office 6B Hanagar Street Neve Neeman B Hod Hasharon 45240, Israel Tel: +972 9 764 3743 Fax: +972 9 764 3754 info@shunra.com European Office 73 Watling Street London EC4M 9BJ Tel: +44 207 153 9835 Fax: +44 207 285 6816 saleseurope@shunra.com

For a complete list of our channel partners, please visit our website www.shunra.com

Potrebbero piacerti anche