Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deploy what we have and setup workflow for deployments #62

Open
tarikeshaq opened this issue Nov 24, 2020 · 0 comments
Open

Deploy what we have and setup workflow for deployments #62

tarikeshaq opened this issue Nov 24, 2020 · 0 comments
Assignees

Comments

@tarikeshaq
Copy link
Collaborator

As the term is wrapping up, one thing I would like us to do is deploy whatever we end up with.

Things that need to be deployed:

  • The database
  • The web server
  • The extension (We can get this onto the chrome store once it's ready, shouldn't be too much to worry about)

The database

  • Mongo Atlas:

    • Pros:
      • Well it's run by mongo...
      • All we need is modify the URI and we are done
      • We get $200 as students
  • Deploy a docker container containing the mongo database

    • Pros:
      • We can use any service we want (i.e Aws, GCP, Azure)
      • Most similar to our development environment
    • Cons:
      • Not sure about the cost... but we probably get free credits from those services. That said deploying docker containers can sometimes get expensive (well usually not, unless we wanna get fancy about it)
  • Use a cloud service that is similar to Mongo, i.e GCP's firestore

    • Pros:
      • We can choose one that works best with where we deploy the web server, for example, firestore credentials are managed automatically if we deploy on App Engine
    • Cons:
      • We will need to change code to work with that new service.

The web server:

  • "serverless", like AWS Lambdas and GCP's App Engine

    • Pros:
      • Pretty much the best option for pricing, it scales with usage, and we get a decent buffer where it's free
      • No need to worry about the internals of deployment, usually it's one .yml file and one CLI command and we are done
    • Cons:
      • Depending on where we deploy, we might need to slightly modify code to be the format the service expects it
  • AWS EC2, or virtual instances:

    • Pros:
      • We get full control over the environment if we need to do something fancy
    • Cons:
      • Might need a decent amount of setup and config to make sure service is up, DNS is working etc
      • Usually a flat fee, and we can choose to scale it manually (or automatically)

CD:

Whichever approach we take, we'll want to make sure it's deployed continuously. We can setup a Github Action for that, we can talk details once we come up with an approach.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants