Stop Doing Things That Don’t Work (a.k.a: Excel and Virtual Private Servers are Evil)

Note that I’m talking about using these tools in some kind of professional way, and more specifically, I’m talking about using Excel as a database, and using VPS hosting to host “professional” web sites. By “professional”, I mean something other than your personal blog, picture gallery, or other relatively inconsequential site.

Excel is not a database

Here’s the thing: Excel isn’t a database. Most people who don’t work in IT don’t seem to understand this, and they’re deathly afraid to actually communicate with anyone in IT, so they take matters into their own hands, and create problems so big that IT is forced to get involved, because at some point this spreadsheet becomes “critical” to some business function. Then IT gets even more bitter toward the non-IT folk, validating some of the reasons the non-IT folk went that route in the first place, and virtually guaranteeing that they won’t come to the IT group next time either.

So, if you don’t work in IT and are not a geek, know this: Excel is not a database. Excel is not meant to manage data on a long-term basis. For everything you can do with Excel, there is almost certainly a better tool for the job. This isn’t to say that Excel is good for *nothing*, just that it’s generally not good in places where data needs to be managed over the longer term, shared with others, and relied upon for day-to-day operations of a business or department.

Find someone in IT who seems nice and “deals with databases”, and ask them what their thoughts are on the topic. Then tell them the *actual problem you’re trying to solve*, and ask how they would approach it. You’re not likely to hear “Excel” in the reply unless Excel is so rampant in your company that it’s become a corporate standard for creating data fiefdoms, which would be bad.

A VPS is Not “Professional Grade”. Ignore Adverts to the Contrary

No, really – I mean it. I’ve done plenty of consulting for companies who need some kind of fire put out for one of their web sites. Not long into the conversation I learn (for about 50% of the calls I get) that the site is externally hosted on a VPS. Occasionally I get people whose sites are, or are supposed to be, hosted on dedicated servers, but the actual VPS/dedicated server isn’t really the whole issue. The issue is with how these things are configured, and your ability to do what you need with them.

Marketing for VPS and dedicated server hosting often say “full root access” somewhere in the list of features. There are also specs like the CPU speed, amount of RAM, and bandwidth limits. All of these come together to give the unwitting customer the notion that they’re getting full root access to some kind of behemouth server with all kinds of resources. However, things go downhill when you see things like cPanel, Plesk, or anything else that looks like “easy management through web-based administrative interface”. Again, this is probably fine for something that gets 100 hits per month or so and isn’t critical. The minute you can attach a cost to the problems that can arise with your site, you need to ditch these hosting plans.

Why? There are numerous reasons, but I’ll start with three:

  1. There’s typically no failover or “high availability”: if one machine goes down, or one VPS on the same hardware goes nuts, you’ve just ceased to exist on the internet at all.
  2. The CPU and RAM advertised is used mostly by the bloated software used to automate the management and monitoring of the systems (in other words, it’s used by your hosting provider, not your own application).
  3. The system configurations I’ve seen in these environments borders on retarded, and since the end user is managing all of this through a web interface, the only folks left to blame are the providers. So when you have problems, they’re guaranteed to be extra-challenging to solve.

What kinds of system configuration issues? Well, how about every service turned on, every port open (and not filtered) by default? How about downright broken service configurations, ranging from named.conf (DNS) configs specifying features that *can’t* work as configured, to crippled package management tools that disallow package modifications because doing so would break the monitoring/management tools, to php.ini files that turn on displayErrors and turn *off* log_errors. In general, logging configurations are poor or worse, making problem-solving an uphill battle. Every time I log into a VPS I am typically shocked and appalled at what I find. Even if it’s $5 a month, it’s not worth it.

Think about it: if you have a VPS and you have database corruption, what happens? You call support, who will probably just confirm or deny that actions performed by them or their automated routines had anything to do with the corruption (if they were forced to uncleanly reboot the machine, for example, that might explain things). Usually, they’ll say they don’t have any record of any events on the server that might be an issue, and you’ll need to fix it yourself (that’s what you wanted “full root access” for in the first place, right?).

So, you get a system or database guy to look into things. He’ll find that there are no logs, broken configurations, and when he tries to make a change, it’s either overwritten by these wacky automated management routines, or it breaks some part of the web-based management interface. He’ll also find that, while your web site uses about 128MB of the 512MB of available RAM, the host is running software that takes up double that amount of RAM. Wow, what a deal you got!

All of these issues, by the way, can also occur on dedicated servers, but what sets VPS services apart is the performance: it is, at the very best, unpredictable, and often bad. Some hosts try to market their way around this by charging you more money for “low-density” VPS “solutions”. Don’t buy it. It’s not a density issue. Even if you only share the hardware that runs your VPS with *one* other VPS, if that other VPS goes crazy and starts performing huge amounts of disk reads and writes, your site, even if there are only 3 people looking at it, is going to be slow.

The solution? Well, evaluate whether or not you really need the control a VPS gives you. If you’re just running WordPress, a simple CMS, or a brochure web site, you almost certainly don’t need a VPS. Get a web hosting plan. They often offer one-click installations of wordpress and CMSes like PostNuke, PHP-Nuke, Joomla, Drupal, etc, along with phpMyAdmin for doing database operations. LinuxLaboratory.org runs on Drupal and MySQL, and houses a bunch of articles I’ve written about Linux, System/DB Administration, etc., that I’ve written over the years. It also presents a feed of the content on this blog, and it’s been running on a simple, cheap, web hosting plan for probably 7 or 8 years now. My uptime is better than the sites of friends of mine who decided they needed the control of a VPS. Same goes for this blog (though it’s a different provider). Heck, my beer blog runs on a *free* web hosting solution at DreamHost. It’s not super fast, but aside from that it serves its purpose well, and they have one-click installations for just about everything.

If you need to launch some kind of site that requires things not offered by a web hosting plan, then chances are you’re developing the site, or have some budget or staff for helping you setup/manage/troubleshoot the services you’ll run there. Check out Amazon EC2 and Google AppEngine, and look into dedicated hosting to see if any of those meet your needs.

If you have an IT department, you could, of course, try to work with them on a solution. This is almost always the best solution over the long haul.

  • http://blog.stuartherbert.com/php/ Stuart Herbert

    Heya Brian …

    Just because you’ve had bad experiences doesn’t mean that all VPS solutions are bad. I guess VPS means something different on your side of the pond … I’d consider EC2 to be partially a VPS solution.

    If you feel *that* strongly about it, drop me an email, and help me design a better VPS solution :) I’m looking to launch such a service soon, and I enjoyed our collaboration back when I wrote for php|arch.

    Best regards,
    Stu

  • http://orestis.gr Orestis Markou

    I can see how Excel is not a database, but I can’t see how a VPS is not adequate for professional sites.

    With virtualization, VPSs are separate from each other – and no crappy cPanel solutions are required. Indeed, many VPS providers give you the option of selecting your distro of choice.

    I would label VPSs as overkill. You get the administrative overhead (patch kernels etc), and the extra performance you gain is probably not worth it.

    I use Webfaction personally, moved from a VPS. They’d been a pleasure to work with and very reliable. I think you just got burned from a bad provider.

  • m0j0

    @Stuart — check your email :-D

    @Orestis — The rant here isn’t based on an isolated experience. It’s based on experiences with several VPS providers in use by several different clients. There are probably good ones out there, but I haven’t come across any :) Also, I use webfaction too – and love it so far (I’m hoping to deploy 2 more sites, one of the django-based, in the next couple of months). Part of my point is that some (a lot?) of folks using a VPS can probably get by with a good hosting plan.

    Thanks to both for the feedback!

  • Jason Stubbs

    > A VPS is Not “Professional Grade”

    Perhaps you should have said ‘There is no such thing as a “Professional Grade” VPS provider’. I have no experience with providers so I can’t say either way, but I’m using VPS technology itself quite extensively.

    We run many different services, most of which can’t push a server to its fullest but still be need to have fail-over. Some services are also in maintenance mode, while others are actively updated, which means that underlying software versions often vary. In these sorts of situations, VPS software really cuts down on costs without sacrificing stability.

  • m0j0

    I have dealt extensively with, and deployed, and continue to recommend virtualization in its various forms for several years and for different purposes. I’ve worked with vmware, xen, LVS, and pseudo-virtualization, which in my experience has mostly consisted of chroot jails, or glorified chroot jails of one form or another. At no time have I ever heard any of this stuff referred to as “Virtual Private Servers”. In my mind, I’ve always imagined that the term “VPS” was invented by a marketing department, targeting prospective users of such a service. When I say “VPS”, I guess I mean “hosted VPS service” as a result. Sorry for the mixup.

  • gerard

    Excel is not a database. I know, I know. Your post should be part of the Windows Office installer, maybe as a popup after the EULA – I will never use Excel as a database. Confirm/Cancel. I’ve seen elaborate, multi-coloured ‘pseudo-dashboard’ spreadsheets; guys adding up columns of numbers in their head or with a calculator(!), and entering the total manually… Honestly, I’ve given up fighting it. There is a way of associating XML schemas with a spreadsheet, then ‘export as XML’ gives you an adherent document, but usually then – ‘Now you’ve got two problems’… Interesting about the VPS’s.

  • Pingback: Tightwad Technica » Excel, VPS’s and Things That Go Bump in the Night

  • James Thiele

    Excel is a database, just a very simple one. If all you need to do is track employees’ names, employee numbers, phone numbers, blah blah blah Excel works fine. But I’ve started working as a consultant to a company with about four thousand employees in over one hundred job categories that needs to track their job risks for OSHA. They have some Excel files that cover parts of each of these issues but ultimately they’ll need a relational DB to do it.

  • Gerry

    As someone with enough knowledge to be dangerous to data reliability, I’ll tell you why (imho) non tech people are comfortable using Excel vs a “real” database. You get a do over if you are in the unfortunate position of having just deleted something. Or another possible way to look at it is a lack of experience when it comes to databases. Most people in my industry (environmental remediation) start out using Excel on a very small scale and track increases in their use and knowledge of it on a low ratio. When we get to databases, it is usually a steep learning curve and a lack of common sense on the part of the end user. What really needs to happen is…well I don’t have an answer, I just have my IT guy’s direct line. :)

  • Pingback: You’re doing it wrong! « Notablog