Continuous Integration, Continuous Delivery & Continuous Testing

Tim Hinds

Subscribe to Tim Hinds: eMailAlertsEmail Alerts
Get Tim Hinds via: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn

Related Topics: Agile Software Development, Continuous Testing, DevOps Journal

Blog Post

It’s the Big Game. Your Website Is Crashing. What Do You Do? [#DevOps]

It may seem like the game is over and there is no chance of getting the system running, but remember your training and keep calm

It's hard to believe, but the conclusion of the NFL football season is upon us. In the east coast vs. west coast championship rivalry, Neotys will be rooting for our own New England Patriots. It shouldn't come as a surprise, as our office is only 35 miles from Gillette Stadium. Not only will the Patriots take on the Seattle Seahawks in the big game, but many web-based companies will be taking on large-scale traffic challenges after airing their prime time commercials that day. After hearing this, you should ignore the pregame hype, put down the nachos and get your servers ready for maxed out user load.

You've Visualized the Win... But Not the Loss
Imagine a scenario in which your company, after capping off a great 2014, starts the new year with a large advertising budget. The CMO decides that running an advertisement during the big game is a just what the company needs, so a slot is booked. With costs up to $4.5M for a thirty- second spot, all precautions are taken. After tirelessly preparing for the traffic influx that will occur, the ad runs and it's better than anyone had imagined. Prospective customers realize the call-to-action and begin to hit the website in large quantities.

Then it happens... Just as it seems you are crossing into the end zone for a touchdown, you feel the football start to slip from your grip. Website performance metrics begin to fail and the entire system seems as if it's about to go down. CPUs are spiking and system memory is at its max. It is at this point you realize, the whole application is about to crash!

Where Did the Game Plan Go Wrong?
The first thing you need to do is take a step back and think about where you could have gone wrong in preparing. Did you miss a step somewhere along the line? How thorough was all your load and performance testing beforehand? Where may you have unearthed a fault in your site before this incident?

As you know, if your site wasn't optimally functional prior to the traffic increase, a small problem in your ecommerce engine, system configuration, or usability could exponentially compound in times of high use. If you've set up your live metrics and tracking data properly, hopefully you know that your site is failing before your users do. It is imperative to be one step ahead of them before problems become severe.

It's Time to Call an Audible
It may seem like the game is over and there is no chance of getting the system running, but remember your training and keep calm. You will need to get developers, testers, the operations team and other partners to be involved in the conversation immediately and form an action plan. This is not a good time for other minutiae. Get all hands on deck and delegate leadership for the reboot so everyone knows exactly who is in charge. The focus should be solely on figuring out what happened and fixing it.

The easiest way to narrow down the source of the problem is to utilize data. It's time to scour through your monitoring systems to see what went wrong. If you have been running simulated user monitoring like NeoSense, reference that system as it can give you valuable data. Once you have checked through other logs, you hopefully will have narrowed the problem down to only a few possible catalysts.

Recover and Make the Game Winning Drive
There are all sorts of possibilities as to where the problem lies. For example, you may have run into:

  • A programming error on the website
  • A DNS problem pointing users to expired domains
  • A larger networking error
  • A bottle-necked application
  • An entire server that has crashed

In any case, figure out if the entire site is down or if just a small portion is down and keep the working parts in order.

If problems are load-related, get some new servers up and running as soon as possible. Hopefully you are on an elastic platform that will allow you manage your load balance overflow. With so many active current users, also check your auto-scaling settings and make sure you are initiating the correct ones.

Run a Few Plays
Once it seems you have found where the problem lies, it is time to rectify it. Address disk space and memory problems with additional horsepower. Once you have found malfunctioning processes, restart those systems. Keep the right people close by in case the crash keeps happening and notify the rest of the team of the temporary fix. Even though the crisis has been averted for now, you will definitely want to do a deeper investigation once the dust settles and administer a more permanent fix at a later time.

Celebrate the Win
With a fully functioning website active again, you should be able to handle the rise in traffic for the foreseeable future. Your customers are now re-engaged with the user experience they expect from your web service and you will be able to finish watching the Patriots beat the Seahawks (fingers crossed!) in the final. Finally, remember everyone who helped and be sure to thank the whole team for being supportive and addressing the problem.

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.