crowd-crunch / corridorcrunch-ng

next generation of the corridorcrunch tool, work in progress
0 stars 1 forks source link

Have a discussion on architecture #6

Open ngunia opened 4 years ago

ngunia commented 4 years ago

Blocked by #4 and probably requires a larger discussion.

Generally, I propose that we have a frontend app, a backend app, and a database, all running as separate services/VMs, depending on the selected cloud. No rush on this, but probably something that should be decided before the next puzzle.

Outcomes:

robot-o commented 4 years ago

so the current development setup works like this

however we also have a fully distributed configuration ready:

so in conjunction with the switch to git flow we have very solid footing for continuous delivery, one more thing that i want is automated database backup but that can be done with ansible very easily.

robot-o commented 4 years ago

oh and we probably also need to figure out how to share secrets within the organization because the decentral approach right now only works in a marathon setting where you always have people passing the proverbial discord-plaintext-password-sharing-torch

robot-o commented 4 years ago

cc @Sannemen

ngunia commented 4 years ago

Agreed on the secrets management, but I think that's something to discuss once we have selected a cloud provider. If AWS, their secrets manager probably is the least effort for the apps to pull secrets, and we can store references to the secrets as config.

If something else, we could spin up a tiny vault cluster/single node instance. This is something I'm extremely familiar with and could have ready to go in TF/Ansible.

I think overall I'm a little more concerned with the overall flow/fitting things together (10,000 foot view), and the individual services/app technologies can/should be another discussion. For example, I really would like to see the database run in our selected cloud's higher level solution or at least it's own VM, separate from the backend.

robot-o commented 4 years ago

agreed on getting a saas db for production BUT this is just for solving the puzzle, so i don't know if it's worth the money. feel free to hmu on discord so we can discuss this in more detail, i'll relay the results back here for transparency

Sannemen commented 4 years ago

Opinions based on my personal experience, not claiming to own the truth here:

For the infrastructure:

For the backend:

For the frontend:

kevrom commented 4 years ago

Flask or Node (Express) would allow me to be productive immediately, Go would require some ramp-up time for me (though I'm currently under pressure for my job to learn Go because that's what we use for our APIs). My preference will always be Node, simply because I am absurdly competent with it and its versatility is off the charts. All that being said, I'm a frontend dev by trade, and will deal with whatever we choose. :)

For frontend I think React is a no-brainer. I'd likely avoid using Next.js, unless we intend to use Node as the backend as well (and even then I think it's worth discussing).