ambuda icon indicating copy to clipboard operation
ambuda copied to clipboard

create a staging environment

Open kvchitrapu opened this issue 2 years ago • 6 comments

Requirements

Same as production

  1. Infra
    1. OS: upgrades, rollbacks
    2. Storage types (block, fs, s3)
    3. Network config (ntp, dns, fw rules, ports)
  2. Packages
    1. Versions and dependencies
  3. Deploys
    1. Github parameters (if any),
    2. Deploy, Uninstall, and rollback
  4. Cloud services: GCP (for Cloud OCR), AWS (for S3 backups)
  5. Management console to administer users access, OCR, and other backend tools

Need not be the same

  1. System Resources:
    1. Memory, CPU, Network capacity, storage capacity
  2. SEO not configured
  3. 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

kvchitrapu avatar Sep 09 '22 20:09 kvchitrapu

@akprasad what cloud environment are you currently using, again? Shall we use the same one to deploy staging in?

epicfaace avatar Sep 10 '22 01:09 epicfaace

@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?

akprasad avatar Sep 10 '22 02:09 akprasad

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.

kvchitrapu avatar Sep 10 '22 12:09 kvchitrapu

@epicfaace, @akprasad, please review and update the above spec. I put a generic spec as a starting point.

kvchitrapu avatar Sep 10 '22 12:09 kvchitrapu

@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

akprasad avatar Sep 10 '22 18:09 akprasad

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.

akprasad avatar Sep 10 '22 18:09 akprasad