Skip to content

Automatic deployments of backend #413

@mihow

Description

@mihow

Currently we share 1 environment & database for dev & staging.
The dev environment should auto-deploy the frontend & backend from the main branch
The staging environment should auto-deploy from a release
Production should be manually triggered, but only from a release that was tested on staging
Demo environment should mirror production (but with a set of demo data)

releases are tags in GitHub
releases are deployment by merging into a deployment branch
deployment/antenna.insectai.org
deployment/demo.antenna.insectai.org
deployment/app.preview.insectai.org

Estimate: 5 days
Calendar time: 2 weeks

Task set 0

  • Write up provisioning plan for servers, object store & databases on Arbutus & Beluga clouds
  • Setup production database & read replica
  • Configure Netlify for frontend
  • Provision demo.insectai.org

Task set 1

  • Provision all resources based on plan
  • Setup URLs & SSL certs (app.insectai.org)

Task set 2

  • Setup project in our shared TeamCity instance, or try GitHub actions for everything
  • Setup production & staging to auto-deploy from release tags on main (TeamCity & Netlify rules)
  • Setup dev to auto-deploy from any merge to main (backend, front-end does this already via Netlify)
  • Build containers on TeamCity in build job, publish to Docker hub account

Task set 3

  • Configure backup tasks in TeamCity or Github actions & test restores

Optional or future todos

  • Setup VPN between Arbutus & Beluga (try TailScale or WireGuard)

https://docs.netlify.com/configure-builds/build-hooks/

See additional todos here
https://docs.google.com/spreadsheets/d/1BytqZZ49ub1cqtQ9xbytAIryc90EZ1OXiUCWHdrBvgs/edit?gid=0#gid=0

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions