Many organizations have started to consider or have already begun to deploy IT infrastructure through code-based definitions, often referred to as Infrastructure as code (IaC). The process of doing so typically involves the following steps:
The result of the IaC deployment is a set of resources that could be deployed successfully by hand, selecting individual configurations and settings, but through IaC can be deployed with strong consistency, automatically re-deployed, or adjusted slightly to conform to new specifications.
ArcGIS is generally compatible with many IaC approaches and systems, which are often designed to work within a specific cloud environment or system, such as AWS CloudFormation, Azure ARM templates or GCP Cloud Deployment Manager. Esri also builds tooling for certain providers, specifically AWS CloudFormation templates and Azure ARM templates, which can be used as a foundation for further configuration or extended.
Once infrastructure is deployed using an IaC provider or tool, ArcGIS software can be either manually or automatically deployed to these systems. See Automate ArcGIS software deployment for details.
Some IaC patterns are designed for frequent deployment where changes are pushed to the infrastructure frequently or whenever that code changes. This pattern can be difficult to align with ArcGIS systems as both ArcGIS Pro and ArcGIS Enterprise rely on a relatively stable and consistent network and infrastructure environment. Therefore, if IaC changes are required, it is recommended to either carefully proceed with those changes as with any change to an Enterprise IT system (plan, test, review, adjust), or that these systems be combined with other DevOps-style tools that enable software deployment automation, so the entire system can be rebuilt and deployed on a regular cadence.
Additional suggestions for working with Infrastructure as Code alongside ArcGIS include:
DevOps, as a term, generally refers to a code-driven deployment workflow, where commits or releases automatically deploy something, replacing what was there before. Other terms used in this area include continuous integration or CI, and continuous deployment or CD, often combined as CI/CD. These terms come from the world of software engineering and the building of application development and custom software applications, where continuous deployment and testing are used to support the release of software.
ArcGIS is a commercial off-the-shelf software package, and as such it is somewhat misaligned to many organizations’ existing use of CI/CD or DevOps for custom application development. ArcGIS, once deployed, begins to create state and configurations in ArcGIS Enterprise, the portal content, services, user content, configurations. Re-deploying ArcGIS Enterprise or a new ArcGIS Online organization destroys that existing state unless a backup is restored, so you can no longer view what you created.
For DevOps to be successfully used with ArcGIS systems, an organization needs to either: