Welcome!

Java IoT Authors: Yeshim Deniz, Pat Romanski, Liz McMillan, Elizabeth White, Zakia Bouachraoui

Related Topics: @CloudExpo, Java IoT, @DevOpsSummit

@CloudExpo: Article

Getting to Cloud 9 | @CloudExpo #APM #Cloud

Addressing cloud performance testing challenges and misconceptions

Getting to Cloud 9: Challenges & Misconceptions of Cloud Performance Testing

As a performance tester, does the word "cloud" scare you?

I hope not. I hope it doesn't wake you up in a cold sweat in the middle of the night. I hope the cloud isn't responsible for that chill you feel down your spine when you think you're all alone...yet somehow you know you aren't.

It's not like we're talking about clowns here.

Almost every functional department in a business is thinking about how the cloud applies to them. The benefits are clear - it is easier for geographically diverse teams to access and collaborate over data, it is convenient for users, and it can cost far less. When it comes to performance testing, the benefits of the cloud are very compelling. All that load you need to generate to truly test your application can come from external, elastic, on-demand sources. You don't have to build it out yourself.

However, you may also perceive some challenges that might prevent you from conducting load testing from the cloud. For example: data. If you come from a bank or an insurance company, or some other security-focused organization, you may be trained to say, "We can't touch the cloud because it puts data at risk." However, that statement is only as true as the data that goes into the cloud. Feeding a load test with dummy data that simulates users doesn't put any sensitive information at risk, so this is an area where the cloud could be a great fit.

In this week's post, we want to talk about some of the challenges you may face when load testing from the cloud and clear up any misconceptions that might exist.

First of All, Why Test from the Cloud?
We know that most of you have heard of the general benefits of the cloud, but what specifically do performance testers get from cloud-based load testing infrastructure?

First, you can set up load generating machines and perform scalable tests on-demand, to simulate data usage spikes. These tests are much more realistic than tests done inside your own data center because they come from outside the data center, so they validate all the components of the delivery chain including the firewall, DNS, network equipment, and ISP.

Furthermore, load testing in the cloud helps you evaluate the real-world effects of third-party components, such as content delivery networks, analytics servers, and ad servers. There's also an economic benefit: you can pay for what you need, without having to maintain a lot of hardware that sits unused most of the time. You also save time in that you can set up a machine once and then replicate it through automation tools.

Yes - there's a lot to love about the cloud. Now, let's talk about overcoming the hurdles.

What Are the Challenges and Misconceptions?
There are a few key challenges that you may have on your mind when it comes to performance testing in the cloud. Some businesses excel and conquer right out of the gate but for others, it's a learning process. Here are some key issues and how to address them.

Perception: Troubleshooting Across the Delivery Chain Is Complicated
Anytime you conduct load testing, there's a good chance you'll find problems all over the place. Your job is to figure out which problems actually matter. You may think that the cloud will obfuscate those problems and make it more difficult to troubleshoot. How do you tell which layer in the delivery chain contains the actual issue?

Your basic monitoring system will tell you information like the number of hits, response time per request, bandwidth at each layer and even code bottlenecks. If one performance issue is the root cause, you'll have enough information to resolve the problem. But if multiple variables are the cause, it's harder to find.

Your best bet is to separate the problems within the firewall from those outside the firewall and start from there. You can use the cloud to isolate subsets of the delivery chain to better help you find root cause problems. Overall, your cloud performance testing can be combined with instrumentation that exists within the app to help you gain even better visibility into where problems exist.

Finally, remember that if it seems like the cloud is creating extra work, it's worth it because the cloud is a more realistic environment. That means your testing will more closely mimic what users actually experience. You may have more layers to work through, but the end result will be a better test.

Perception: Tests Reproducibility Is Difficult to Achieve
You may think that if you don't own the cloud, reproducing tests and findings is much more of a challenge.

To some extent that is true. You need to see how fixing performance defects can improve performance, but in the cloud you don't have all the control you're used to in a wholly-owned environment. Your sliver of the cloud may actually be a virtual server on a large shared system. You might wonder, "What resources do I actually have and where is the contention?

We all know why Testing in Production (TiP) is important - because it happens in the most realistic environment of all, your production environment. The cloud is similar, as it is not immune to bandwidth limits and traffic in its data centers. In fact, it changes every day. You need to work towards making the environment in the cloud more stable, while improving metrics and overall performance.

If you are concerned about reproducibility, you can embrace the diversity. Your tests are more realistic and that's exactly what you want. Leverage the variability of the cloud, but tighten up the repeatability within your own environment. That way, you'll get the test reproducibility you need.

Perception: I Can't Move All My Testing to the Cloud
Some think that if you make a decision to use the cloud, that means you have to move every aspect of your QA infrastructure to the cloud. This couldn't be farther from the truth.

You don't actually need tons of load generators operating all the time. Moving performance testing to the cloud doesn't mean moving all of your testing to the cloud or even all of your performance testing. Even the highest traffic producing applications were originally tested on a small population, in a controlled data center - and very likely, portions of those apps still are.

Don't be afraid to test internally and in the cloud simultaneously. You may only need a few machines to run a structure like that, so it can be more cost effective. Use the cloud for what it's good for: broad scale, distributed load, and test realism. Use your internal environments for constrained and isolated tests so you have no need for overly expansive infrastructure maintenance. Balance the cloud with internal assets and you'll do just fine.

Perception: The Cloud Will Be a Security Risk
People are very concerned about security and privacy, but cloud providers have all sorts of experts on staff for security. In fact, there's a good chance that your cloud provider is actually better at security than you can be in your own data center.

If you have real regulatory and/or compliance issues, be cautious and select a provider carefully. Ensure that your service providers are developing virtual private clouds and client partitions in accordance with regulatory guidelines and best practices. Be particularly conscious about data, as data that is stored in a remote location beyond an organization's legal reach may complicate things. However, if you can keep sensitive data internal, and use dummy data externally, you'll find exposure will go way down.

Remember, you can use load testing in the cloud without moving all your data to the cloud. So, performance testing in the cloud could be a great way to accelerate a business process without changing your core security policies. (See more security issues of testing in the cloud here.).

Challenge: Unintentional DoS
When you conduct load testing from the cloud, your operations team is going to get a whole bunch of traffic from a single IP address or a set of them. This can look exactly like a legitimate denial of service attack. In a DoS attack, hackers try to bring your website down by flooding it with traffic, so legitimate visitors can't get in. Security teams look for these patterns and your load test happens to look like one.

Be sure to inform your operations and security teams about your cloud load testing strategy and the schedule. That way they can recognize that the flood of traffic is real and intentional, and they won't shut down your tests and destroy the work you are doing.

Challenge: Skewed Analytics
Similar to DoS attacks, your load testing can have an unintended side-effect on analytics. Marketers use Google analytics and all sorts of other site instrumentation to monitor how users are doing, evaluate key performance indicators, and draw conclusions. They make decisions on this data about how to change the site and where to invest.

For eCommerce sites, this data is critical for driving revenue. Your load test can mess it up, if people think what you're doing represents real traffic. Be sure to set up your systems so they filter out your load testing traffic from the cloud and don't count it as "real usage."

The Silver Lining to Cloud Performance Testing
While there are certainly challenges to cloud testing, it pays to keep your feet on the ground and head out of the clouds. Keeping your entire team informed about your performance testing plans and potential problems. This will reduce the amount of time and data lost. Set yourself up for success and you'll be able to enjoy the silver lining to cloud performance testing.

More Stories By Tim Hinds

Tim Hinds is the Product Marketing Manager for NeoLoad at Neotys. He has a background in Agile software development, Scrum, Kanban, Continuous Integration, Continuous Delivery, and Continuous Testing practices.

Previously, Tim was Product Marketing Manager at AccuRev, a company acquired by Micro Focus, where he worked with software configuration management, issue tracking, Agile project management, continuous integration, workflow automation, and distributed version control systems.

IoT & Smart Cities Stories
Dion Hinchcliffe is an internationally recognized digital expert, bestselling book author, frequent keynote speaker, analyst, futurist, and transformation expert based in Washington, DC. He is currently Chief Strategy Officer at the industry-leading digital strategy and online community solutions firm, 7Summits.
Digital Transformation is much more than a buzzword. The radical shift to digital mechanisms for almost every process is evident across all industries and verticals. This is often especially true in financial services, where the legacy environment is many times unable to keep up with the rapidly shifting demands of the consumer. The constant pressure to provide complete, omnichannel delivery of customer-facing solutions to meet both regulatory and customer demands is putting enormous pressure on...
IoT is rapidly becoming mainstream as more and more investments are made into the platforms and technology. As this movement continues to expand and gain momentum it creates a massive wall of noise that can be difficult to sift through. Unfortunately, this inevitably makes IoT less approachable for people to get started with and can hamper efforts to integrate this key technology into your own portfolio. There are so many connected products already in place today with many hundreds more on the h...
The standardization of container runtimes and images has sparked the creation of an almost overwhelming number of new open source projects that build on and otherwise work with these specifications. Of course, there's Kubernetes, which orchestrates and manages collections of containers. It was one of the first and best-known examples of projects that make containers truly useful for production use. However, more recently, the container ecosystem has truly exploded. A service mesh like Istio addr...
Digital Transformation: Preparing Cloud & IoT Security for the Age of Artificial Intelligence. As automation and artificial intelligence (AI) power solution development and delivery, many businesses need to build backend cloud capabilities. Well-poised organizations, marketing smart devices with AI and BlockChain capabilities prepare to refine compliance and regulatory capabilities in 2018. Volumes of health, financial, technical and privacy data, along with tightening compliance requirements by...
Charles Araujo is an industry analyst, internationally recognized authority on the Digital Enterprise and author of The Quantum Age of IT: Why Everything You Know About IT is About to Change. As Principal Analyst with Intellyx, he writes, speaks and advises organizations on how to navigate through this time of disruption. He is also the founder of The Institute for Digital Transformation and a sought after keynote speaker. He has been a regular contributor to both InformationWeek and CIO Insight...
Andrew Keys is Co-Founder of ConsenSys Enterprise. He comes to ConsenSys Enterprise with capital markets, technology and entrepreneurial experience. Previously, he worked for UBS investment bank in equities analysis. Later, he was responsible for the creation and distribution of life settlement products to hedge funds and investment banks. After, he co-founded a revenue cycle management company where he learned about Bitcoin and eventually Ethereal. Andrew's role at ConsenSys Enterprise is a mul...
To Really Work for Enterprises, MultiCloud Adoption Requires Far Better and Inclusive Cloud Monitoring and Cost Management … But How? Overwhelmingly, even as enterprises have adopted cloud computing and are expanding to multi-cloud computing, IT leaders remain concerned about how to monitor, manage and control costs across hybrid and multi-cloud deployments. It’s clear that traditional IT monitoring and management approaches, designed after all for on-premises data centers, are falling short in ...
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand using interactive visualizations and salary indicator tools to maximize earning potential. Manish Dixit is VP of Product and Engineering at Dice. As the leader of the Product, Engineering and Data Sciences team at D...
Dynatrace is an application performance management software company with products for the information technology departments and digital business owners of medium and large businesses. Building the Future of Monitoring with Artificial Intelligence. Today we can collect lots and lots of performance data. We build beautiful dashboards and even have fancy query languages to access and transform the data. Still performance data is a secret language only a couple of people understand. The more busine...