Introducing the Dramble - Raspberry Pi 2 cluster running Drupal 8

I've been tinkering with computers since I was a kid, but in the past ten or so years, mainstream computing has become more and more locked down, enclosed, lightweight, and, well, polished. I even wrote a blog post about how, nowadays, most computers are amazing. Long gone are the days when I had to worry about line voltage, IRQ settings, diagnosing bad capacitors, and replacing 40-pin cables that went bad!

But I'm always tempted back into my earlier years of more hardware-oriented hacking when I pull out one of my Raspberry Pi B+/A+ or Arduino Unos. These devices are as raw of modern computers as you can get—requiring you to actual touch the silicone chips and pins to be able to even use the devices. I've been building a temperature monitoring network that's based around a Node.js/Express app using Pis and Arduinos placed around my house. I've also been working a lot lately on a project that incorporates three of my current favorite technologies: The Raspberry Pi 2 model B (just announced earlier this month), Ansible, and Drupal!

In short, I'm building a cluster of Raspberry Pis, and designating it a 'Dramble'—a 'bramble' of Raspberry Pis running Drupal 8.

Motivation

I've been giving a number of presentations on managing infrastructure with Ansible in the past couple years. And in the course of writing Ansible for DevOps (available on LeanPub!), I've done a lot of testing on VMs both locally and in the cloud.

But doing this testing on a 'local datacenter'—especially one that fits in the palm of my hand—is great for two reasons:

All networking is local; conferences don't always have the most stable networking, so I can do all my infrastructure testing on my own 'local cloud'.

It's pretty awesome to be able to hold a cluster of physical servers and a Gigabit network in my hand!

Lessons Learned (so far!)

Drool... I own these!

Building out the Pi-based infrastructure has taught me a lot about small-scale computing, efficient use of resources, benchmarking, and also how Drupal 8 differs (spoiler: it's way better) from Drupal 7 in terms of multi-server deployment and high-availability/high-performance configurations.

Since I have this nice little cluster of Raspberry Pis humming along using half the power of a standard light bulb, the sky is the limit! And the fact that the servers are slower and have different performance considerations than typical modern cloud-based infrastructure actually helps to expose certain performance-related flaws that I wouldn't have otherwise!

Finally, it helps me stay creative in finding ways to eke out another 50 KB/sec of bandwidth here, or 100 iops there :)

See the Dramble in person!

So why am I mentioning all this? Because I want to bring the Dramble with me to some Drupal events, and I'd love to share it with you, explain everything in more detail, and most importantly: demonstrate modern and easy Drupal 8 deployment with Ansible on it.

Comments

It would be really cool, if you can assign each Raspberry Pi with a LED, and light it up when a Raspberry Pi is processing one request. More particularly, when a client initializes a HTTP request, then first the load balancer LED lights up, then one of the Drupal heads lights up, then either redis starts blinking and/or database starts blinking (each request is one blink).

I'm new to your site and almost as new to the world of RPi. I just started coding in Python (mostly crawlers/ auto-plotting graphs via os.system, etc) and was wondering if you have good resources (links?) for someone interested in learning more about Drupal. I know I could google around, but I'd like to hear what an expert considers the best course of action.

I run Drupal 8 on the cluster for testing purposes, and the entire cluster of 6 Pis is still a little bit slower than one 2 GB RAM VM on DigitalOcean, or my i7 MacBook Air laptop running an Ubuntu VM... so no, it's not faster. But yes, it's great for educational/testing/fun purposes!

And it's not that it'd be terrible as a website hosting cluster, it's just that disk read/write is comparatively slow, the I/O is limited (couldn't handle large traffic spikes), and the Pi wasn't designed to be a forever-on high-performance device. Better to let it do less resource-intense tasks if you want to leave it running 24x7.