Mobile - Web - Media Thursday, Jul 27, 2006 12:08:44 PM
If Google Goes Down, We All Feel It
What happens when you take a large number of popular Web destinations, and tie them all to a single Web Service? You create a situation where that single Web Service can greatly disrupt a healthy percentage of the Web.
How many of you noticed a problem with Google yesterday (July 26)? Did you visit any sites where the pages wouldn't fully load, when they usually snap into place? I sure did.
Near 7:00 pm Pacific time, I noticed my site ArtistServer.com running slowly - but it turned out to be Google AdSense. Every page I had AdSense on was not fully loading. In some cases the frame where the ad would normally display, an standard Firefox error page would display, showing that the url could not be found or couldn't respond.
Unfortunately, I first thought that the problem was with 'my' server - so I began to crawl the Web, looking for an answer for the odd error message I found in the ColdFusion log. While I was browsing is when I came to the conclusion that the site was slowing down due to Google AdSense not loading. This was after seeing the same thing happening on 3 other sites on the Web.
In order to fix the situation, I had to open up the code for generating Google Ads on ArtistServer and add a variable which could disable google ads across the site. This allowed me to toggle the ads off until I noticed that AdSense was loading properly.
And the error in my ColdFusion log? You won't believe it... the error is not real - here it is:
warning Unable to open C:\CFusionMX7\runtime/lib/license.properties
So, I check for my license, and it's not there! No problem, I pulled a copy from backup, drop it in, restart... and now it reverts to the developer edition - which means the site went offline.
There is usually a warning in the coldfusion-out.log that says "warning Unable to open C:\CFusionMX7\runtime/lib/license.properties." This warning should be ignored.
Yes, thank you Macromedia/Adobe! I appreciate the opportunity of having my site offline due to a warning that I apparently should have ignored. Cool.
Fortunately, I followed the instructions of the Technote, rebooted, and she was back online. Drama!
Let's get back to that first paragraph - I'm all for the idea of Web Services, widgets, APIs and the idea of micro-chunking, but I think there's an important piece of the puzzle here that needs to be addressed by developers who dabble in these technologies. We have to ask the question, "What will my mashup or site or widget do when the service it relies on goes down?" When I saw what Google was doing to my site and other people's sites last night, I started to think about this.
What I imagine being a solution, is a scheduled task which pings the Web Service and checks it's response time, then decides if the Web Service should be used, or if "plan B" should be used. "Plan B" could either be old/backup/default data, or another Web Service, or at the very least, displaying a message that the Web Service is currently unavailable.
In our current example with Google AdSense, I could have the code swap to a different Ad provider instead of turning the ads off altogether. Then later on, after AdSense comes back with an acceptable response time, the code would swap back to AdSense. The same thing could be setup for Map Mashups.