Search code examples
deploymentcontinuous-integrationagilecontinuous-deployment

How to manage app updates for multiple clients?


I have an app that will be sold to multiple clients.

My main concern is:

If a bug is found in my app, and I have fixed the bug in one of my clients' app, how can I automatically apply the same fix to all clients, let say 1000 client?

Edit:

Let say my app is a restaurant app, I sell it to multiple restaurants each has their own backend, app store account. Just the colors, logo are different. The code is the same.


Solution

  • You describe a very challenging requirement.

    Here are some suggestions:

    Componentise your application

    Try and build your application as components. Some components will be custom for each client, but hopefully the majority of components will be generic.

    This should make it easier to do an update as you only need to release the components that have been impacted by the bug.

    Build an automated update mechanism

    Build an automated update mechanism. Build this in to all your applications so that updates can be pushed out to all your clients.

    You may also be able to find a proprietary automated update mechanism available off-the-shelf.

    Run continuous integration for all the versions of your application

    A major challenge will be to ensure that each bug fix does not introduce other bugs into the many versions of the application. The best way to do this is to have a suite of automated regression tests that cover the most important functionality in your application. Configure continuous integration so that each and every version of your application is built and then tested.

    This should give you the confidence to roll out an update across all your client's applications.