Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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.
2012 Shunra Software Ltd. All rights reserved. Shunra is a registered trademark of Shunra Software.
Pg. 2
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
2012 Shunra Software Ltd. All rights reserved. Shunra is a registered trademark of Shunra Software.
Pg. 3
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
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 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.
2012 Shunra Software Ltd. All rights reserved. Shunra is a registered trademark of Shunra Software.
Pg. 5
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.
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.
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.
For a complete list of our channel partners, please visit our website www.shunra.com