I am trying to plan my home lab to satisfy two different needs:
- I want a stable environment where I will put a relatively expensive NAS and maybe some other Zima boards.
- I also want to try new versions and configurations in an env where I can break stuff BEFORE trying things on my Production environment. I would also like to use that environment to try other things like playing with Kubernetes, Docker, Iceberg, etc. I am a backend software engineer so this is very useful to me. Besides being fun.
So, I am just trying to gather ideas on how to configure this both in terms of software and hardware.
Why would you only need a NAS in one environment? If everything is otherwise the same, and the function of the NAS is just hosting a similar service integration with less actual binary object data, then you make that same integration point available point in both environments to be able to test that portion.
If this is just homelab stuff, you don’t need two environments like this, you just need a way to switch contexts and rollback between two places. This is not what staging environments are for.
No. I really need Production to be stable because other people will be using it. And I do not want my own playing around to cause issues.
I am really considering both @slazer2au@lemmy.world idea of a smaller NAS from the same company and @Zachariah@lemmy.world idea of just creating a new volume in the same NAS.
If you’re very concerned just have your prod environment and kick up test services in docker containers and test your tweaks and changes there.
Doing this ad-hoc will be easier and more practical than trying to maintain two full environments like you’re a series B startup finding it’s feet!
That will have a host of other issues that is not super fluid to work with while trying to maintain similar environments. Most notably the networking.
If this causes networking issues, your setup is already too complicated to manage through a flat set of docker containers. That’s not a bad thing, this just isn’t the horse for that course so to speak.
Not causing network issues, but for a layman that isn’t familiar with managing multiple environments already, controlling a multi-env containerized environment is going to be a nightmare if solely just using containers as a staging environment. It doesn’t map to what his prod env (non-container) would be, and it’s not going to catch problems which would arise from his prod environment anyway if looking at from an integration standpoint.
Identical or very similar set up for production and testing. Testing doubles as on site back up for me.
Oh… That sounds risky!
But, with no experience doing it, I may be missing something.
Have you had no issues with this approach?
Depends entirely on what “Production” means. In a corporate environment it means something completely different from a homelab
If you’re doing this for real, you’d have two identical environments.
If it’s playing with Docker or Kubernetes, you don’t need anything more than a VM with Linux and Docker.
If you want to get serious, you can also set up a sandbox on EC2.
cheaper NAS by the same company
populate it with only 1-2 drivesGood point. I need to consider doing this to make troubleshooting easier.
Also curious if someone had any RAID related issues. Which you will not catch with a 1 or 2 disk NAS since you cannot have RAID 5 there.
Seems pretty unlikely that any testing would depend on the RAID level. That should be transparent to 99% of things you’d do. But you should be able to predict when it does affect something.
I would make a new volume on the nas for testing purposes. Give it enough space to hold some data but no where near enough for your production data.