
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-22-2022 05:54 PM
I thought I had read on a recent Developer post "as we move away from update sets...", and of course now I cannot find it. Does that ring a bell with anybody? I am training in my developer instance to help guide my team as we prepare for San Diego. The question is generic, is this the strategy, to use Github exclusively to administer and deploy developer team work product to a large existing customer instance that has been using update sets for many years? Or will it remain a hybrid choice for developer teams?
Thanks for your thoughts
Tim
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-24-2022 07:59 AM
Finally! A question I can answer!
TL;DR -> Update Sets have a place, but there are other ways to deploy things...
There are three ways to promote things to Production:
- Update Sets
- Application Repository
- Source Control
There are pros and cons for each depending on what environment you are in as well as whether you are updating something in Global or a scope as well as is this your app or a ServiceNow or Store app. (So many combinations!)
The opinions I offer here are my own based on my experience as a customer, partner, consultant, and employee of ServiceNow.
Update Sets
Update Sets have been around for a LONG time so the pros and cons are already documented everywhere. They are not going anywhere anytime soon and you can continue to use them to deploy code.
If you are still doing lots of work directly in the Global scope OR if you are making changes directly in a ServiceNow scope or Store scope, then you're going to be using Update Sets to promote your changes.
PRO TIP: Use Update Set batches, especially for Stories that span multiple App Scopes.
Source Control
Source Control was introduced many releases ago and has improved over the years. In Paris, a feature was added so that your app is not deleted before importing a new version from Source Control. This made it so that you could technically use Source Control as a deployment method to Prod if you wanted to.
While this might be possible, I would position it like this -> If you were writing traditional code (Ex. Java, C++), you would not deploy from Source Control directly to a Prod environment. You would package up your code into some kind of binary and declare a version to release. (Ex. v1, v2.2, etc.)
Having a packaged up binary version of your software makes testing and deployment easier.
If you want to "package" up a binary-like version of your app in ServiceNow you would publish your app in Studio to the...
Application Repository
App Repo is a gold-mine of a feature that has been around for years and is often underutilized or completely overlooked. It will NOT work in your PDI and will ONLY work in your company's instances so don't get frustrated when it is grayed out in your PDI.
I would refer to the diagram and Professional Developer Guide below to help demonstrate where you might use all three of these technologies when working on a scoped app or a Global application.
In the first box below "Dev 1 instance", you would either start a new app or import it from Source Control in the "App A Loaded" box.
During the "App A Teamwork" phase, an Update Set will automatically get created for each person working in that scope on that Dev instance. (See Application Collaboration and Delegated Development)
Once everyones Stories are completed for that Sprint (or halfway through), someone will commit that version back to a branch in Source Control. The branch will probably be named after the instance name. (Ex. "sn_instances/InstanceName")
Next, you would deploy this new version of the app (Ex. 1.1) to the App Repo using the "Publish" menu item in Studio.
Next, you would go to your QA environment and go to "My Company Applications" where you would install or upgrade the app to the latest version. Complete your ATF tests and then repeat the same steps in Prod if ready to deploy that version.
That's great stuff! It sure would be cool if some of this were automated!
This is where an App Engine subscription with App Engine Studio comes in. It utilizes everything I just said, but in an automated fashion. And instead of completing the Publish step manually, it is done automatically via a "Deployment Request". That way you can give people "App Engine User" access to build apps in SubProduction and they can request you to deploy the app to Test and Prod. Your approval of the request then triggers automated Flows to move the app around the environments and complete testing automatically for you.
I hope some of this helps answer your question.
Reference Links
Application Repository Documentation -> https://docs.servicenow.com/bundle/rome-application-development/page/build/applications/concept/app-...
Professional Developer Guide for the Now Platform - Deploy -> https://developer.servicenow.com/dev.do#!/guides/sandiego/now-platform/pro-dev-guide/pd-deploy
--------------------------------------------------
Workflow Cowboy
LinkedIn: https://www.linkedin.com/in/dalestubblefield/
YouTube: https://www.youtube.com/@starlordnow
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-22-2022 08:10 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-24-2022 07:59 AM
Finally! A question I can answer!
TL;DR -> Update Sets have a place, but there are other ways to deploy things...
There are three ways to promote things to Production:
- Update Sets
- Application Repository
- Source Control
There are pros and cons for each depending on what environment you are in as well as whether you are updating something in Global or a scope as well as is this your app or a ServiceNow or Store app. (So many combinations!)
The opinions I offer here are my own based on my experience as a customer, partner, consultant, and employee of ServiceNow.
Update Sets
Update Sets have been around for a LONG time so the pros and cons are already documented everywhere. They are not going anywhere anytime soon and you can continue to use them to deploy code.
If you are still doing lots of work directly in the Global scope OR if you are making changes directly in a ServiceNow scope or Store scope, then you're going to be using Update Sets to promote your changes.
PRO TIP: Use Update Set batches, especially for Stories that span multiple App Scopes.
Source Control
Source Control was introduced many releases ago and has improved over the years. In Paris, a feature was added so that your app is not deleted before importing a new version from Source Control. This made it so that you could technically use Source Control as a deployment method to Prod if you wanted to.
While this might be possible, I would position it like this -> If you were writing traditional code (Ex. Java, C++), you would not deploy from Source Control directly to a Prod environment. You would package up your code into some kind of binary and declare a version to release. (Ex. v1, v2.2, etc.)
Having a packaged up binary version of your software makes testing and deployment easier.
If you want to "package" up a binary-like version of your app in ServiceNow you would publish your app in Studio to the...
Application Repository
App Repo is a gold-mine of a feature that has been around for years and is often underutilized or completely overlooked. It will NOT work in your PDI and will ONLY work in your company's instances so don't get frustrated when it is grayed out in your PDI.
I would refer to the diagram and Professional Developer Guide below to help demonstrate where you might use all three of these technologies when working on a scoped app or a Global application.
In the first box below "Dev 1 instance", you would either start a new app or import it from Source Control in the "App A Loaded" box.
During the "App A Teamwork" phase, an Update Set will automatically get created for each person working in that scope on that Dev instance. (See Application Collaboration and Delegated Development)
Once everyones Stories are completed for that Sprint (or halfway through), someone will commit that version back to a branch in Source Control. The branch will probably be named after the instance name. (Ex. "sn_instances/InstanceName")
Next, you would deploy this new version of the app (Ex. 1.1) to the App Repo using the "Publish" menu item in Studio.
Next, you would go to your QA environment and go to "My Company Applications" where you would install or upgrade the app to the latest version. Complete your ATF tests and then repeat the same steps in Prod if ready to deploy that version.
That's great stuff! It sure would be cool if some of this were automated!
This is where an App Engine subscription with App Engine Studio comes in. It utilizes everything I just said, but in an automated fashion. And instead of completing the Publish step manually, it is done automatically via a "Deployment Request". That way you can give people "App Engine User" access to build apps in SubProduction and they can request you to deploy the app to Test and Prod. Your approval of the request then triggers automated Flows to move the app around the environments and complete testing automatically for you.
I hope some of this helps answer your question.
Reference Links
Application Repository Documentation -> https://docs.servicenow.com/bundle/rome-application-development/page/build/applications/concept/app-...
Professional Developer Guide for the Now Platform - Deploy -> https://developer.servicenow.com/dev.do#!/guides/sandiego/now-platform/pro-dev-guide/pd-deploy
--------------------------------------------------
Workflow Cowboy
LinkedIn: https://www.linkedin.com/in/dalestubblefield/
YouTube: https://www.youtube.com/@starlordnow

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-24-2022 10:30 AM
Hi Dale,
Thanks very much for the information! I will mark this as correct and get busy with the content.
Tim

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-16-2022 07:25 AM
This is such great information
Can you provide further insight into use cases where update sets may be a preferred option of promoting code for scoped applications? Rome documentation mentions a future consideration for update sets - "Use update sets to deploy patches or changes to installed applications." Does that mean update sets are a preferred method for incident response?
Rome Doc Reference: https://docs.servicenow.com/bundle/rome-application-development/page/build/system-update-sets/refere...
Are there other use cases or potential benefits for using update sets instead of app repo to deploy/install/update scoped applications?
Our team is developing processes for managing scoped app development, source control, and deployment. The organization has only used update sets, and all code promotion processes are based on update sets. We understand the app repository is a preferred method and best practice for scoped app deployment, and we're looking to revise processes and implement best practices to support further scoped app development.
Thanks,
Brandi