In part one of my blog about using Raspberry Pi’s in your enterprise environment, we covered some basic uses such as ticketing systems, front desk display systems, and other simpler solutions to what would otherwise require a full-sized desktop using significantly more electricity. Today, we’ll talk about how an organization would go about transitioning from your traditional enterprise blade rack mount server to a Raspberry Pi and we’ll also talk about Pi clustering and their use cases in load balancing.
The Raspberry Pi can be a great replacement for a web server, using the Raspbian Lite image that runs entirely on the command line. It’s supported by the Raspberry Pi foundation and is based off the Debian Linux distro which is what Ubuntu is based off of. In addition to having a Debian solution, CentOS has produced an ARM distribution for the Raspberry Pi models 2 and 3. If your architecture is using Ubuntu server, moving to Raspbian will be the best solution, and if moving from CentOS, you should find few issues with the CentOS image for Raspberry Pi.
Start your server
The first thing you’ll want to do is set up your OS images and ensure they’re all on the same subnet. From there, set up your web server (Apache/NGINX) and configure your environment the same way the production environment is set up. It’s important to have proper cooling for the Raspberry Pi as they have no fan for air-cooled control. A great example of a rack design can be found here. Another fun example can be found here.
Once your OS’s are installed and updated, you’ll want to recreate your production environment on the Raspberry Pi. Because the architecture of your blade server will be different than the ARM architecture, there’s no easy way to just create a cloned image and import it. It will take a while, but it’s important to do load testing to ensure your new cluster can handle the work load. Using tools like Apache bench will aid you in finding out your thresholds on the Raspberry Pi.
You’ll likely use one of your Raspberry Pi’s for DNS and LDAP as those are fairly small impacting services that you can set up on the Raspberry Pi. Load balancing is another use case to help alleviate stress on your web application. You can use modules like mod_proxy_balancer and mod_cluster to create an environment that allows you to use nodes as needed. With Docker and Puppet being so popular these days, you could also set up a Raspberry Pi to be your Docker or Puppet Master host.
The development team over at HypriotOS has set up a guide on how to get started with Docker and the Raspberry Pi. You will find a similar guide for Puppet over on Standard Out, but note that it’s slightly dated as of this writing, and according to the article, Puppet is now part of the Raspbian repos. For big data clustering, you will find this guide on setting up an Apache Spark cluster to be of great use.
In conclusion, this cost-effective piece of hobbyist hardware has valid and applicable enterprise uses that any organization can make use of if they use a little bit of creativity and good ol’ fashioned open source software.