moving the conversation in the issue above to here:
@sauloperez wrote in the issue:
“Splitting our single servers into app server + DB server it’s something we’ll definitely do at some point but… Comparing implementing pagination vs. implementing a DB server, the former undoubtedly wins; it’s way quicker and straightforward. Besides, it has to happen sooner or later. Limits must be put on all endpoints.”
“what do you mean with “wins”?
in terms of estimation, implementing a DB server is a lot smaller, right?
pagination is something that will require UX, right?”
" > in terms of estimation, implementing a DB server is a lot smaller, right?
there is where I disagree. To me, it is incomparably harder and longer (by few orders of magnitude ) than implementing pagination, which requires moving some logic from the frontend to the backend, let’s not forget. And with pagination I mean http://ui-patterns.com/patterns/Pagination.
With my far-from-perfect sysadmin skills these are the steps I foresee this would have:
- Buying a new DB server
- we can do it as we do now, one for each instance
- we can move towards the single-instance and buy a single one that hosts multiple DBs for now. This makes it even harder as nothing on ofn-install is thought for it and we’ll need a thorough investigation first.
- Creating a bunch of new ansible roles to provision a DB server
- Refactor ofn-install to treat app server and db server separately
- Defining a strategy to migrate all current instances to the new DB + app server set up.
- Refactor ofn-install and the database.yml to allow setting a different DB server
- Provision all instances for the changes to take effect
- Deploy all instances for the app to connect to a different DB
there might be more though.
Also, the sysadmin processes are one of our weakest points where we’re still taking our first steps. Just think of how long is taking us to set up Datadog or provision and deploy all instances, as an example.
I believe we’re not ready for such big change on the infrastructure. Many things need to happen at organizational/processes level for a change like this to not take several months and end successfully.
However, I do think having a separate DB server it’ll be the next infrastructure change on OFN, but just not now."