ambuda-org/ambuda

create a staging environment

Opened this issue · 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

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