Simple question: How do you/your organization define "Production" version of WebMaps or WebApps?
Since this AGOL environment is so far removed from what a traditional software development shop might be operating under, how do you handle the requirements from admins and management for building, updating and deploying "Development", "Test" or "Production" versions of Web Map and Web Apps within your AGOL environment?
To start, I've come up with an initial list of properties for what defines a "development" version Web Map:
1. The name or other description or tag properties must contain the word "beta" in them.
2. Any services must be non-production (aka, pointing to "development" published services)
3. Sharing must only be at the Group level and not with the Organization or Public.
To define a "production" version Web Map:
1. The name, description or tag properties must not contain any reference to "beta" or "test" or other such description.
2. Any services must be production versions (aka the service urls must point to "production" end points).
3. Sharing can be at the Organization or Public setting.
Can anyone comment, add to, or modify this? I am attempting to satisfy system admins and management with answering their question: "Is this Web Map in production or development?"
One method that we have used for this is by using an Administrator account as the 'production' owner. This has helped to ensure that any service, maps, apps that are in production will not be tweaked or accidentally deleted by users that have 'production' maps/apps items that they own.
So, when a map or app is ready to move into production, make sure that it meets your criteria for tags, naming, logos, etc. Then, change the ownership of all of the required items to the admin. account.
We have also created a 'staging' group where users can share maps and apps that are created but are still in development.
-----------------------------------
Brian Baldwin, Esri Inc., Lead Solution EngineerThanks for your input, Brian!
Change in ownership is something we use as well (although I didn't list it), however is not the only requirement. We've identified that we need a mix of attributes/properties of items along with specific versions of deployed items in order to apply the definitions of "production" and "development" or "test" and satisfy the question: "is this a production version?"
My OP only talked to Web Maps specifically, but we also have requirements to define "production" and "test" WebApp Builder applications, Web Maps, published services, Python scripting (eg, any ETL). My hope for this thread was to solicit alternative approaches that apply to a host of different products that an organization publishes.
...or if ESRI has any specific guidance on this topic I'd love to see reference information!
Thanks again!
I am also very curious about how other organizations are handling this. I am trying to figure out a way to update production web apps without having to take them offline. I needed to make some changes to an existing web app and had no way to make the changes and test them without either editing the production version or starting from scratch on a new web app. Any suggestions?
Hi Jennifer!
To answer your question we are going to be maintaining separate "dev", "test" and "prod" versions of each Web AppBuilder application that we deploy to our AGOL environment. This means that everything in my OP above needs to apply to each version as well.
Therefore only "production" services that are pointing to production data sources will be added to the prod Web Map source document and the "production" Web AppBuilder application using any of those resources.
Only "dev" services that are pointing to development data sources (eg, dev SDE environments), ETL scripting, etc will be resourced in "dev" web maps and apps.
We are starting to build a process for each, documenting each item (saving to our sharepoint), as well as creating workflow diagrams for each. Also there are deployment documentation requirements that are associated with Web AppBuilder applications.
Just some food for thought.
Mr. Crandall!
We're defining on the fly as needs arise based on some simple principles:
The different environments lend themselves to different service level agreements among different customer segments. Each may or may not need to be publicly available. So, "production" has the highest, firmest, bestest SLA for its intended consumers, while the "sandbox" environment's only guarantee is that it will be a mess when and if it's available. So far, we have implemented these approaches:
Also, an approach that we've seen others using, but haven't used ourselves yet is to purchase multiple AGO subscriptions. Based on your description of taking ownership, you might consider a large AGO subscription (100?) for content contributors and a small (5?) subscription for a centrally managed "production" environment.
happy Tuesday,
tim
Thanks a bunch, Tim.
What specifically defines a "production" Web Map in your environment? Or better yet, how do you answer the question: "Hey Tim.... When can we say that Web Map going to be in production?"
Your input is greatly appreciated!
There is a related topic here: Recommendations for DEV, TEST, and PROD environments in ArcGIS Online
Thanks, Xander!
I noticed one thing that stood out from that seems quite different is that we've got specific directives to maintain what I describe as silo's of "versions" of various items. That is we cannot just "switch" an Web AppBuilder Application to point to "production" sources/attributes -- the system admins want physical/virtual copies to exist. Should a "prod" version go down for some reason then the "dev" version can be re-tooled rapidly to stand up a new prod version (if you think in terms of a SVN repository, it's complimentary to the idea of having specific tags of source code that gets deployed).
So if we're talking about Web AppBuilder apps there is an entire hierarchy of individual components that must be defined and exist in it's own silo.
"Development" Silo for a Web AppBuilder Application:
It's definitely a challenge to inventory, document and create individual deployments for the various environments, whether those environments are physical, virtual, hosted or otherwise non-locational in nature.
Thanks again!
edit: hmm. maybe the geonet advanced editor isn't in production yet. it seems to have removed many words up front...
edit 2: many words abandoned in favor of deploying another system to production.
----------------
excellent question... So far, what we've made up goes somewhat like this:
Bases
When is an AGO map in production?
After all that digital wind, here's a simple example of a web map that we have said is in production:
BTW - this is a great discussion topic you've raised.
tim