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?
No issues and it's something I've done for a long time but it is adding extra overhead for a problem that using docker has largely solved for me re stable environments.
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.
I was not clear on why I wanted a production environment. The reason is that I want enough stability in it to be used by family and friends. Preferably without breakages. Immediate usages will be as shared storage, e-book management, game centre to run Minecraft for my kind who lives far away from me., etc. Also, the list of services I will make available in production will vary throughout time.
This is why I mentioned a NAS in production. So that the hardware storage just works. But, at the same time, I really do not have the budget to buy two similar NAS and test things in Sandbox.
I really get your point about having two different envs if I want to have perfect stability. But I was trying to figure out if I could make the Sandbox env a little bit less costly but go 80% of the way in terms of catching issues before breaking Production.
I may just buy a lower model of the same brand but lets see if other people suggest another approach.
cheaper NAS by the same company
populate it with only 1-2 drives
Good 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.
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.
Well the NAS itself isn't the integration point is what I'm saying, the data is, right? So have a folder on your NAS for staging, and another for production, and make the connection to that data the integration point that is accounted for in your dotenv or whatever you're planning on using to control this
The only downside there is the single point of failure being the NAS, but having two separated NAS boxes by environment won't solve for a production outage anyway because each environment still has a single point of failure even if you have two NAS.
Just get it running as above first. Figure out that actual breaking points in your flow after using it for awhile.
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.
I feel like that's a lot of assumptions based on OP's brief, but I don't disagree with anything you said.
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.
That is an interesting proposition. And it is a bit cheaper then buying a second NAS while still possibly catching many issues.
Have you done this, out of curiosity?
Self Hosted - Self-hosting your services.
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules
- No harassment
- crossposts from c/Open Source & c/docker & related may be allowed, depending on context
- Video Promoting is allowed if is within the topic.
- No spamming.
- Stay friendly.
- Follow the lemmy.ml instance rules.
- Tag your post. (Read under)
Important
Beginning of January 1st 2024 this rule WILL be enforced. Posts that are not tagged will be warned and if not fixed within 24h then removed!
- Lemmy doesn't have tags yet, so mark it with [Question], [Help], [Project], [Other], [Promoting] or other you may think is appropriate.
Cross-posting
- !everything_git@lemmy.ml is allowed!
- !docker@lemmy.ml is allowed!
- !portainer@lemmy.ml is allowed!
- !fediverse@lemmy.ml is allowed if topic has to do with selfhosting.
- !selfhosted@lemmy.ml is allowed!