Web Hosting Lessons I Learned This Week
21 Jan 2006At work we're wrapping up the development/stabilization of a new platform rollout. All sorts of planning went into it. Much smarter people than me figured out really clever ways of moving data around, and ensuring that all of the servers would be running the same code, would stay in sync, and the platform would be rock solid.
That was the theory, at least. It should have worked. Except for two things:
1) Microsoft FrontPage sucks.
2) Macromedia ColdFusion sucks.
The vast majority of web hosting customer use FrontPage. It's unfortunate, but Microsoft made it easy and cheap for people to build web pages, so now you have to support it. If it was just the WYSIWYG editor, it wouldn't be a big deal. People would build pages, upload them through FrontPage, and all would be well with the world.
But that's not how FrontPage works. FrontPage uses these server side things called extensions to keep track of the state of files, so that it only needs to upload ones that have changed. It lets you synchronize your local files with the server, getting the latest versions on both. It does stuff weird stuff with templates and themes, where it tries to guess what you want/need, and will *actually change your code* if it things something has changed.
Why did this make my life miserable? Well, it turns out that installing the FrontPage Extensions into someone's web directory is problematic. It doesn't always work right. Sometimes, the extensions doesn't get installed at all. Sometimes certain files are missing, leading to the code change situation described above.
In the end, the most reliable solution seems to be to always install the FrontPage Extensions locally. That seems to alleviate most of the issues. However, when you're working with a shared platform, that's not the optimal solution. You don't want to have to spawn off operations to run on separate boxes, especially when the datastore in the background is a central share. Alas, that seems to be the remedy to the installation issue.
Worse yet, there's not really a solution to the issue with FrontPage changing code. One of our tools brings over the user's files, installs FrontPage, and (in theory) that's it. The user is all setup.
Except ... FrontPage sometimes times out when calculating the file statuses (remember that from earlier). So FrontPage then just changes a bunch of files and things get all broken. All a user would need to do is reupload the files, and that fixes things, but still, it's not an optimum thing for the user.
All that is just FrontPage.
Why does ColdFusion suck? Because it runs as an ISAPI filter. When it stops working, it brings down *every single person on the server*, whether they use ColdFusion or not.
That's simply a broken way to implement a product.
Those two things contributed to a long week. The upshot is that the hours spent now are likely to save many more hours down the road.