(Sim series Pt.1) New project: What to build on a Raspberry Pi cluster using docker?

Thinking of a good project to work on can be hard, with the new Raspberry Pi 3 Model B+ out, I decided to order myself some and start building. However, to make the dopest cluster in the galaxy I proceeded to also buy 2 Asus tinker boards (2GB memory), 5 rock64 boards (2GB memory) and a boatload of network equipment/power banks and other accessories. Check the end of this post for hardware details.

IMG_20180327_132454326
IMG_20180327_163452363

With all of this hardware turning up to the door and no idea what to build I spent a few days penning ideas on various forms of paper. Eventually this bare fruit into what I will now call to all intensive purposes: fuzzy-umbrella

The idea

A distributed world simulation.

  • Countries
  • Regions
  • Cities
  • Towns
  • Streets
  • Buildings
    • Value
    • Ability to buy and sell
  • People
    • Homes
    • Assets
    • Wealth
    • Health
    • Actionable
    • Trade with others
  • Finance
    • Banks
    • Transactions
    • Currencies
  • Weather
    • This effects actions that people take and cause changes in the economy
    • Based on real-world data
  • Time
    • This will be managed by a central controller
  • Government

This is a basic outline of areas I would like to include within this simulation. This could turn out to be a snail simulator but hey ho...
With a wide range of elements within this simulation, it should allow me to delve into parts of Go that I've never used before.

Next steps

Getting a flavour of Debian installed on each of the boards. Then I'll be focusing on getting a prototype together with each of the core components. This project will be written entirely in Go, this is because it has great packages for distributed systems, it compiles to ARM, and it's fast.

Hardware

  • 3 x Clear acrylic 5 layer Pi 3 cluster case (Amazon UK)
  • 12 x Samsung 32GB Evo+ Micro SD (Amazon UK)
  • 20 x Cat6 50cm ethernet (comes in packs of 5) (Amazon UK)
  • ORICO Powered 10-Port USB (Amazon UK)
  • 10 x ULTRICS® Micro USB Cable (Amazon UK)
  • RAVPower 60W 6-Port USB Charging Station (Amazon UK)
  • Dynamode 6-Way Horizontal 13A Switched 19-Inch Power Distribution Unit with * Surge Protection (Amazon UK)
  • 22u server rack (Amazon UK)
  • 19” vented shelf for the rack (Amazon UK)
  • NETGEAR GS324-100EUS 24-Port Gigabit Ethernet Rackmount Switch (Amazon UK)
  • 5 x Raspberry Pi 3 Model B+ (Pimoroni Ltd)
  • 5 x Rock64 board 4gb memory (PINE64 store)
  • 2 x ASUS 2 GB SBC Tinker Board (Amazon UK)

Software Stack

  • Go
  • Docker
  • Docker compose
  • Docker swarm
  • Debian (various flavour)

I’m going to try and blog this project in bitesize chunks (every ~2-3 days). The code and orchestration files will be available at https://github.com/rdcx/fuzzy-umbrella

All of this is subject to change

Stay groovy.

Show Comments

Get the latest posts delivered right to your inbox.