reach4help / covidhelphub-backend

MIT License
0 stars 1 forks source link

Choose a deployment environment (backend and frontend) #6

Open puzzledbytheweb opened 2 years ago

puzzledbytheweb commented 2 years ago

We need to take into consideration developer time, as well as security. A solution would be to use something like Heroku but then, if we use a managed database service we'll need to make our IP allowlist open to the whole internet (very unsafe!!)

If we go to something like EC2 instances we'll have a lot of power of choice but a lot of hassle to maintain.

I'm thinking about Serverless since we'll get the environment set up for free, while having nice infrastructure as code. (Need to check the IP stuff)

Another idea would be Terraform, but this is a bit more granular and takes a bit more time/expertise to maintain.

edmkitty commented 2 years ago

The Maps project is using Firebase, which could be an option. Terraform by itself is not an option for deployment, it merely manages your infrastructure as code but still needs a provider (AWS, Azure, etc). Do we have access to an AWS account? There are many different ways to deploy in AWS, but if we don't have a Reach4Help AWS account, then it may not be a reasonable option.

edmkitty commented 2 years ago

For static websites, Github Pages could be an option for the frontend.

edmkitty commented 2 years ago

I looked into Serverless a little bit. It looks like it also is not a deployment environment, but it only helps manage your deployment code. I was reading this part of the docs: https://www.serverless.com/framework/docs/providers/aws/guide/credentials/

The Serverless Framework needs access to your cloud provider account so that it can create and manage resources on your behalf. This guide is for the Amazon Web Services (AWS) provider, so we'll step through the process of setting up credentials for AWS and using them with Serverless.

Meaning, we would need an existing AWS account (or some other cloud provider) in order to use it. However, the Serverless configuration looks like a very simplified wrapper over terraform, which is good. I think the barrier of entry on this framework is pretty low and will be easy to modify for beginners and people who don't know terraform.