Friday, 24 January 2014

Can you run a small business with the Raspberry Pi?

    There are three Raspberry Pi computers scattered around our flat. A 512k Model B is an application server running my keyword analysis system 24/7, my original 256Mb Model B serves as a Raspbmc set-top-box, and a 256Mb Model A serves as a general purpose hardware and software hacking platform with an attached camera.
    I am a demanding user of the first of those three, the keyword analysis system involves gigabytes of data and processor-hungry scripts. It's not the fastest machine on the block by any means, but after 18 months or so of continuous Raspberry Pi use for this application I am very impressed with how little intervention it has required. After most of a career developing similar coding and database tasks using office Windows server machines I find myself appreciating the Pi for another reason than its low cost and low power: its reliability in both software and hardware terms.
    If you run any kind of business you do not view your computing needs as a home user might, in terms of hardware cost. Instead you price IT as an ongoing investment over the lifetime of the kit, in which the cost of support, licencing and upkeep may significantly outweigh the purchase price of a computer. Looking at my experience with the Pi as an application server I can't help wondering whether its reliability and stability might make it a surprisingly good fit in a business environment, for at least a small business if not in some cases a larger one.
    So what does a small business need from its IT systems? Every business is different of course, but if you were equipping a generic office network for the first time you might reasonably expect to have the following components:
  • Desktop computers
  • A file server
  • Some means of sharing a printer
  • An email server
  • A firewall and internet connection
  • Network infrastructure - let's go with wired Ethernet here and not start talking about Pi-based wireless hotspots
   As a thought exercise it is worth considering how each component might be addressed using a Raspberry Pi, and what if any benefit that choice might bring.
    Desktop computers: One of the first things most people will do with their Raspberry Pi is write a copy of Raspbian to an SD card and type "startx" at the command prompt once they've booted it and logged in. So it's beyond doubt that given a keyboard, mouse, and monitor the Pi is a desktop computer. But how would it perform in a business environment?
    Software's no problem. Raspbian benefits from a huge library of Linux packages. There's no need to fork out to Microsoft for an Office licence when you can run LibreOffice, for example. But I know if I was using my Pi for office work I'd find myself wishing it was a lot faster. I seem to remember an early description of a Pi as being like a Pentium II with a very fast graphics card, but without the ability to make use of its GPU capabilities the Pi's slow speed Achilles heel is only to obvious. Like many Pi users I look forward to receiving stable OS builds featuring the Wayland support we were shown a preview of last year.
    Benefits of a Raspberry Pi business desktop? Low initial cost, low maintenance cost - simply replace defective hardware with a new one for £25 - no software licence fees, low power consumption.
    Disadvantages of a Raspberry Pi business desktop? It may be the fastest desktop you can buy for £25, but undeniably it's not the fastest desktop you'll ever use
    A file server: This is something the Raspberry Pi can do very well. A headless Linux box has no worries about graphics speed so is only held back as a file server by the speed of its network card and disk drive. Plug an external USB drive into a Pi and it's true you don't have an enterprise-class server, but it will still offer perfectly adequate performance for a small office network. This guide to setting up a SAMBA file server uses Arch Linux, but as my keyword tool server proves every time I pick up data from its share with my Windows laptop the same setup works just as well with Raspbian.
    Benefits of a Raspberry Pi file server? Extremely low cost, reliable hardware, low power consumption
    Disadvantages of a Raspberry Pi file server? Some command line admin is required to set it up, especially if your needs extend beyond simple open-to-all file shares.
    Printer sharing: Nowadays you don't have to pay much money for a printer that can already connect to a network, and it probably makes the most sense to do that if you can. After all in a business network the simplest method of getting what you need is more important than the most technically interesting. But this is a piece about using the Raspberry Pi, and a Pi can make a very good network printer sharing device. So here's a tutorial about setting up CUPS on a Pi and sharing it on a network.
    Benefits of a Raspberry Pi print server? Flexibility to print to whatever device - or even software - that you want to set up.
    Disadvantages of a Raspberry Pi print server? Requires command line admin to set up, more complex than using a network printer in the first place.
    Email: Again from a business perspective does it make sense to use a Raspberry Pi as an email server when you can buy any one of a multitude of cloud hosted email products for your organisation? If it were me I would outsource my email every time and gladly pay for it, but for those who really need their email in house here's a tutorial describing a Raspberry Pi email server.
    Benefits of a Raspberry Pi mail server? Reliability, low power consumption, and complete control of your own email.
    Disadvantages of a Raspberry Pi mail server? Significant admin skills required to set up and run.
    Firewall: Here a Pi can undeniably do an extremely good job. Installing OpenWRT on a Raspberry Pi turns it into a very effective firewall. But yet again this is a feature offered at an almost commodity level by almost all domestic and small business routers. As with printer sharing, in business it pays to go for the easiest way to get what you need.
    Benefits of a Raspberry Pi firewall? Huge flexibility that may not be offered by an off-the-shelf router. Any protocol you want to run through it can be set up.
    Disadvantages of a Raspberry Pi firewall? Significantly more complex than an off-the-shelf router firewall, requires admin skills to set up.
    So there's a small business network with Raspberry Pi desktop machines and a Raspberry Pi file server, and all for Raspberry Pi prices. Network printing is probably better built into the printer, the firewall is probably best left to a commercial router, and email is a lot less hassle in the cloud. All that's missing from most business requirements is a business-level portable Raspberry Pi, maybe somebody's working on a professional laptop enclosure as I write this.
    The question is, would I have run my business on a network like this? Would I drop my nice modern laptop with dual boot Windows and Ubuntu to develop on a machine with a lot less speed? Probably not. But if my line of work didn't rely on raw computing power and needed instead some reliable document processing would I consider this as an alternative to a heap of Dells at several hundred quid each, a hefty Windows Server licence bill, and an ongoing relationship with an IT support company?
    I think I'd be silly not to give it a second look, don't you?