DIY Appliances on the Web?

Or, My Enterprise is Appliancized, Why Isn’t Your Web?

I wrote a couple of posts a while back that covered task-optimized hardware. This one was about a system that combined Field Programmable Gate Arrays (FPGA’s) with a commodity CPU platform to provide the sheer number crunching performance needed to break GSM encryption. This one looked at using task-appropriate efficient processors to reduce power consumption in a weather predicting super computer. In these two posts I sort of accidentally highlighted two of the three key selling points of task-specific appliances, sheer performance and energy efficiency (the third is security). The posts also heightened my awareness of the possibilities for specialized hardware and some of my more recent explorations that focused on the appliance market in particular got me wondering if there might be a growing trend toward specialized appliances.

Of course, specialized devices have been working their way into the enterprise ever since the first router left its commodity Unix host for the task-specific richness of specialized hardware. Load balancers followed soon after and then devices from companies like Layer 7 and Data Power (now IBM) took the next logical step and pushed the appliance up the stack to XML processing. These appliances aren’t just conveniently packaging intellectual property inside commodity 1U blister packs, they are specialized devices that process XML on purpose-built Application Specific Integrated Circuits (ASICS), accelerate encryption / decryption in hardware, and encapsulate most of an ESB inside a single tamper proof box whose entire OS is in firmware. They are fast, use a lot less power than an equivalent set of commodity boxes, and are secure.

Specialization is also showing up in the realm of the commodity database management systems. At last year’s Money:Tech Michael Stonebraker described a column-oriented database designed to speed access to pricing history for back testing and other financial applications. In this case the database is still implemented on commodity hardware. However, I think it’s interesting in the context of this conversation on specialized computing because it speaks to the inadequacy of commodity solutions for highly specific requirements.

A device from Netezza is also targeted at the shortcomings of the commodity DBMS. In this case the focus is on data warehousing, but it takes the concept further with an aggressive hardware design that is delivered as an appliance. It has PostgreSQL at its core but it takes the rather radical step of coupling FPGA’s directly to the storage devices. The result, for at least a certain class of query, is a multiple order of magnitude boost in performance. I think this device is noteworthy because it puts the appliance way up the stack and is perhaps a harbinger for further penetration of the appliance into application-layer territory.

While appliances are expanding their footprint in the enterprise, it seems like the exact opposite might be happening on the web? Maybe the idea of a closed appliance is anathema to the open source zeitgeist of the web, but in any case, the LAMP stack is still king. Even traditional appliance-like tasks such as load balancing seem to be trending toward open source software on commodity hardware (e.g. Perlbal).

I can’t help but wonder though, at the sheer scale that some web properties operate (and at the scale of the energy cost required to power them), can the performance and cost efficiency of specialized hardware appliances be ignored? Might there be a way to get the benefits of the appliance that is in keeping with the open source ethos of the web?

If you’ve ever uploaded a video to Youtube and waited for it to be processed you have an idea of how processor hungry video processing is on commodity hardware. I don’t know what Google’s hardware and energy costs are for that task but they must be significant. Same goes for Flickr’s image processing server farm and I would guess for Google’s voice processing now that its new speech services have launched. If the combination hardware and electricity costs are high enough, maybe this is a good place to introduce specialized appliances to the web?

But how to do that in a way that is consistent with the prevailing open source ethos and that still lets a firm continue to innovate? I think an answer might be sort of DIY writ large; a confluence of open source and open hardware that works like an undocumented joint venture based on the right to fork. Think Yahoo and the Hadoop community or JP Morgan and friends with AMQP but with hardware and you get the idea. Such a community could collaborate on the design of the ASICS and the appliance(s) that hosted them and even coordinate production runs in order to manage unit costs. Perhaps more importantly, specifying the components openly would serve cost sharing across these companies while still supporting flexibility in how they were deployed and ultimately, generativity and innovation for future uses.

There are probably a bunch of reasons why this is just silly speculation, but Google’s efforts with power supply efficiency might be seen as at least a bit of precedent for web firms dabbling in hardware and hardware specifications. In fact, Google’s entire stack, from it’s unique approach to commodity hardware, to software infrastructure like GFS, might be thought of as a specialized appliance that suits the specific needs of search. It’s just a really really big one that “ships” in a hundred thousand square foot data center form factor.

tags: , , ,
  • Stefan Constantinescu

    Hopefully these type of specialized functions can be written in software for Intel’s next generation of processors.

    Check out this article on Anandtech, and I know it talks about gaming, but a programmable processor is a programmable processor:

  • Tim Cullen

    FYI (and FWIW), it looks like the iPhone is doing the voice processing (not google’s servers) as the phone is only POSTing a small chunk of data:

    It seems that they made a tradeoff between building their voice dataset and fast responses over the EDGE/3G/802.11x networks.

  • Jim,

    In terms of consumer tech I have been waiting for a “web appliance” – a “gadget” that I can buy, just turn it on and get on the web without having to install this, patch that etc.

    Smartphones are the closest I can find for this – your usual netbook, PC or even Mac still has too much for the non IT person to deal with to turn up, turn on and surf.

  • A while back I was researching possibility of creating specialized hardware for some innovative use of voice recognition for hearing impaired people.

    I noticed communities like and during my research.

    Are you suggesting something different?

  • Jim Stogdill

    Thanks for the comments…

    Stefan, interesting article on extending Intel’s processors. I seem to have lost the link but someone recently pointed out some similar articles about making super computing more generalized by placing FPGA’s directly onto the processor (simpler to program).

    An approach like this seems like it would improve performance for specialized tasks like codecs compared to a current commodity stack. I guess the question is, how much compared to a specifically designed ASIC (and at what relative power consumption). Interesting… thanks for pointing it out.

    Tim – thanks for pointing that out. Great thread of comments.

    Martin, maybe you want one of these:

    Tahir – great links. Thanks. I was thinking something quite a bit like that, but I was specifically thinking about ASIC designs for the pure performance and efficiency aspects. Also, I was thinking that the entire device design to implement a specific codec in appliance form would be part of it.

  • I think you’ll start seeing specialized, open source hardware as the emergence of desktop manufacturing progresses. There’s some real opportunities there to make hardware as fluid as writing software, and furthermore decentralizing the production of commodity hardware to boot.

  • joe

    i think hardware is less important then good free/open source development tools.

    you can see it in the case of GPUs. while the hardware exist and is affordable , you see very little open source codes for it.

    in the fpga arena , if there exist a free , and simple dev tools , that will lure people to fpga development , affordable hardware will come automaticlly.

    but free tools(or maybe low cost tools) like star-p , the software behind “convey computer” , avalda f# , and jacket from accelereys could really make a change in open souce applicances.

  • Jim Stogdill

    Stefan, this is the link I was thinking of the other day:

    Joe, I think that’s a great point and is analogous to the point made in the link above; the winner is the one that is easy to program.

    I met with a company today that builds highly specialized hardware for image processing and they are looking at open sourcing the code that controls the hardware; sort of like a middleware for tying a CPU to FPGA’s etc. In my post I was focused on the designs of the specialized chips, but it’s probably more about the tools and “middleware.”

  • About programming these devices, an interesting question is the possibility of reutilization existing software.

    For example, in media appliances, I have a Popcorn Hour devices, capable of playing HD content. It is based on an specialized hardware (Sigma Designs SMP8635), but they have compiled a linux kernel and lots of other components.

    They have reutilized a lot of software with the advantage of using specialized hardware.