0

Currently i'm working on a small platform with a simple client-server model and will soon go in a closed beta with a launching customer.

In essence it's an Electron application which is mostly used for logging in, and fetching files/information from a simple PHP+MySQL backend with some other related functionality regarding those files.

One of the requirements is that it needs to be able to update. Now i have been able to update the application itself trough Amazon S3, which actually works quite nicely. But here is where i run into some problems.

Some clients in the future, might object to the backend that we provide, and want a 'copy' of our backend to use for their own users (hosting accounts, files that they use etc. even though we are the ones providing those files and end-users not having any direct access to it.).

This objection will come from a security and control standpoint. I however, will have no access (obviously) to these servers directly.

What is an acceptable manner of releasing updates for these backends? ( which will be PHP files and changes in the form of queries to the database). Also, i might not want to release a new 'client' version while some users still use a deprecated on-premise backend.

ANY helpful information is very welcome, since i'm a jr. softw. engineer and 'one-man-army' in a small company. Please ask questions if it helps in giving answers.

1 Answer 1

1

Introduce versioning

Not a nice situation. I guess the answer is explicit versioning.

You will need to be explicit about which version of the backend your frontend requires. And the frontend must either support at least two versions of the backend ("current" and "previous") or you must operate and support two versions of the frontend (one for current backend, one for previous). Many small changes to the frontend are not a problem, but changes requiring a different backend are.

The backend operators need to accept that once their version has fallen back to be "previous" they need to update soon, before it becomes "previousprevious" and the application breaks.

Something like this. Sounds like difficult negotiations to me.

1
  • First off, thank you for your answer! That's definitely a big part of handling this situation. For now, i will implement versioning in the front- and backend of the platform. In this way i can point the frontend to a particular backend version. When the time comes, i will still have to find a way to encapsulate backend updates and distribute it to one of our partners. Would you have any suggestions any way to do this? At this scale i can imagine an update consists of a folder with the backend version, and an SQL file which will make the changes to the database? Jan 17, 2019 at 11:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.