Forum Discussion
How to maintain versioning of backend services
We have developed a app for Microsoft teams and our first version was published on the app store. We are now working on the next version. However we are not sure how we have to submit the new version for team store review without impacting the existing users. For instance, some of our bot commands will behave differently in the new version. If we have only one backend instance running, when we submit it to store team for review we will impact the experience of existing production users as well.
Ideally we would follow a blue-green approach to release new features to selected customers, but in this case we are not really sure how and where to differentiate requests coming (mainly through bot communication, since we can add a app version header in web communication) from multiple versions of the app. We thought of creating new set of resources (app registration, bot channel registration etc) on Azure portal but I guess that would be treated as a new app and not a version update.
Any ideas or pointers on how to achieve this would be of great help.
3 Replies
- timkindworksaiCopper Contributor
Hey nagamanoj,
I was looking for an answer to this for a few hours and had a hard time. For anyone else looking at this.If your app is published on the App Store, then you do not need to track which version of a manifest a user is currently on. This is because the installed app is updated for all users within a few hours of any new manifest upload being approved. There will not be multiple versions of the app in deployment, only the most recent (and perhaps some instances of the version before most recent).
So, for backwards compatibility, so long as you maintain backwards compatibility of your backend for 48 hours, then you should be in the clear with regards to supporting users through a new version release. Just upload the new version, and all your users will be moved onto that. I'm using 48 hours here to be roughly-safe, as documentation says the update should occur within a few hours.
You can find this information in the Manifest Schema under the 'version' attribute.
https://learn.microsoft.com/en-us/microsoftteams/platform/resources/schema/manifest-schema#version
nagamanoj, I understand that for your case, you were changing bot commands. For existing commands you can blue-green the new functionality in the backend. For new commands, all users will be able to use those as soon as they're released, there's not a good way to blue-green those. You'd rather ensure the functionality is robustly tested via another approach before the app update is released.
Hope this helps those looking! - Prithvi-MSFTFormer EmployeeHi, we are looking into it and will get back to you
- Prithvi-MSFTFormer EmployeeHi, You can create new app registration, with new bot and change the app version in the manifest and submit the updated manifest for review. If you do not want the new version to affect existing services, you can create a new set of resources for the new version submitted.
Thanks