Tuesday, August 21, 2007

Hosting, the Happy Ending

Last weekend I completed the process of moving my site to Edge Web Hosting. It was the quickest, easiest, smoothest host move I've ever experienced. While in large part I believe this is actually due to my use of the ModelGlue framework which resulted in centralized configuration that takes minutes to update, I also have Edge to thank for getting my database moved before I even had my files uploaded.

I'm already liking several things about my new host. For one, their emails don't get automatically blocked by our office email firewall (more our mail host issue than the web host, but convenient nonetheless). They are also less restrictive on site settings - they configure the server for CFMAIL from the sandbox so I don't have to pass a server or password within my CFMAIL tags. Nice! The only tags they limit are CFREGISTRY and CFEXECUTE. At any rate, they have completely absolved me of any hesitation or anxiety that I had about moving off HostMySite.

Yesterday while attending the Air Tour I got an email notification from HostMySite that they would be upgrading my (new) CF7 Server (the one they moved me to given the issues we had) to CF8 this week. Instead of panicking, I just breathed a big sigh of relief that our site was moved and hell would not be repeating itself this week.

Friday, August 17, 2007

Hosting, Continued

So after spending the better part of my day (and night) working on getting my site back online, It was finally fully operational again around 7 this morning.

HostMySite's support was good - although I was talking to so many different people it was hard to keep track and I don't think they were talking much amongst themselves. At my pleading (around 4pm yesterday when it still wasn't online), they set me up with a new account on a different, CF 7 server. So I put the site to that server, and everything worked fine, with the exception of a few settings, DSN's and the like that had to be transferred too. Because they set up the new server with my same Control Panel login info, when I would log into the Control Panel to make changes, it would only affect the old site. I had to request all those updates directly from support, requests which they promptly (I was getting emails throughout the night) took care of.

However, the thing that has bothered me most about this ordeal is that with the last round of emails before I moved servers, support told me "it appears the timeout is happening at this CFLOOP tag, so why don't you try optimizing that section of the code and then it should run". Now, I hadn't uploaded anything to the site in days that should cause this sudden slowdown, and there is no part of my site that's complex enough (it's all basic database interaction, mostly selects, with small data sets) to bring a server to its knees like that. So after I took a few deep breaths, I emailed my rebuttal.

First off, the error I'm getting is inconsistent. It's always the same 500 - request timeout error. But the CFLOOP and line of code in the stack trace that it references varies between several different places. I've seen at least three different locations. They are all within the ModelGlue core, and once I saw an error within the ColdSpring core. Now I'm not saying anyone is exempt from bugs, but I just could not buy the idea that ModelGlue and ColdSpring are taking the server out with an infinite loop or such nonsense. These frameworks are used by hundreds of developers in major applications without such issues. And with all the talent and brains that's gone into developing them, the chance that the framework code, of all the code on my site, is what's causing the problem is about...oh...well...IMPOSSIBLE! No, the problem is that the server chokes at the first somewhat intense processing it comes across while loading the site, and the frameworks just happen to load first.

This is essentially what I told HMS, along with providing some screen shots of the different stack traces I was getting. Then I begged them - if there's any way they can explain how my code is causing the problem, and provide me with some more details (using the handy dandy CF server monitor that they should have), then I would be more than happy to investigate and fix whatever the problem is. Because I certainly don't want the problem to come back after I switch servers.

However the answer I got was "I can see what you are saying from the random errors however that was not what I experienced when attempting to troubleshoot the errors.

Please let us know when you have moved the site to the CF7 Server and we will do some comparing to see if we cannot narrow down the exact problem in the code and possibly even fix it."

So they've kindly offered to help, but still haven't provided me with any more details. If you ask me my personal opinion, I'd really like to stick with them on this. They have been (mostly) helpful and have catered to my demands. I'm sure that upgrading to CF8 has not been an easy thing for them, and I know they were offering beta hosting way back when, so they have probably tested the hell out of it. But then business decisions come into play, and my boss (CEO) and IT Director don't have the rapport with them that I do. So I have to make a tough decision to switch hosts.

I was not feeling very comfortable with the idea (I wanted to be sure the problem was not my code or CF8, rather than their server). But I talked to Edge Web Hosting, and they helped me feel a little better about it. Ok, I talked to a salesperson. But he definitely knew what he was talking about. They have an uptime guarantee that isn't limited to the network and hardware (after some investigation I saw that HMS only limits their guarantee to these items), and they have a maximum of 60 sites/users on any server at once with their Master CF plan. They seem more focused on quality than price, so it's more expensive. But it's still not a bad deal.

Is it just showing "action" without purpose to switch? Maybe. But I do feel like I'm getting a better plan with Edge. And it's not like I'll never go back to HMS. I'm still going to use CF 7 for the time being, just because I'm a little gun shy about jumping on the upgrade bandwagon before the host can prove they're ready, and I don't have an immediate need to switch to CF8 on the website.

To be sure that I wasn't going to have these same problems with a new host, and to confirm in my own mind that I'm not holding the host responsible for my errors, I played around with the old site on HMS' server and tried running some CFDUMPs without loading a framework. Voila, they worked. I tried just loading the application and framework but then aborting...500 error/timeout. Now a couple dumps are hardly enough to take down a server under heavy load, but I found it sort of disturbing that I simply could not get a framework to load, but was able to run CF without the frameworks just fine. My best guess is that the server is just really overloaded, and it can handle a couple variables but not say, parsing an xml file. I am determined to find out why my Model Glue site won't run on their CF8 server.

But I'll probably still spend my weekend moving hosts. Argh. I'll keep updating as I figure this out.

Thursday, August 16, 2007

WTF, HMS?

You can now add me to the never-ending list of bloggers and commenters on the topic of "my once-trusty web host is failing me, who do you recommend?"

I've used HostMySite for years with multiple sites at multiple companies. They have always been outstanding. Never a problem, never unscheduled downtime, great support and communication. But last week, they upgraded to CF8, and in the process, seem to have fubar'd the server my site is on (the problem is not CF, it's a configuration issue). Since last week, my company's site has been completely down (as in server error 500) for at least 13 hours during business hours (that I have been counting, who knows what happens while I sleep). It's also been sluggish on several occasions. I'd like to stick it out with HMS because of their history of quality, and even as I search for alternatives, it seems no one can say enough about how great they are. It's just too bad that I'm not having the same experience with them anymore.

I've used CrystalTech, which I would rate "merely ok" - mostly because their control panel sucked (this was a few years ago - CF6.1 era - it's probably improved since then), and because their SQL Server was totally overloaded (it would take 30 minutes to load the list of databases on the server in to Enterprise Manager). I might consider going back, but considering HMS gets far better reviews, I have a hard time believing that CrystalTech would be a step up.

I've looked at CFDynamics but they are too limited in capabilities, and their bandwidth and storage limits are puny for the price (compared to HMS and CT).

Now I'm looking at Alentus, an Adobe-recommended host that also seems to get some good reviews. They do seem a little more expensive for the space. I'm not opposed to paying more than I do at HMS, although I don't feel our site is quite at a point where we need dedicated hosting. Mostly I just want to be sure that if I'm paying the higher prices, that the service level is better. Alentus does offer 99.999% uptime, compared to HostMySite's "99.9+" (as they list it on their site - what does + mean, anyway?!), and those last two 9's are looking mighty nice to me right now, since my current uptime (depending on how you calculate it) is around 99.98%. I'm not going to get into the whole BS-of-the-99.99%-claim... right now.

I'd give HMS another chance, except right now I'm looking like a big fat idiot to the other folks at my company who I sold on the switch to HMS when I started (because we were moving to CF)...and with my boss tossing out "99% uptime" bla bla bla's, I can't afford to tolerate a vendor that doesn't deliver.

Anyway, if anyone can recommend a fantabulous CF host or has experience with Alentus, I'd love to hear it.

Monday, August 6, 2007

The Value of a Good Brand & Reputation

One of the best little hole in the wall restaurants in this area was closed and then recently reopened when the owners were indicted on numerous charges of laundering money, embezzling and employing illegal immigrants.

Here's the thing. If you read this news story, on their first day of reopening, customers were lined up outside the restaurant before it opened, and it was packed all day. Perhaps some were there to show support for this favorite char broil-chicken joint, but I am willing to be the majority were there just for the great food.

You see, every time I've been to this restaurant, no matter what time of day or what day of the week, there is a line out the door. But it's not for service, the workers there speak little to no english and aren't particularly friendly (they seem to care more about speed, and serving the line as quickly as possible). And it's not for atmosphere; the restaurant is basically a dump and even if you could find an empty table, it would be dirty from the last person to sit there. No, the people go there because it is simply the best chicken you will ever eat, and you'll pay the same price you would at any other limited service/carry out restaurant - around $8 for a generous entree with a side.

Why am I making a big deal out of this? Because your product, your reputation, your brand, has to be truly amazing to have this sort of a comeback after the way this places was shut down a few weeks ago. I can say with some certainty that any other restaurant in the county would be gone for good if something like this happened to them.

Think what you want about the fact that the owners broke the law in so many ways, you have to congratulate them for having such an outstanding product. We'll see how things go in the longer term (who knows if they will be able to remain open when the law suit pans out), but just remember that if your business' product is really remarkable, the benefits can be beyond measure.