create a staging environment
Opened this issue · 6 comments
Requirements
Same as production
- Infra
- OS: upgrades, rollbacks
- Storage types (block, fs, s3)
- Network config (ntp, dns, fw rules, ports)
- Packages
- Versions and dependencies
- Deploys
- Github parameters (if any),
- Deploy, Uninstall, and rollback
- Cloud services: GCP (for Cloud OCR), AWS (for S3 backups)
- Management console to administer users access, OCR, and other backend tools
Need not be the same
- System Resources:
- Memory, CPU, Network capacity, storage capacity
- SEO not configured
- Service secrets (cloud or other services) are specific per environment
Configuration
Cloud Env: Digital Ocean Droplet
OS: Ubuntu 20.04.4 LTS (GNU/Linux 5.4.0-113-generic x86_64)
Docker: not in production
@akprasad what cloud environment are you currently using, again? Shall we use the same one to deploy staging in?
@epicfaace I'm currently using Digital Ocean, which offers a generic Ubuntu box. It's probably best and safest to have a totally independent box, but that's also extra cost -- so it might be workable to just create a new staging user on the same machine.
What do you both think?
Yes, the extra cost gives us a stage to review and test PRs. This is standard s/w practice. If possible, we can dynamically spin this box down when they're no PRs in flight to potentially save costs.
@epicfaace, @akprasad, please review and update the above spec. I put a generic spec as a starting point.
@kvchitrapu updated:
- added machine specs
- removed transifex (I uploaded the
.pot
file manually, there's no programmatic connection to our repo) - added details on how we use GCP and AWS
One thing we should also consider is just using a service like render.com
-- we've received enough in donations that we can consider it.