That is a valid point that 2GB ram SBCs do have a limits. I haven't yet reached that limit with any of the existing test servers (currently Odroid XU3 boards) but as I add more apps/services to the new Odroid HC1 boards (which also have 2GB ram) I may eventually reach that limit.
If I do reach a limit I can't deal with I will look into other options such as potentially using a normal PC/server. In that case I'll repurpose the HC1 boards for something else. There's plenty I can do with them.
I have a beefy desktop here which I'm considering setting up as a test server. 8 core 4.7ghz processor, 16gb ram, 250gig SSD (I might upgrade that at some point to a faster 1tb SSD), and a 2tb normal sata HD. Its power consumption is massive compared to that of these tiny SBCs, and because it's powerful, and runs quite warm, it has so many fans it roars when running at full capacity, and it's a giant vacuum cleaner sucking in dust which needs to be cleaned out regularly. So I need to sort out the dust before I turn it back on. I recently made a big dust collector which could help with that. Even sticking it in a cupboard with fans and filters on the outside could help with dust and noise.
Once I run some speed tests to compare I may decide it's worth it if tests run significantly faster, or if I find 2GB ram isn't enough.
One advantage of these little SBCs is I can easily run them off my solar batteries without needing an inverter and without draining the the batteries too quickly (soon to be set up once I get these infrastructure upgrades up and running). So I can pretty much guarantee uptime even during a blackout.
The solar setup will not only mean most of the infrastructure is running from solar power, cutting my power bill, but it can act like a UPS (once I implement some new solar/power related devices I'm created for the JuiceIoT project group to handle switching between mains and battery depending on battery level or whether there's a blackout).
I can even run my modem off the batteries and considering I'm on fibre broadband it should mean a blackout doesn't have any impact on the infrastructure.
Another advantage of the SBCs is they're silent. I like it when my lab doesn't sound like a buzzing/roaring data center, but the noise may be worth it if I see significant speed improvements in tests.
Yet another advantage of these SBCs is that I can fit maybe 30 or so of them into the same space my desktop. Considering space in my lab is limited that's quite useful. I'm stacking them into drawers in my network stack so I can have an entire server farm of SBCs taking up roughly 2 feet by 1 foot of floor space, which is nothing. My desktop has a larger footprint than this entire network stack (admittedly the network stack is much taller). By adding another stack on drawers on top of this existing stack I could probably fit 100 SBCs taking up that same tiny amount of floor space.
Being limited to ARM distros hasn't been an issue yet I'm actually getting fairly used to them. Actually lately I'm more used to them than normal OSes because I've used them for a few years now including on my Odroid XU3 workstation. There's not much I can't do on an arm board so I'm yet to find it a problem.
And considering the target for all this software is arm boards like RPis, using arm SBCs for most of the infrastructure can be a bonus. For test servers it means I can build arm based docker images on my build/test servers.
My Odroid XU3 boards have been using the official Ubuntu 16.04 OS provided by HardKernel (version 18.04 has too many instabilities installing certain software).
I'm currently trying out DietPi for the Odroid HC1 boards due to its low resource consumption. If DietPi can't do what I want I'll try armbian stretch (debian based, which is faster and more stable than ubuntu based OSes).
I'm currently running armbian stretch on my new Odroid N2 workstation and it's very fast and so far is difficult to max out the 4gig of RAM considering armbian and the apps I use are fairly lightweight.
For my docker containers I tend to take inspiration from existing arm based images then create my own images which are arm compatible.
While DietPi looks appealing due to its low resource consumption (esp the RAM) I'm still setting it up and I won't know for a little while whether I'll run into any software issues.
You definitely have some good points there and I may at some point take your advice. But for now I just got 3 Odroid HC1 boards with SSDs so I'll see how far I can push them. They should be enough for what I want but yes in the future it might be worth using a desktop/server type PC. I just have to weigh up the pros and cons.
For $300 I could almost buy 2 Odroid HC1s (depending on what size SSD I get). So it may be that distributing over multiple HC1s can provide better value for money than a single desktop/server type PC. As well as providing redundancy by having multiple HC1 boards mirroring each other so if one goes down the others can take its place. Until I do some performance comparisons, or I run into limits with the 2GB RAM, I won't know whether it's worth it. But I'll get there at some point and find out.
Thanks for the suggestions I'll post to the group if I run into any issues or limitations using these arm SBCs.
Hopefully I'll also be able to post about the benefits of GitLab over Jenkins at some point once I test it out.
Cheers,
John