- Lui Crowie -
I have had multiple cloud instances for development which are good and you can get a cheap instance for $5 (get $100 for 60 days on DigitalOcean and support me), but that money racks up. You have to make sure you stop (or in most cases, delete) those instances so you aren't billed for something you aren't using. You might say "spend more" but is it really worth it?
Incoming idea... I thought i'd invest into my own server, this idea isn't new by any means but a great project to do! I chose to use Raspberry Pi's as if/when I get a dedicated rack I can then repurpose them for many other uses that I might want to run agnostic of the rack. The ROI for the initial costs will be months but I will have tangible assests for ever!
Note - ROI calculated to be ~ 5 months for 13GB of RAM and ~5VCPU processing power, after that just power costs which is about 12pence/day @ full utilisation and around 5pence/day at idle/medium workload
A Kubernetes cluster running all of my development and "prod" staging applications and services. It automatically scales, deploys, resolves and handles volumes across the 4 nodes. This is approximately the equivalent of 4 servers on a cloud provider. I have a Jenkins instance polling Github which handles all of the automated orchestration (building, tests, docker image creation, applying to kubes cluster, tagging etc.) from a push.
Also, when the cluster isn't in use, no SSH terminals have been opened or the utilisation of the individual Pi is less than 50% it will automatically spin up a custom-built miner image to mine a small amount of Crypto.
Some images of the final product;
Below is a list of all of the software used/running on the cluster;
Below is a list of all of the hardware being used;
A lot of scripting, from SD card burning, automating the whole setup of the instances for the worker and master nodes. A lot of configuration for it to all "talk nicely". Learning and understanding a lot of best practices for most of what I was implementing i.e. Dockerfiles.
Other things that I learnt was small low-level stuff like Kernel configuration and the pairing pattern of ethernet cables! I knew a lot of what I undertook before, but I went about implementing it in a secure, robust and best-practice manner which involved a bit of research and re-learning somethings that you might not have done in a number of months like parsing arrays in Shell!