shetaye / swish

A human-first video platform.
0 stars 0 forks source link

Create Seperate Dev and Prod environments #25

Closed shetaye closed 4 years ago

shetaye commented 4 years ago

The Swish backend (and later frontend) will require a logical (or virtual) separation between production data. To do so, all services used must be namespaced into separate environments.

Algolia: Algolia supports separate indices. One index will be made for each environment, and upon startup, the application will specify a different index ID depending on the loaded environment.

Mux: Mux supports separate "environments". Mux environments act as separate namespaces for all their video resources. One Mux environment will be made for each environment, and upon startup, the application will choose the correct API credentials depending on the loaded environment. This also means there will be different webhook secrets, so 2 event pipelines are needed.

CDN: Google Cloud Storage has separate buckets. One bucket will be made for each environment, and upon startup, the application will choose the correct bucket ID depending on the loaded environment.

Database: While Google Firestore does not support any native namespacing, I can create my own by prefixing. Collections will be prefixed so the application can choose where to look for resources depending on the execution environment.

(From GitLab)

shetaye commented 4 years ago

Closed since it was completed a while ago.