First, it’s a $35 quad core ARM hardware with 1 GByte of RAM, called “Raspberry Pi 2”, running UBUNTU.
Then it depends, what YOU want it to be:
It can be a CEPH storage brick:
Connected to a Gbit Switch, then several Raspberry Pi 2 100 Mbit network connectors add up to a super fast storage system with parallel download to your client machines.
Then it can be a server:
Web, FTP, SMB, NFS, #OwnCloud, database ….
It can be a “Snappy Server”
“Snappy Servers” are normal Linux servers, but configured a little bit different: You can install and run Redhat, SuSE, Debian, Android Linux distributions in parallel, totally independent from each other. In only 1 GByte RAM? Yes, thanks to #LXC and KSM (Kernel Samepage Merging). Running on one “brainsplit” Linux kernel, multiple, identical binaries only are stored once in RAM. Clever, isn’t it? It’s an old UNIX feature!
It can be your desktop computer:
What? With only 1 GByte? Yes! Linux isn’t wasting so much resources, compared to Windows. Absolutely sufficent for home and business use.
It can be a terminal server:
AMD 8350 with 8 cores and 32 GByte is about $500. But you can run easily 50 terminal clients on it, thanks to KSM. #Citrix like. You even can run Windows in a #KVM container on a 8350 server, accessing it via RDP from Raspberry Pi 2. Graphics output then gets redirected to your -> Raspberry Pi desktop!
It can be an external, accelerated 3D graphic card:
A Raspberry Pi 2 has a GPU, that is extremely fast. 24 GFLOPS. That’s on par with INTEL core i5 GPU. But only consuming 2.5 watts! See yourself: https://youtu.be/0j-Wakm5B84 Traditionally, in UNIX, you can redirect graphic output to other machines around the globe. So feel free to redirect it to a Raspberry Pi 2 on your desktop. Or to many Raspberry Pi’s at the same time, adding up to a giant screen. You only need to type in 2 commands:
“#xhost +” and “export DISPLAY=IP:0.0” on the other machine.
It can be a compute cluster:
Many RPis computing power adds up. GPU can be used for floating point calculations, too. It’s open source.
It can be a storage cluster:
Using #CEPH, you can connect up to 4 external 4 Terabyte drives to each Raspberry Pi 2. Then 10, 20, …100 slow Raspberry Pis (only 100 Mbit each!) add up to an ultra fast storage system. IBM Tivoli class! A highly “Redundant Array of Inexpensive Servers”!
It can be a FIREWALL:
Add a second 100 Mbit (or Gbit USB 2.0, limited to 222 MBit then!) network adapter, install your firewall GUI, that’s it! Firewall itself is sticking in the Linux kernel by default.
It can be a (MESH) ROUTER:
Add 2, 3, 4 WLAN adapters, install #OpenWRT, activate B.A.T.M.A.N. protocol, and you have a zero admin fully automatic, highly redundant #MESH ROUTER! Unlike #CISCO protocols, B.A.T.M.A.N. protocol scales up to tens of thousands of nodes. See #Freifunk – project in Google.
It can be a “silent, transparent proxy” to save bandwidth:
Sometimes, in bigger companies, bandwidth to the internet can get slow. How about caching web pages? Typically, you simply set up a Squid caching proxy. For a “silent proxy” (such a thing, Akamai® is offering to Microsoft at e.g. “patch day”), users can’t notice, you cut provider cable in two pieces and put a “Raspberry Pi 2 silent web accelerator” in between. With a simple Linux kernel firewall command you then silently redirect all traffic to destination port 80 to Squid port 3128 on your Raspberry Pi: “# iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j REDIRECT –to-port 3128” That’s all. Happy (fast) surfing! Combine with MESH Router and firewall!
It can be a machine control unit:
With 40 external GPIO connectors it can be used to control all kind of machines, robots, drones, … Even realtime OSes are available for RPi. 50 microseconds resolution. With camera connector and free image recognition included: #OpenCV.
Finally, It can be a “training and testing machine”:
Since UBUNTU on RPi 2 is absolutely identical to UBUNTU on big XEON iron, you may silently check out any possible configuration for final use on really big machines.
And now best: If you haven’t even the slightest idea howto configure all that on your UBUNTU machine, you might use #JuJu.
You just tell your machine, what YOU WANT IT TO BE, and everything else is done by automatic scripts, written by experienced UNIX admins.
Thanks for reading!