Welcome!

Microservices Expo Authors: Yeshim Deniz, Elizabeth White, Pat Romanski, Liz McMillan, Charles Araujo

Related Topics: @DevOpsSummit, Microservices Expo, Linux Containers, Containers Expo Blog

@DevOpsSummit: Article

Load Testing Defined | @DevOpsSummit #APM #DevOps #Microservices

Includes best practices for load testing web and mobile applications

Whether you're a beginner simply looking to get started or a seasoned vet brushing up on your subject knowledge, this post will serve as a definitive guide on how to perform effective load testing on a web or mobile application.

Load Testing: A performance-related testing process that places simulated demand on software, web or mobile applications in order to measure responses and systems' behavior under both normal and anticipated peak load conditions.

Understanding the Importance and Place of Load Testing in the Software Development Life Cycle
Performance testing
, as a whole, is one of the most important things you can do when building out a web or mobile application. Falling under the umbrella of performance testing, load testing ensures that your application can handle expected and unexpected user loads. By realistically simulating user activity and monitoring infrastructure behavior, you can eliminate most, if not all, of the bottlenecks in your web or mobile applications.

The benefits of load testing are monumental. This process not only allows you to provide users with an excellent application experience, but it also helps you determine how much load an application can handle before it crashes in production, when to add another server, when to reconfigure the network, where code needs to be optimized, etc.

In many cases, load and performance testing are pushed off until the end of a development cycle. While Agile methodologies and Continuous Integration make the case for load testing early and often, a large percentage of organizations continue to place load and performance testing on the backburner which ultimately results in later release dates and delayed features.

Plan on incorporating load testing into your software development lifecycle earlier rather than later to avoid costly performance issues down the line.

When You Should Consider Load Testing
If you haven't been load testing your website or mobile application, you should be aware of a few major red flags that could potentially cause your app to crash, leaving you in an incredibly precarious position.

When your customer base grows
It honestly boils down to how fast your customer base is growing, but if you witness a steady increase in users either accessing your website or mobile app, you'll want to hire a performance tester in-house or invest in a comprehensive load testing tool.

When you purchase mainstream ads
You can't predict when or even if your application will go viral, but if your advertising team is going to air a commercial, run a national print ad, etc. make sure that your application and infrastructure are load tested properly.

When your web or mobile app starts to lag
This is a huge indicator that you need load testing. If your web or mobile application's load time slows down, your servers are probably under a bit of pressure. Address this immediately before disaster strikes. Even if you avoid an application crash, slow performance can do permanent damage to a company's image and leave users seeking out a better experience on competing apps.

When your operations team is busy keeping the website running
If Ops is already adding servers or changing configurations to try to handle your application's user load, it may signify that something's wrong with your code. Until you address the issues with your code, you won't be able to scale properly. Continuously adding more servers to mitigate the problem isn't cost effective or realistic.

Load Testing Best Practices
Load testing, perhaps more than any other type of testing, is one of those processes that you either choose to do well or otherwise risk the ever-important availability and performance of your application.

The biggest mistake most companies make when load testing is focusing on a single number: how many concurrent users their application will support. When this is the case, little effort is put into script development which results in unrealistic tests. Unrealistic tests are worthless as they'll yield little to no accurate information about the performance of your application under load in production.

Load testers should think beyond the concurrent users metric and focus on the factors required to produce the most realistic load testing scenarios, which include:

  • Geographyload testing with the cloud provides for a geographical distribution of simulated users and will allow you to test outside of your firewall.
  • Devices and Browsers: This factor can quickly become a load testing blindspot. Your application may perform in different ways across various devices and browsers. Monitor device/browser software changes and take care to account for any impact on performance.
  • User Behavior: Realistic load tests must include parameterized recordings so that variables are randomized and represent what happens most often for people when they traverse popular paths within your application. For even more realism, use Google Analytics to get a sense of the variability of parameters in actual users.
  • User Paths: Think carefully about the way a user navigates through your application and try to avoid testing only a limited set of paths. Don't overlook smaller components of your web or mobile application which can include infrastructure packages like JMS or other 3rd-party services.
  • Network Behavior: Variations in network latency and bandwidth must be taken into account when performing realistic load testing. Monitor these factors from multiple locations to ensure that they have no real adverse impact on your users.
  • Connection Parameters: Modern web browsers send requests to the server using several simultaneous connections, and as such you'll need to simulate an appropriate number of parallel requests during your tests.

Realistic Load Testing Is Key
Keeping it real is paramount to load testing. With the growing demand for perfection in web and mobile application performance, there is no replacement for realistic load testing. Whether you choose to go at it alone or decide to use a dedicated load testing tool, make sure you're accurately representing end user behavior in your testing scenarios. This will result in better performing applications that will keep you, your managers and your application's users happy and satisfied.

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.

@MicroservicesExpo Stories
Without a clear strategy for cost control and an architecture designed with cloud services in mind, costs and operational performance can quickly get out of control. To avoid multiple architectural redesigns requires extensive thought and planning. Boundary (now part of BMC) launched a new public-facing multi-tenant high resolution monitoring service on Amazon AWS two years ago, facing challenges and learning best practices in the early days of the new service.
You often hear the two titles of "DevOps" and "Immutable Infrastructure" used independently. In his session at DevOps Summit, John Willis, Technical Evangelist for Docker, covered the union between the two topics and why this is important. He provided an overview of Immutable Infrastructure then showed how an Immutable Continuous Delivery pipeline can be applied as a best practice for "DevOps." He ended the session with some interesting case study examples.
Both SaaS vendors and SaaS buyers are going “all-in” to hyperscale IaaS platforms such as AWS, which is disrupting the SaaS value proposition. Why should the enterprise SaaS consumer pay for the SaaS service if their data is resident in adjacent AWS S3 buckets? If both SaaS sellers and buyers are using the same cloud tools, automation and pay-per-transaction model offered by IaaS platforms, then why not host the “shrink-wrapped” software in the customers’ cloud? Further, serverless computing, cl...
All organizations that did not originate this moment have a pre-existing culture as well as legacy technology and processes that can be more or less amenable to DevOps implementation. That organizational culture is influenced by the personalities and management styles of Executive Management, the wider culture in which the organization is situated, and the personalities of key team members at all levels of the organization. This culture and entrenched interests usually throw a wrench in the work...
"We view the cloud not as a specific technology but as a way of doing business and that way of doing business is transforming the way software, infrastructure and services are being delivered to business," explained Matthew Rosen, CEO and Director at Fusion, in this SYS-CON.tv interview at 18th Cloud Expo (http://www.CloudComputingExpo.com), held June 7-9 at the Javits Center in New York City, NY.
Without lifecycle traceability and visibility across the tool chain, stakeholders from Planning-to-Ops have limited insight and answers to who, what, when, why and how across the DevOps lifecycle. This impacts the ability to deliver high quality software at the needed velocity to drive positive business outcomes. In his general session at @DevOpsSummit at 19th Cloud Expo, Eric Robertson, General Manager at CollabNet, will discuss how customers are able to achieve a level of transparency that e...
We all know that end users experience the internet primarily with mobile devices. From an app development perspective, we know that successfully responding to the needs of mobile customers depends on rapid DevOps – failing fast, in short, until the right solution evolves in your customers' relationship to your business. Whether you’re decomposing an SOA monolith, or developing a new application cloud natively, it’s not a question of using microservices - not doing so will be a path to eventual ...
"DivvyCloud as a company set out to help customers automate solutions to the most common cloud problems," noted Jeremy Snyder, VP of Business Development at DivvyCloud, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
We all know that end users experience the Internet primarily with mobile devices. From an app development perspective, we know that successfully responding to the needs of mobile customers depends on rapid DevOps – failing fast, in short, until the right solution evolves in your customers' relationship to your business. Whether you’re decomposing an SOA monolith, or developing a new application cloud natively, it’s not a question of using microservices – not doing so will be a path to eventual b...
"This all sounds great. But it's just not realistic." This is what a group of five senior IT executives told me during a workshop I held not long ago. We were working through an exercise on the organizational characteristics necessary to successfully execute a digital transformation, and the group was doing their ‘readout.' The executives loved everything we discussed and agreed that if such an environment existed, it would make transformation much easier. They just didn't believe it was reali...
"Opsani helps the enterprise adopt containers, help them move their infrastructure into this modern world of DevOps, accelerate the delivery of new features into production, and really get them going on the container path," explained Ross Schibler, CEO of Opsani, and Peter Nickolov, CTO of Opsani, in this SYS-CON.tv interview at DevOps Summit at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
Most companies are adopting or evaluating container technology - Docker in particular - to speed up application deployment, drive down cost, ease management and make application delivery more flexible overall. As with most new architectures, this dream takes a lot of work to become a reality. Even when you do get your application componentized enough and packaged properly, there are still challenges for DevOps teams to making the shift to continuous delivery and achieving that reduction in cost ...
Don’t go chasing waterfall … development, that is. According to a recent post by Madison Moore on Medium featuring insights from several software delivery industry leaders, waterfall is – while still popular – not the best way to win in the marketplace. With methodologies like Agile, DevOps and Continuous Delivery becoming ever more prominent over the past 15 years or so, waterfall is old news. Or, is it? Moore cites a recent study by Gartner: “According to Gartner’s IT Key Metrics Data report, ...
Your homes and cars can be automated and self-serviced. Why can't your storage? From simply asking questions to analyze and troubleshoot your infrastructure, to provisioning storage with snapshots, recovery and replication, your wildest sci-fi dream has come true. In his session at @DevOpsSummit at 20th Cloud Expo, Dan Florea, Director of Product Management at Tintri, provided a ChatOps demo where you can talk to your storage and manage it from anywhere, through Slack and similar services with...
Many organizations are now looking to DevOps maturity models to gauge their DevOps adoption and compare their maturity to their peers. However, as enterprise organizations rush to adopt DevOps, moving past experimentation to embrace it at scale, they are in danger of falling into the trap that they have fallen into time and time again. Unfortunately, we've seen this movie before, and we know how it ends: badly.
"I focus on what we are calling CAST Highlight, which is our SaaS application portfolio analysis tool. It is an extremely lightweight tool that can integrate with pretty much any build process right now," explained Andrew Siegmund, Application Migration Specialist for CAST, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
Explosive growth in connected devices. Enormous amounts of data for collection and analysis. Critical use of data for split-second decision making and actionable information. All three are factors in making the Internet of Things a reality. Yet, any one factor would have an IT organization pondering its infrastructure strategy. How should your organization enhance its IT framework to enable an Internet of Things implementation? In his session at @ThingsExpo, James Kirkland, Red Hat's Chief Archi...
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...
We all know that end users experience the internet primarily with mobile devices. From an app development perspective, we know that successfully responding to the needs of mobile customers depends on rapid DevOps – failing fast, in short, until the right solution evolves in your customers' relationship to your business. Whether you’re decomposing an SOA monolith, or developing a new application cloud natively, it’s not a question of using microservices - not doing so will be a path to eventual ...
Docker is sweeping across startups and enterprises alike, changing the way we build and ship applications. It's the most prominent and widely known software container platform, and it's particularly useful for eliminating common challenges when collaborating on code (like the "it works on my machine" phenomenon that most devs know all too well). With Docker, you can run and manage apps side-by-side - in isolated containers - resulting in better compute density. It's something that many developer...